OoOJoin  0.0.1
The next generation of out-of-order join operator
OoOJoin::AbstractOperator Class Reference

The abstraction to describe a join operator, providing virtual function of using the operation. More...

#include <AbstractOperator.h>

Inheritance diagram for OoOJoin::AbstractOperator:
Collaboration diagram for OoOJoin::AbstractOperator:

Public Member Functions

void setWindow (size_t _wl, size_t _sli)
 Set the window parameters of the whole operator. More...
 
void setBufferLen (size_t _sLen, size_t _rLen)
 Set buffer length of S and R buffer. More...
 
void syncTimeStruct (struct timeval tv)
 Synchronize the time structure with outside setting. More...
 
virtual bool setConfig (ConfigMapPtr cfg)
 Set the config map related to this operator. More...
 
virtual bool feedTupleS (TrackTuplePtr ts)
 feed a tuple s into the Operator More...
 
virtual bool feedTupleR (TrackTuplePtr tr)
 feed a tuple R into the Operator More...
 
virtual bool start ()
 start this operator More...
 
virtual bool stop ()
 stop this operator More...
 
virtual size_t getResult ()
 get the joined sum result More...
 
virtual size_t getAQPResult ()
 get the joined sum result under AQP estimation More...
 
virtual ConfigMapPtr getTimeBreakDown ()
 get the break down information of processing time More...
 

Public Attributes

ConfigMapPtr config = nullptr
 

Protected Member Functions

void setFinalProcessedTime ()
 set the final processed time for all tuples
 

Protected Attributes

struct timeval timeBaseStruct
 
size_t windowLen = 0
 
size_t slideLen = 0
 
size_t sLen = 0
 
size_t rLen = 0
 
int threads = 0
 
tsType timeStep = 0
 
tsType timeBreakDown_all = 0
 

Detailed Description

The abstraction to describe a join operator, providing virtual function of using the operation.

Todo:
Finish the watermark generator part
Note
require configurations:
  • "windowLen" U64: The length of window, real-world time in us
  • "slideLen" U64: The length of slide, real world time in us
  • "sLen" U64: The length of S buffer
  • "rLen" U64: The length of R buffer
  • "timeStep" U64. Internal simulation step in us

Member Function Documentation

◆ feedTupleR()

bool OoOJoin::AbstractOperator::feedTupleR ( OoOJoin::TrackTuplePtr  tr)
virtual

feed a tuple R into the Operator

Parameters
trThe tuple
Warning
The current version is simplified and assuming only used in SINGLE THREAD!
Returns
bool, whether tuple is fed.

Reimplemented in OoOJoin::MeanAQPIAWJOperator, OoOJoin::IMAIAWJOperator, and OoOJoin::IAWJOperator.

◆ feedTupleS()

bool OoOJoin::AbstractOperator::feedTupleS ( OoOJoin::TrackTuplePtr  ts)
virtual

feed a tuple s into the Operator

Parameters
tsThe tuple
Warning
The current version is simplified and assuming only used in SINGLE THREAD!
Returns
bool, whether tuple is fed.

Reimplemented in OoOJoin::MeanAQPIAWJOperator, OoOJoin::IMAIAWJOperator, and OoOJoin::IAWJOperator.

◆ getAQPResult()

size_t OoOJoin::AbstractOperator::getAQPResult ( )
virtual

get the joined sum result under AQP estimation

Returns
The result

Reimplemented in OoOJoin::MeanAQPIAWJOperator, and OoOJoin::IMAIAWJOperator.

◆ getResult()

size_t OoOJoin::AbstractOperator::getResult ( )
virtual

get the joined sum result

Returns
The result

Reimplemented in OoOJoin::MeanAQPIAWJOperator, OoOJoin::IMAIAWJOperator, and OoOJoin::IAWJOperator.

◆ getTimeBreakDown()

ConfigMapPtr OoOJoin::AbstractOperator::getTimeBreakDown ( )
virtual

get the break down information of processing time

Warning
should check the nullptr of output
Returns
The ConfigMapPtr which contains breakdown information, null if no breakdown supported

Reimplemented in OoOJoin::MeanAQPIAWJOperator.

◆ setBufferLen()

void OoOJoin::AbstractOperator::setBufferLen ( size_t  _sLen,
size_t  _rLen 
)
inline

Set buffer length of S and R buffer.

Parameters
_sLenthe length of S buffer
_rLenthe length of R buffer

◆ setConfig()

bool OoOJoin::AbstractOperator::setConfig ( INTELLI::ConfigMapPtr  cfg)
virtual

Set the config map related to this operator.

Parameters
cfgThe config map
Returns
bool whether the config is successfully set

Reimplemented in OoOJoin::MeanAQPIAWJOperator, OoOJoin::IMAIAWJOperator, and OoOJoin::IAWJOperator.

◆ setWindow()

void OoOJoin::AbstractOperator::setWindow ( size_t  _wl,
size_t  _sli 
)
inline

Set the window parameters of the whole operator.

Parameters
_wlwindow length
_slislide length

◆ start()

bool OoOJoin::AbstractOperator::start ( )
virtual

start this operator

Returns
bool, whether start successfully

Reimplemented in OoOJoin::MeanAQPIAWJOperator, OoOJoin::IMAIAWJOperator, and OoOJoin::IAWJOperator.

◆ stop()

bool OoOJoin::AbstractOperator::stop ( )
virtual

stop this operator

Returns
bool, whether start successfully

Reimplemented in OoOJoin::MeanAQPIAWJOperator, OoOJoin::IMAIAWJOperator, and OoOJoin::IAWJOperator.

◆ syncTimeStruct()

void OoOJoin::AbstractOperator::syncTimeStruct ( struct timeval  tv)
inline

Synchronize the time structure with outside setting.

Parameters
tvThe outside time structure

The documentation for this class was generated from the following files: