ADTF  3.18.2
md_struct_array< T >

This class is used to wrap access to arrays of struct types. More...

Public Member Functions

 md_struct_array (const indices< T > aIndices[], std::shared_ptr< adtf::mediadescription::ant::cSampleDecoder > decoder)
 
md_sample_data< T > operator[] (size_t nIndex) const
 

Private Attributes

const indices< T > * m_pIndices = nullptr
 
std::shared_ptr< adtf::mediadescription::ant::cSampleDecoderm_pDecoder
 

Detailed Description

template<typename T>
class adtf::mediadescription::flash::md_struct_array< T >

This class is used to wrap access to arrays of struct types.

Example Usage

test_struct.description:

<structs>
<struct name="tChild" alignment="4" version="1">
<element name="nA" type="tUInt32" arraysize="1">
<deserialized alignment="4"/>
<serialized bytepos="0" byteorder="LE"/>
</element>
<element name="nB" type="tUInt32" arraysize="1">
<deserialized alignment="4"/>
<serialized bytepos="4" byteorder="LE"/>
</element>
</struct>
<struct name="tTest" alignment="4" version="1">
<element name="nValue" type="tUInt32" arraysize="1">
<deserialized alignment="4"/>
<serialized bytepos="0" byteorder="LE"/>
</element>
<element name="aArray" type="tUInt32" arraysize="2">
<deserialized alignment="4"/>
<serialized bytepos="4" byteorder="LE"/>
</element>
<element name="sChild" type="tChild" arraysize="1">
<deserialized alignment="4"/>
<serialized bytepos="12" byteorder="LE"/>
</element>
<element name="aChildren" type="tChild" arraysize="2">
<deserialized alignment="4"/>
<serialized bytepos="20" byteorder="LE"/>
</element>
</struct>
</structs>
// include the generated header
#include <test_struct.h>
class cMyFilter: public adtf::filter::cFilter
{
public:
ADTF_CLASS_ID_NAME(cMyFilter, "my_filter.filter.example.cid", "My Filter");
cMyFilter()
{
CreateInputPin("input", adtf::mediadescription::description<tTest>());
}
tResult AcceptType(adtf::streaming::ISampleReader* /*pReader*/,
{
}
tResult ProcessInput(adtf::streaming::ISampleReader* /*pReader*/,
{
auto oSampleData = m_oSampleDataFactory.Make(pSample);
LOG_INFO("received a sample:\n"
" nValue = %u\n"
" aArray[0] = %u\n"
" sChild.nA = %u\n"
" aChildren[0].nA = %u",
oSampleData.nValue(),
oSampleData.aArray()[0],
oSampleData.sChild().nA(),
oSampleData.aChildren()[0].nB());
}
private:
};
Copyright © Audi Electronics Venture GmbH.
#define RETURN_NOERROR
Return status ERR_NOERROR, which requires the calling function's return type to be tResult.
#define ADTF_CLASS_ID_NAME(_class, _strcid, _strclabel)
Common macro to enable correct treatment of class identifier AND Class Name by IClassInfo.
Definition: class_id.h:33
This factory provides instances of md_sample_data for incoming samples.
Interface for sample reads that read from sample streams via input pins.
Base object pointer to realize binary compatible reference counting in interface methods.
Template to provide struct name and definition for a generated struct.

Definition at line 113 of file md_sample_data_legacy.h.