ADTF
Loading...
Searching...
No Matches
adtf::streaming::ant::cSampleSetCollector Class Reference

#include <sample_collectors.h>

Public Types

typedef std::function< tResult(cExternalQueueSampleReader &, const adtf::ucom::iobject_ptr< const IStreamType > &pStreamType)> tStreamTypeChangeCallback
 

Public Member Functions

 cSampleSetCollector (tStreamTypeChangeCallback pTypeChangeCallback)
 
 cSampleSetCollector (const cSampleSetCollector &)=delete
 
 cSampleSetCollector (cSampleSetCollector &&)=default
 
cSampleSetCollectoroperator= (const cSampleSetCollector &)=delete
 
cSampleSetCollectoroperator= (cSampleSetCollector &&)=default
 
tResult CollectFrom (cExternalQueueSampleReader &oSampleReader)
 Adds a sample reader to the list of sample readers that data is read from.
 
void ClearQueues ()
 Clear all internal queues for all connected sample readers.
 
template<typename ... T>
tResult GetNextSampleSet (T &...samples)
 Get the next sample set from all sample readers at least one reader must have new data based on timestamp only the next changed sample (based on timestamp) is updated in sample set.
 

Detailed Description

A class that collects the sample sets from multiple sample readers.

Usage:

It returns a set of samples for each sample that has arrived. This set contains the new sample and the last ones from the other streams/readers.

(for more detail see sample_reader)

Constructor & Destructor Documentation

◆ cSampleSetCollector()

adtf::streaming::ant::cSampleSetCollector::cSampleSetCollector ( tStreamTypeChangeCallback pTypeChangeCallback)

Constructor with type change callback

Parameters
[in]pTypeChangeCallbacka callback that is called when ever the stream type of a reader changes.

Member Function Documentation

◆ CollectFrom()

tResult adtf::streaming::ant::cSampleSetCollector::CollectFrom ( cExternalQueueSampleReader & oSampleReader)

Adds a sample reader to the list of sample readers that data is read from.

Parameters
[in]oSampleReaderThe sample reader to read data from.
Return values
ERR_NOERRORStream type is valid

◆ GetNextSampleSet()

template<typename ... T>
tResult adtf::streaming::ant::cSampleSetCollector::GetNextSampleSet ( T &... samples)
inline

Get the next sample set from all sample readers at least one reader must have new data based on timestamp only the next changed sample (based on timestamp) is updated in sample set.

Parameters
[in]samplestemplate interator
Return values
ERR_NOERRORdata is valid
RETURN_IF_FAILED(ERR_INVALID_ARG) more sample were requested than readers registered (to many parameters)
RETURN_ERROR(ERR_EMPTY)no data available

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