ADTF
Loading...
Searching...
No Matches
adtf::streaming::flash Namespace Reference

Namespace for all functionality of the ADTF Streaming SDK provided since v3.5. More...

Namespaces

namespace  detail
 Namespace for all internally used functionality implemented.
 

Classes

class  cConfigurableInPin
 
class  cConfigurableOutPin
 
class  cExternalQueueSampleReader
 
class  cExternalQueuesWrapper
 
class  cFilterGraphDataInPort
 
class  cFilterGraphDataOutPort
 
class  cFilterGraphRunnerPort
 
class  cInPin
 
class  cLastSamplesCollector
 
class  cNamedGraphObject
 
class  cOutPin
 
class  cSampleReader
 The default Sample Reader will read the incomung Stream of a IInPin. This sample reader has no internal queue! Make sure if you use this sample reader with ISampleStreamAccess::PushRead to register a external queue or to override the adtf::streaming::ant::cSampleReader::ReadNextSample and adtf::streaming::ant::cSampleReader::Push methods. More...
 
class  cSampleSetCollector
 
class  cSampleStream
 
class  cSampleStreamInPort
 
class  cSampleStreamOutPort
 
class  cSampleWriter
 
class  cTimeBasedSampleSetCollector
 
class  IExternalReaderQueues
 
class  is_stream_meta_type
 
class  ISample
 
class  ISampleReader
 
class  ISampleStreamer
 
class  ISampleWriter
 
class  IStreamerPin
 
class  output_sample_data
 
class  sample_data
 
class  sample_reader
 Reads and stores Samples within the given queue implementation INTERNAL_QUEUE. More...
 
class  sample_writer
 
class  stream_type
 

Typedefs

using cDynamicSampleReader = sample_reader<ant::cDynamicSampleReaderQueue>
 The cDynamicSampleReader will create a sample reader which will create a internal sample queue with unlimited size.
 
template<tTimeStamp TIME_RANGE, bool STORELASTSAMPLE = true>
using time_limited_sample_reader = sample_reader<ant::time_limited_sample_reader_queue<TIME_RANGE>, STORELASTSAMPLE>
 
template<size_t MAX_SIZE, bool STORELASTSAMPLE = true>
using size_limited_sample_reader = sample_reader<ant::size_limited_sample_reader_queue<MAX_SIZE>, STORELASTSAMPLE>
 
using cSingleSampleReader = size_limited_sample_reader<1>
 The cSingleSampleReader will create a sample reader which will create a internal sample queue with only one sample which holds the last received sample always.
 

Functions

template<typename Interface, typename InterfaceBinding>
tResult create_server (InterfaceBinding &oInterfaceBinding, const char *strServerName, const adtf::ucom::iobject_ptr< Interface > &pServerInterface)
 
template<typename Interface, typename InterfaceBinding>
tResult create_client (InterfaceBinding &oInterfaceBinding, const char *strClientName)
 
template<typename DATA_BINDING_IMPL_TYPE, typename READER_OR_WRITER, typename PIN_INTERFACE>
tResult create_pin (DATA_BINDING_IMPL_TYPE &oDataBindingImpl, READER_OR_WRITER &oStreamer, ucom::ant::iobject_ptr< PIN_INTERFACE > &pCreatedPin)
 
template<typename DATA_BINDING_IMPL_TYPE, typename READER_OR_WRITER>
tResult create_pin (DATA_BINDING_IMPL_TYPE &oDataBindingImpl, READER_OR_WRITER &oStreamer)
 
template<typename DATA_BINDING_IMPL_TYPE, typename READER_OR_WRITER, typename PIN_INTERFACE>
tResult create_pin (DATA_BINDING_IMPL_TYPE &oDataBindingImpl, READER_OR_WRITER &oStreamer, const char *strNameOfReaderAndPin, const ucom::iobject_ptr< const ant::IStreamType > &pStreamType, ucom::ant::iobject_ptr< PIN_INTERFACE > &pCreatedPin)
 
template<typename DATA_BINDING_IMPL_TYPE, typename READER_OR_WRITER>
tResult create_pin (DATA_BINDING_IMPL_TYPE &oDataBindingImpl, READER_OR_WRITER &oStreamer, const char *strNameOfReaderAndPin, const ucom::ant::iobject_ptr< const ant::IStreamType > &pStreamType)
 
tResult alloc_sample (ucom::ant::iobject_ptr< ucom::ant::IObject > &pSample)
 
tResult alloc_sample (ucom::ant::iobject_ptr< ucom::ant::IObject > &pSample, base::flash::tNanoSeconds nTimeStamp)
 
tResult alloc_sample (ucom::ant::iobject_ptr< ucom::ant::IObject > &pSample, tTimeStamp nTimeStamp)
 
tResult alloc_sample (ucom::ant::iobject_ptr< ucom::ant::IObject > &pSample, const char *strSampleCID)
 
tResult alloc_sample (ucom::ant::iobject_ptr< ucom::ant::IObject > &pSample, const char *strSampleCID, base::flash::tNanoSeconds nTimeStamp)
 
tResult alloc_sample (ucom::ant::iobject_ptr< ucom::ant::IObject > &pSample, const char *strSampleCID, tTimeStamp nTimeStamp)
 
base::flash::tNanoSeconds get_sample_time (const ucom::ant::iobject_ptr< const ant::ISample > &pSample)
 
tResult make_sample_reader (ISampleReader &oReader, const char *strNameOfReader, const ucom::iobject_ptr< const IStreamType > &pStreamType)
 
ISampleReaderoperator>> (ISampleReader &oSampleReader, ucom::ant::iobject_ptr< const ant::ISample > &pSample)
 
template<typename DATATYPE>
ISampleReaderoperator>> (ISampleReader &oSampleReader, sample_data< DATATYPE > &oSampleData)
 
ISampleReaderoperator>> (ISampleReader &oSampleReader, ucom::ant::iobject_ptr< const ant::IStreamType > &pType)
 
ISampleReaderoperator>> (ISampleReader &oSampleReader, ISampleReader &(*pStreamfunc)(ISampleReader &))
 
tResult make_sample_writer (ISampleWriter &oWriter, const char *strNameOfWriter, const ucom::ant::iobject_ptr< const IStreamType > &pStreamType)
 
ISampleWriteroperator<< (ISampleWriter &oSampleWriter, const ucom::ant::iobject_ptr< const ant::ISample > &pSample)
 streaming operator to write a sample to the sample writer
 
ISampleWriteroperator<< (ISampleWriter &oSampleWriter, const ucom::ant::iobject_ptr< const ant::IStreamType > &pType)
 streaming operator to write a stream type change to the sample writer
 
ISampleWriteroperator<< (ISampleWriter &oSampleWriter, ISampleWriter &(*pStreamfunc)(ISampleWriter &))
 streaming operator to write a command to the sample writer
 
ISampleWriteroperator<< (ISampleWriter &oSampleWriter, const tResult &oError)
 streaming operator to set the sample writers stream error
 
template<typename DATA_TYPE>
ISampleWriteroperator<< (ISampleWriter &oSampleWriter, output_sample_data< DATA_TYPE > &&oOutputSampleData)
 streaming operator to write the sample of the output_sample_data to the sample writer. It automatically releases the given rvalue of oOutputSampleData
 
ISampleReaderoperator>> (ISampleReader &oSampleReader, ISampleWriter &oSampleWriter)
 
template<typename DATA_TYPE>
sample_writer< DATA_TYPE > & operator<< (sample_writer< DATA_TYPE > &oSampleWriter, const DATA_TYPE &oSampleData)
 
tResult is_compatible (const ant::IStreamType &oCheckedType, const ant::IStreamType &oExpectedType)
 
tResult is_compatible (const ucom::ant::iobject_ptr< const ant::IStreamType > &pCheckedType, const ucom::ant::iobject_ptr< const ant::IStreamType > &pExpectedType)
 
tResult is_compatible (const ant::IStreamType &oCheckedType, const ucom::ant::iobject_ptr< const ant::IStreamType > &pExpectedType)
 
tResult is_compatible (const ucom::ant::iobject_ptr< const ant::IStreamType > &pCheckedType, const ant::IStreamType &oExpectedType)
 
template<typename DATABINDING_BEHAVIOUR_CLASS>
tResult create_inner_pipe (DATABINDING_BEHAVIOUR_CLASS &oComponent, adtf_util::cStringList lstItems)
 

Detailed Description

Namespace for all functionality of the ADTF Streaming SDK provided since v3.5.

Typedef Documentation

◆ cDynamicSampleReader

The cDynamicSampleReader will create a sample reader which will create a internal sample queue with unlimited size.

Remarks
Make sure a a sample receive callback will read until the queue is empty !

This implementation uses the cDynamicSampleReaderQueue as dynamic sample queue implementation.

◆ cSingleSampleReader

The cSingleSampleReader will create a sample reader which will create a internal sample queue with only one sample which holds the last received sample always.

◆ size_limited_sample_reader

template<size_t MAX_SIZE, bool STORELASTSAMPLE = true>
using adtf::streaming::flash::size_limited_sample_reader = sample_reader<ant::size_limited_sample_reader_queue<MAX_SIZE>, STORELASTSAMPLE>

The size_limited_sample_reader will create a sample reader which will create a internal sample queue that is sample count item limited by the given TimeRange.

Template Parameters
MAX_SIZEThe count in amount of samples (has to be set while compile time!).
STORELASTSAMPLEOption if the last sample received will be hold.
  • true - last sample is stored
  • false - last sample is droped if after Read call

◆ time_limited_sample_reader

template<tTimeStamp TIME_RANGE, bool STORELASTSAMPLE = true>
using adtf::streaming::flash::time_limited_sample_reader = sample_reader<ant::time_limited_sample_reader_queue<TIME_RANGE>, STORELASTSAMPLE>

The time_limited_sample_reader will create a sample reader which will create a internal sample queue that is time limited by the given TimeRange.

Template Parameters
TIME_RANGEThe timerange in micro seconds (has to be set while compile time!).
STORELASTSAMPLEOption if the last sample received will be hold.
  • true - last sample is stored
  • false - last sample is droped if after Read call

Function Documentation

◆ alloc_sample() [1/6]

tResult adtf::streaming::flash::alloc_sample ( ucom::ant::iobject_ptr< ucom::ant::IObject > & pSample)

Helper Function to get a ISample Instance through the adtf::ucom::ant::IRuntime.

Parameters
pSample[in, out] object_ptr to a ISample if succeeded. The default CID will be the get_class_id<cSample>().
Returns
Standard result code.
Note
rtsafe{if the sample pool and the memory allocator services are avaliable during RL_Running}

◆ alloc_sample() [2/6]

tResult adtf::streaming::flash::alloc_sample ( ucom::ant::iobject_ptr< ucom::ant::IObject > & pSample,
base::flash::tNanoSeconds nTimeStamp )

Helper Function to get a ISample Instance through the adtf::ucom::ant::IRuntime.

Parameters
pSample[in, out] object_ptr to a ISample if succeeded. The default CID will be the get_class_id<cSample>().
nTimeStamp[in] The timestamp of the sample.
Returns
Standard result code.
Note
rtsafe{if the sample pool and the memory allocator services are avaliable during RL_Running}

◆ alloc_sample() [3/6]

tResult adtf::streaming::flash::alloc_sample ( ucom::ant::iobject_ptr< ucom::ant::IObject > & pSample,
const char * strSampleCID )

Helper Function to get a Sample Instance through the adtf::ucom::ant::IRuntime.

Parameters
pSample[in, out] object_ptr to of Sample if succeeded. Due to the unknown interface you want receive it is provided as object_ptr<IObject>.
strSampleCID[in] Sample object identifier (class id) of the sample class. If strSampleOID is empty then the get_class_id<cSample>() will be used.
Returns
Standard result code.
Note
rtsafe{if the sample pool and the memory allocator services are avaliable during RL_Running}

◆ alloc_sample() [4/6]

tResult adtf::streaming::flash::alloc_sample ( ucom::ant::iobject_ptr< ucom::ant::IObject > & pSample,
const char * strSampleCID,
base::flash::tNanoSeconds nTimeStamp )

Helper Function to get a Sample Instance through the adtf::ucom::ant::IRuntime.

Parameters
pSample[in, out] object_ptr to of Sample if succeeded. Due to the unknown interface you want receive it is provided as object_ptr<IObject>.
strSampleCID[in] Sample object identifier (class id) of the sample class. If strSampleOID is empty then the get_class_id<cSample>() will be used.
nTimeStamp[in] The timestamp of the sample.
Returns
Standard result code.
Note
rtsafe{if the sample pool and the memory allocator services are avaliable during RL_Running}

◆ alloc_sample() [5/6]

tResult adtf::streaming::flash::alloc_sample ( ucom::ant::iobject_ptr< ucom::ant::IObject > & pSample,
const char * strSampleCID,
tTimeStamp nTimeStamp )

Helper Function to get a Sample Instance through the adtf::ucom::ant::IRuntime.

Parameters
pSample[in, out] object_ptr to of Sample if succeeded. Due to the unknown interface you want receive it is provided as object_ptr<IObject>.
strSampleCID[in] Sample object identifier (class id) of the sample class. If strSampleOID is empty then the get_class_id<cSample>() will be used.
nTimeStamp[in] The timestamp of the sample.
Returns
Standard result code.
Note
rtsafe{if the sample pool and the memory allocator services are avaliable during RL_Running}

◆ alloc_sample() [6/6]

tResult adtf::streaming::flash::alloc_sample ( ucom::ant::iobject_ptr< ucom::ant::IObject > & pSample,
tTimeStamp nTimeStamp )

Helper Function to get a ISample Instance through the adtf::ucom::ant::IRuntime.

Parameters
pSample[in, out] object_ptr to a ISample if succeeded. The default CID will be the get_class_id<cSample>().
nTimeStamp[in] The timestamp of the sample.
Returns
Standard result code.
Note
rtsafe{if the sample pool and the memory allocator services are avaliable during RL_Running}

◆ create_client()

template<typename Interface, typename InterfaceBinding>
tResult adtf::streaming::flash::create_client ( InterfaceBinding & oInterfaceBinding,
const char * strClientName )

Creates a binding client object for the given INTERFACE type and register it on the cFilterBase instance

Template Parameters
InterfaceThe IObject interface you want to register the binding client object for
InterfaceBindingThe class of the interface binding object
Parameters
[in]oInterfaceBindingInterfacebinding instance to register the client object to
[in]strClientNamename of the object to register
Returns
Standard Result Code

◆ create_inner_pipe()

template<typename DATABINDING_BEHAVIOUR_CLASS>
tResult adtf::streaming::ant::create_inner_pipe ( DATABINDING_BEHAVIOUR_CLASS & oComponent,
adtf_util::cStringList lstItems )
inline

Creates a trigger pipe and registers it at the given oFilter instance.

You can use an initializer list for the lstItems as follow:

create_inner_pipe(m_oMyFilter, {"in_pin_1", "my_fancy_runner", "out_pin_1"};
tResult create_inner_pipe(DATABINDING_BEHAVIOUR_CLASS &oComponent, adtf_util::cStringList lstItems)
Definition filterbase.h:131

This function will create a pipe where the "my_fancy_runner" will be called from "in_pin_1" if some a synchronous DataTrigger is received. "my_fanc_runner" will read data from "in_pin_1" by its Readers (or do something else) and writes data to the "out_pin_1". If the "my_fancy_runner" returns it will forward a synchronous DataTrigger to "out_pin_1".

Parameters
[in]oComponentdatabinding and runtime behavior instance where to register the trigger pipe.
[in]lstItemslist of items of the trigger pipe. These items can be a registered Pin of the oFilter or a Runner of oFilter.
Returns
Standard Result Code of the cFilterBase::RegisterInnerPipe call.
Return values
ERR_NOT_FOUNDA given name is not a Pin (InPin or OutPin) or a Runner registered on oFilter.

◆ create_server()

template<typename Interface, typename InterfaceBinding>
tResult adtf::streaming::flash::create_server ( InterfaceBinding & oInterfaceBinding,
const char * strServerName,
const adtf::ucom::iobject_ptr< Interface > & pServerInterface )

Creates a binding server object for the given INTERFACE type and register it on the cFilterBase instance.

Template Parameters
InterfaceThe IObject interface you want to register the binding client object for
InterfaceBindingThe class of the interface binding object
Parameters
[in]oInterfaceBindinginterfacebinding instance to register the server object to
[in]strServerNamename of the object to register
[in]pServerInterfaceINTERFACE implementation instance. This will be the Server Object retrieved by IBindingClient::GetServerObject and IBindingProxy::GetServerObject
Returns
Standard Result Code

◆ get_sample_time()

base::flash::tNanoSeconds adtf::streaming::flash::get_sample_time ( const ucom::ant::iobject_ptr< const ant::ISample > & pSample)

Returns the sample time stamp with nanosecond precision.

This will check if the sample supports nanosecond precision (via adtf::streaming::flash::ISample) and convert the microseconds timestamp if not.

Parameters
[in]pSampleThe sample.
Returns
The timestamp.

◆ is_compatible() [1/4]

tResult adtf::streaming::flash::is_compatible ( const ant::IStreamType & oCheckedType,
const ant::IStreamType & oExpectedType )

Checks whether oCheckedType is compatible with oExpectedType

Parameters
[in]oCheckedTypeThe type that should be checked for compatibility.
[in]oExpectedTypeThe type that is expected.
Returns
Standard result.

◆ is_compatible() [2/4]

tResult adtf::streaming::flash::is_compatible ( const ant::IStreamType & oCheckedType,
const ucom::ant::iobject_ptr< const ant::IStreamType > & pExpectedType )

Checks whether oCheckedType is compatible with oExpectedType

Parameters
[in]oCheckedTypeThe type that should be checked for compatibility.
[in]pExpectedTypeThe type that is expected.
Returns
Standard result.

◆ is_compatible() [3/4]

tResult adtf::streaming::flash::is_compatible ( const ucom::ant::iobject_ptr< const ant::IStreamType > & pCheckedType,
const ant::IStreamType & oExpectedType )

Checks whether pCheckedType is compatible with oExpectedType

Parameters
[in]pCheckedTypeThe type that should be checked for compatibility.
[in]oExpectedTypeThe type that is expected.
Returns
Standard result.

◆ is_compatible() [4/4]

tResult adtf::streaming::flash::is_compatible ( const ucom::ant::iobject_ptr< const ant::IStreamType > & pCheckedType,
const ucom::ant::iobject_ptr< const ant::IStreamType > & pExpectedType )

Checks whether oCheckedType is compatible with oExpectedType

Parameters
[in]pCheckedTypeThe type that should be checked for compatibility.
[in]pExpectedTypeThe type that is expected.
Returns
Standard result.

◆ operator<<() [1/5]

ISampleWriter & adtf::streaming::flash::operator<< ( ISampleWriter & oSampleWriter,
const tResult & oError )
inline

streaming operator to set the sample writers stream error

Parameters
oSampleWriterthe sample writer to set the stream error state to
oErrorthe stream error state value
Returns
ISampleWriter&

◆ operator<<() [2/5]

ISampleWriter & adtf::streaming::flash::operator<< ( ISampleWriter & oSampleWriter,
const ucom::ant::iobject_ptr< const ant::ISample > & pSample )
inline

streaming operator to write a sample to the sample writer

Parameters
oSampleWriterthe sample writer to write a sample to
pSamplethe sample to write
Returns
ISampleWriter&

◆ operator<<() [3/5]

ISampleWriter & adtf::streaming::flash::operator<< ( ISampleWriter & oSampleWriter,
const ucom::ant::iobject_ptr< const ant::IStreamType > & pType )
inline

streaming operator to write a stream type change to the sample writer

Parameters
oSampleWriterthe sample writer to change the type
pTypethe stream type to change to
Returns
ISampleWriter&

◆ operator<<() [4/5]

ISampleWriter & adtf::streaming::flash::operator<< ( ISampleWriter & oSampleWriter,
ISampleWriter &(* pStreamfunc )(ISampleWriter &) )
inline

streaming operator to write a command to the sample writer

Parameters
oSampleWriterthe sample writer to write the command to
pStreamfuncthe command (streaming::flush(), streaming::trigger())
Returns
ISampleWriter&

◆ operator<<() [5/5]

template<typename DATA_TYPE>
ISampleWriter & adtf::streaming::flash::operator<< ( ISampleWriter & oSampleWriter,
output_sample_data< DATA_TYPE > && oOutputSampleData )
inline

streaming operator to write the sample of the output_sample_data to the sample writer. It automatically releases the given rvalue of oOutputSampleData

Parameters
oSampleWriterthe sample writer to write the output sample data to
oOutputSampleDatathe output sample data rvalue to write and release
Returns
ISampleWriter&