Qore DataProvider Module Reference  2.4
DataProvider::PipelineQueue Class Reference

Pipeline element. More...

Public Member Methods

Condition cond ()
 Queue condition variable.
 
 constructor (DataProviderPipeline parent, Mutex lck, Counter cnt, int id, int size)
 Creates the object.
 
list< auto > elems ()
 Pipeline elements. More...
 
Condition flush_cond ()
 Flush condition variable.
 
int getId ()
 Returns the pipeline ID.
 
 run (Counter run_cnt)
 Processing thread.
 
 submit (auto qdata)
 Submits data for processing. More...
 
 waitDone ()
 Wait for the queue to be empty, then wait for all terminating pipelines to be empty. More...
 

Public Attributes

Counter cnt
 Parent counter.
 
bool data_flushed
 Data flushed confirmation.
 
int data_waiting = 0
 Number of threads waiting on data.
 
bool do_flush
 Flush pipeline flag.
 
int flush_waiting = 0
 Number of threads waiting on the flush cond.
 
int id
 Queue ID.
 
Mutex lck
 Parent lock.
 
DataProviderPipeline parent
 Parent object.
 
list< auto > queue
 Data queue.
 
int queue_waiting = 0
 Number of threads waiting data to be removed from the queue.
 
int size
 Maximum queue size.
 
int tid
 TID of the background thread.
 

Private Member Methods

 runIntern ()
 

Detailed Description

Pipeline element.

Member Function Documentation

◆ elems()

list<auto> DataProvider::PipelineQueue::elems ( )

Pipeline elements.

elements are either:

◆ runIntern()

DataProvider::PipelineQueue::runIntern ( )
private
Note
Called in the pipeline lock

◆ submit()

DataProvider::PipelineQueue::submit ( auto  qdata)

Submits data for processing.

Parameters
qdatathe data to process
Exceptions
PIPELINE-SUBMISSION-ABORTEDcannot submit data; the pipeline is shutting down or has aborted

◆ waitDone()

DataProvider::PipelineQueue::waitDone ( )

Wait for the queue to be empty, then wait for all terminating pipelines to be empty.

Note
Called in the pipeline lock