5 #ifndef JOINPROCESSOR_HANDSHAKJP_H_
6 #define JOINPROCESSOR_HANDSHAKEJP_H_
14 typedef std::shared_ptr<HandShakeJP> HandShakeJPPtr;
23 HandShakeJPPtr leftJP =
nullptr;
24 HandShakeJPPtr rightJP =
nullptr;
43 BarrierPtr initBar =
nullptr;
45 size_t countR = 0, countS = 0;
46 size_t timeOffsetS, timeOffsetR;
47 size_t rQueue = 0, sQueue = 0;
49 void expireS(
size_t cond);
50 void expireR(
size_t cond);
53 void setLeft(HandShakeJPPtr l) {
56 void setRight(HandShakeJPPtr r) {
66 void setTimeOffset(
size_t ts,
size_t tr) {
72 void setNeighborJP(HandShakeJPPtr l, HandShakeJPPtr r) {
76 void init(
size_t sLen,
size_t rLen,
size_t _sysId) {
96 initBar->arrive_and_wait();
103 sRecvAck->push(CMD_ACK);
The basic class of join processor.
Definition: AbstractJP.h:38
Definition: HandShakeJP.h:20
TuplePtrQueue TuplePtrQueueForwardS
forward queue of S
Definition: HandShakeJP.h:32
void indicateSRecv(void)
To indicate that a tuple S has been received.
Definition: HandShakeJP.h:102
void init(size_t sLen, size_t rLen, size_t _sysId)
init the join processor with buffer/queue length and id
Definition: HandShakeJP.h:76
TuplePtrQueue TuplePtrQueueLocalR
local queue storage of R, used for manage R window
Definition: HandShakeJP.h:41
CmdQueuePtr sRecvAck
The command queue for ack of S.
Definition: HandShakeJP.h:37
void setInitBar(BarrierPtr barPrev)
Set up the init barrier.
Definition: HandShakeJP.h:88
void waitInitBar(void)
Wait for the init barrier done and then contine.
Definition: HandShakeJP.h:94
TuplePtrQueue TuplePtrQueueLocalS
local queue storage of S, used for manage S window
Definition: HandShakeJP.h:28
virtual void inlineMain()
The 'main' function of AbstractP.
std::shared_ptr< INTELLI::SPSCQueue< INTELLI::TuplePtr > > TuplePtrQueue
To describe a queue of TuplePtr under SPSCQueue.
Definition: Types.h:228
Definition: DatasetTool.h:10