AllianceDB  0.0.1
AllianceDB is an open-source suite, including benchmarks and libs for evaluating and improving stream operation algorithms on modern hardwares.
SplitJoinIRJP.h
Go to the documentation of this file.
1 
2 //
3 // Created by tony on 22/03/22.
4 //
5 
6 #ifndef _JOINPROCESSOR_SPLITJOINIRJP_H_
7 #define _JOINPROCESSOR_SPLITJOINIRJP_H_
8 #include <thread>
9 #include <Common/Types.h>
11 #include <barrier>
12 
14 #include <Utils/DupicatedHashTable.hpp>
15 using namespace INTELLI;
16 using namespace std;
17 namespace INTELLI {
19 //typedef <keyType, keyType> dpHashtable;
20 typedef shared_ptr<dpHashtable> dpHashtablePtr;
27 class SplitJoinIRJP : public SplitJoinJP {
28 
29  protected:
30  dpHashtablePtr hashtableS, hashtableR;
31  virtual void inlineMain();
32 
33  void expireS(size_t cond);
34  void expireR(size_t cond);
35  void joinS(TuplePtr ts);
36  void joinR(TuplePtr tr);
37  public:
38  SplitJoinIRJP() {
39 
40  }
41  ~SplitJoinIRJP() {
42 
43  }
50  void init(size_t sLen, size_t rLen, size_t _sysId) {
51  SplitJoinJP::init(sLen, rLen, _sysId);
52  //windowS = C20Buffer<TuplePtr>(sLen);
53  // windowR = C20Buffer<TuplePtr>(rLen)
54  }
55 
56 };
57 typedef std::shared_ptr<SplitJoinIRJP> SplitJoinIRJPPtr;
58 }
59 #endif //ALIANCEDB_INCLUDE_JOINPROCESSOR_SPLITJP_H_
The class of split join join processor, which also shares the intermediate results (IR)
Definition: SplitJoinIRJP.h:27
void init(size_t sLen, size_t rLen, size_t _sysId)
init the join processor with buffer/queue length and id
Definition: SplitJoinIRJP.h:50
virtual void inlineMain()
The 'main' function of AbstractP.
The class of split join join processor.
Definition: SplitJoinJP.h:22
void init(size_t sLen, size_t rLen, size_t _sysId)
init the join processor with buffer/queue length and id
Definition: SplitJoinJP.h:60
std::shared_ptr< class Tuple > TuplePtr
The class to describe a shared pointer to Tuple.
Definition: Types.h:150
Definition: DatasetTool.h:10