Loading...
Searching...
No Matches
DataProvider::PipelineQueue Class Reference

Pipeline element. More...

`#include <DataProviderPipeline.qc.dox.h>`

## Public Member Functions

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.

## Protected Member Functions

| runIntern ()

## Detailed Description

Pipeline element.

## Member Function Documentation

## elems()

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

Pipeline elements.

elements are either:

- AbstractDataProcessor objects
- list of PipelineQueue objects

## runIntern()

DataProvider::PipelineQueue::runIntern | ( |  | ) |

protected

Note
  Called in the pipeline lock

## submit()

DataProvider::PipelineQueue::submit | ( | auto | qdata | ) |

Submits data for processing.

Parameters

  qdata | the data to process

Exceptions

  PIPELINE-SUBMISSION-ABORTED | cannot 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