A collection of thread safe async queues used by Extractor and Transformer to communicate.
More...
#include <ExtractionDataPipe.hpp>
|
using | DataType = std::optional<RawDataType> |
|
using | QueueType = ThreadSafeQueue<DataType> |
|
|
| ExtractionDataPipe (uint32_t stride, uint32_t startSequence) |
| Create a new instance of the extraction data pipe.
|
|
void | push (uint32_t sequence, DataType &&data) |
| Push new data package for the specified sequence.
|
|
DataType | popNext (uint32_t sequence) |
| Get data package for the given sequence.
|
|
uint32_t | getStride () const |
|
void | finish (uint32_t sequence) |
| Hint the Transformer that the queue is done sending data.
|
|
void | cleanup () |
| Unblocks internal queues.
|
|
|
static constexpr auto | kTOTAL_MAX_IN_QUEUE = 1000u |
|
template<typename RawDataType>
class etl::impl::ExtractionDataPipe< RawDataType >
A collection of thread safe async queues used by Extractor and Transformer to communicate.
◆ ExtractionDataPipe()
template<typename RawDataType >
Create a new instance of the extraction data pipe.
- Parameters
-
◆ cleanup()
template<typename RawDataType >
Unblocks internal queues.
Note: For now this must be called by the ETL when Transformer exits.
◆ finish()
template<typename RawDataType >
Hint the Transformer that the queue is done sending data.
- Parameters
-
sequence | The sequence for which the extractor queue is to be hinted |
◆ getStride()
template<typename RawDataType >
◆ popNext()
template<typename RawDataType >
Get data package for the given sequence.
Note: Potentially blocks until data is available.
- Parameters
-
sequence | The sequence for which data is required |
- Returns
- The data wrapped in an optional; nullopt means that there is no more data to expect
◆ push()
template<typename RawDataType >
Push new data package for the specified sequence.
Note: Potentially blocks until the underlying queue can accomodate another entry.
- Parameters
-
sequence | The sequence for which to enqueue the data package |
data | The data to store |
The documentation for this class was generated from the following file: