AllianceDB  0.0.1
AllianceDB is an open-source suite, including benchmarks and libs for evaluating and improving stream operation algorithms on modern hardwares.
HandShakeWS.h
Go to the documentation of this file.
1 
2 //
3 // Created by tony on 28/02/22.
4 //
5 
6 #ifndef _WINDOWSLIDER_HANDSHAKEWS_H_
7 #define _WINDOWSLIDER_HANDSHAKEWS_H_
8 #include <cstdint>
9 #include <vector>
10 #include <Common/Types.h>
11 #include <Utils/SPSCQueue.hpp>
12 #include <time.h>
13 #include <numeric>
14 #include <JoinProcessor/HandShakeJP.h>
16 
17 using namespace INTELLI;
18 using namespace std;
19 namespace INTELLI {
37 class HandShakeWS : public AbstractWS {
38  private:
39  /* data *
40  */
41  protected:
42  std::vector<HandShakeJPPtr> jpPtr;
43  INTELLI::BarrierPtr initBar;
44  public:
45  HandShakeWS(/* args */) {
46  reset();
47  }
48  ~HandShakeWS() {
49 
50  }
51  //init with length of queue
52  HandShakeWS(size_t sLen, size_t rLen) : AbstractWS(sLen, rLen) {
53 
54  }
55 
66  //get the join result
73  size_t getJoinResult();
74  //input
75  //note: S->, R<-
81  void feedTupleS(TuplePtr ts);
87  void feedTupleR(TuplePtr tr);
88 };
89 
90 }
91 #endif //HYBRID_JOIN_INCLUDE_WINDOWSLIDER_HANDSHAKEWS_H_
An abstraction of window slider, also inherited by both eager and lazy.
Definition: AbstractWS.h:41
The eager window slider of handshake join.
Definition: HandShakeWS.h:37
void terminateJoinProcessors()
to terminate the join processors
void initJoinProcessors()
to init the initJoinProcessors
void feedTupleR(TuplePtr tr)
to feed a tuple R
void waitAckFromJoinProcessors()
to wait the response of join processors
size_t getJoinResult()
to get the result of join
void feedTupleS(TuplePtr ts)
to feed a tuple s
std::shared_ptr< class Tuple > TuplePtr
The class to describe a shared pointer to Tuple.
Definition: Types.h:150
Definition: DatasetTool.h:10