ADTF  3.14.3
StaticDecoder

Decoder for static structures defined by a DataDefinition definition. More...

Inheritance diagram for StaticDecoder:
[legend]

Public Types

typedef DecoderElement< DecoderElementAccess< const StaticDecoder > > Element
 Static decoder element.
 
typedef ChildElements< DecoderElementAccess< const StaticDecoder > > Elements
 Iterator container to iterate all elements of the static decoder. More...
 

Public Member Functions

 StaticDecoder ()
 Default constructor.
 
 StaticDecoder (const StaticDecoder &)=delete
 Noncopyable.
 
StaticDecoderoperator= (const StaticDecoder &)=delete
 Noncopyable.
 
 StaticDecoder (StaticDecoder &&)
 Move constructor.
 
StaticDecoderoperator= (StaticDecoder &&)
 Move assignment operator.
 
virtual a_util::result::Result isValid () const
 
Element getElement (const CodecIndex &codec_index) const
 Retrieves an element instance based on the codec index of that element. More...
 
Element getElement (const std::string &full_element_name) const
 Retrieves an element instance based on the full name of the element. More...
 
const ElementsgetElements () const
 Retrieves the elements of the static decoder to get element information. More...
 
size_t getElementChildCount (const CodecIndex &codec_index=CodecIndex()) const
 Retrieves the amount of child elements for the given codec index. More...
 
std::string getElementFullName (const CodecIndex &codec_index) const
 Retrieves the full name of the element within its main structure. More...
 
std::string getElementName (const CodecIndex &codec_index) const
 Retrieves the name of the element within its structured element. More...
 
const std::string & getElementBaseName (const CodecIndex &codec_index) const
 Retrieves the base name of the element within its structured element. More...
 
template<typename T >
getElementValue (const CodecIndex &codec_index) const
 Returns the current value of the given element as a T if supported. More...
 
a_util::variant::Variant getElementVariantValue (const CodecIndex &codec_index) const
 Returns the current value of the given element as a variant. More...
 
void getElementVariantValue (const CodecIndex &codec_index, a_util::variant::Variant &value) const
 Returns the current value of the given element as a variant. More...
 
std::string getElementStringValue (const CodecIndex &codec_index) const
 Returns the current value of the given element as a string. More...
 
void getElementRawValue (const CodecIndex &index, void *value, size_t value_size) const
 Returns the current value of the given element as a variant. More...
 
const void * getElementAddress (const CodecIndex &index) const
 
size_t getStaticBufferSize () const
 Gets the static buffer size in bytes for the main structure. More...
 
size_t getStaticBufferSize (DataRepresentation rep) const
 Gets the static buffer size in bytes for the main structure. More...
 
DataRepresentation getRepresentation () const
 Returns the current data representation the decoder decodes from. More...
 
CodecIndex resolve (size_t leaf_index) const
 
size_t getElementCount () const
 is the leaf count More...
 
a_util::result::Result getElement (size_t leaf_index, const ddl::StructElement *&legacy_struct_element) const
 Returns the StructElement of the element with given leaf index. More...
 
void resolve (CodecIndex &codec_index) const
 The codec index will be resolved for fast access. More...
 

Protected Member Functions

 StaticDecoder (std::shared_ptr< const StructAccess > codec_access, const void *data, size_t data_size, DataRepresentation representation)
 For internal use only.
 

Protected Attributes

std::shared_ptr< const StructAccess > _codec_access
 
const void * _data = nullptr
 For internal use only.
 
size_t _data_size = 0
 For internal use only.
 
const ddl::codec::ElementAccessor * _element_accessor
 For internal use only.
 

Private Attributes

ddl::access_element::StructElementLegacy< const StaticDecoder_legacy_element
 For internal use only.
 
Element _first_element
 

Detailed Description

Decoder for static structures defined by a DataDefinition definition.

Definition at line 31 of file repo/src/libraries/mediadescription/include/ddl/codec_preview/static_codec.h.

Member Typedef Documentation

◆ Elements

Member Function Documentation

◆ getElement() [1/3]

Element getElement ( const CodecIndex codec_index) const

Retrieves an element instance based on the codec index of that element.

Parameters
[in]codec_indexThe codec index.
Returns
The Codec Index of the DecoderElement.
Remarks
The element is only valid as long as the static decoder exists.
Exceptions
throwsstd::runtime_error if not found.

◆ getElement() [2/3]

Element getElement ( const std::string &  full_element_name) const

Retrieves an element instance based on the full name of the element.

Parameters
[in]full_element_nameThe full name of the element in point notation (i.e. "element1.child_element[4].element_value").
Returns
The Codec Index of the DecoderElement.
Remarks
The element is only valid as long as the static decoder exists.
Exceptions
throwsstd::runtime_error if not found.

◆ getElement() [3/3]

a_util::result::Result getElement ( size_t  leaf_index,
const ddl::StructElement *&  legacy_struct_element 
) const

Returns the StructElement of the element with given leaf index.

Parameters
[in]leaf_indexThe leaf index of the element.
[out]legacy_struct_elementthe struct element legacy description.
Returns
The amount of static elements contained in the handled structure.
Remarks
This is for legacy access only!

◆ getElementAddress()

const void* getElementAddress ( const CodecIndex index) const
Parameters
[in]indexThe index of the element.
Returns
A pointer to the element or nullptr in case of an error.

◆ getElementBaseName()

const std::string& getElementBaseName ( const CodecIndex codec_index) const

Retrieves the base name of the element within its structured element.

If the element is an array you get the elements base name respresentation : "element_name" for each array element. If the element is not an array you get the elements name respresentation is also the base name respresentation: "element_name" .

Parameters
[in]codec_indexThe codec index of the element.
Returns
The base name of the element.
Exceptions
throwsstd::runtime_error if not found.

◆ getElementChildCount()

size_t getElementChildCount ( const CodecIndex codec_index = CodecIndex()) const

Retrieves the amount of child elements for the given codec index.

Parameters
[in]codec_indexThe codec index of the element.
Return values
0has no children. May be a leaf element.
>0has children. May be a structured element.
Exceptions
throwsstd::runtime_error if not found.

◆ getElementCount()

size_t getElementCount ( ) const

is the leaf count

Returns
The amount of leaf elements contained in the data structure.

◆ getElementFullName()

std::string getElementFullName ( const CodecIndex codec_index) const

Retrieves the full name of the element within its main structure.

If the element is an array you get the elements array name respresentation: "main_element.element_name[0]" or main_element.element_name[1] ... etc. If the element is not an array you get the elements name respresentation: "main_element.element_name".

Parameters
[in]codec_indexThe codec index of the element.
Returns
The full name of the element in array representation depending on array size.
Exceptions
throwsstd::runtime_error if not found.

◆ getElementName()

std::string getElementName ( const CodecIndex codec_index) const

Retrieves the name of the element within its structured element.

If the element is an array you get the elements array name respresentation: "element_name[0]" or element_name[1] ... etc. If the element is not an array you get the elements name respresentation: "element_name".

Parameters
[in]codec_indexThe codec index of the element.
Returns
The name of the element in array representation depending on array size.
Exceptions
throwsstd::runtime_error if not found.

◆ getElementRawValue()

void getElementRawValue ( const CodecIndex index,
void *  value,
size_t  value_size 
) const

Returns the current value of the given element as a variant.

Parameters
[in]indexThe index of the element.
[out]valueThe will be set to the current value.
[in]value_sizeSize of the memory in value (if set to 0: unsafe usage of value without size check)
Exceptions
throwsstd::runtime_error if not found.

◆ getElements()

const Elements& getElements ( ) const

Retrieves the elements of the static decoder to get element information.

Returns
Elements The elements iterator container.
See also
forEachLeafElement, forEachElement
StaticDecoder::Element, The Codec Index and the Element Iterator

◆ getElementStringValue()

std::string getElementStringValue ( const CodecIndex codec_index) const

Returns the current value of the given element as a string.

If this element is a enum type the enum types element name will be set.

Parameters
[in]codec_indexThe index of the element.
Returns
std::string String to return the current value to, if enum, enum value name will be set.
Exceptions
throwsstd::runtime_error if not found.

◆ getElementValue()

T getElementValue ( const CodecIndex codec_index) const
inline

Returns the current value of the given element as a T if supported.

Parameters
[in]codec_indexThe index of the element.
Template Parameters
TThe type of the value to retrieve.
Returns
Returns the current value as T if supported.
Exceptions
throwsstd::runtime_error if not found.

Definition at line 140 of file repo/src/libraries/mediadescription/include/ddl/codec_preview/static_codec.h.

References ValueGetter< DecoderType, ValueType >::getValue().

◆ getElementVariantValue() [1/2]

a_util::variant::Variant getElementVariantValue ( const CodecIndex codec_index) const

Returns the current value of the given element as a variant.

Parameters
[in]codec_indexThe index of the element.
Returns
a_util::variant::Variant Variant to return the current value to, type will be set.
Exceptions
throwsstd::runtime_error if not found.

◆ getElementVariantValue() [2/2]

void getElementVariantValue ( const CodecIndex codec_index,
a_util::variant::Variant value 
) const

Returns the current value of the given element as a variant.

Parameters
[in]codec_indexThe index of the element.
[out]valueVariant to return the current value to, type will be set.
Exceptions
throwsstd::runtime_error if not found.

◆ getRepresentation()

DataRepresentation getRepresentation ( ) const

Returns the current data representation the decoder decodes from.

Returns
The data representation which this decoder handles.

◆ getStaticBufferSize() [1/2]

size_t getStaticBufferSize ( ) const

Gets the static buffer size in bytes for the main structure.

Returns
The size in bytes of the structure in the current data representation (getRepresentation).

◆ getStaticBufferSize() [2/2]

size_t getStaticBufferSize ( DataRepresentation  rep) const

Gets the static buffer size in bytes for the main structure.

Parameters
[in]repThe data representation for which the buffer size should be returned.
Returns
The size in bytes of the structure in the requested data representation.

◆ isValid()

virtual a_util::result::Result isValid ( ) const
virtual
Returns
Whether or not the decoder is valid.
Return values
ERR_INVALID_ARGThe passed data is not large enough.

Reimplemented in Decoder.

◆ resolve() [1/2]

void resolve ( CodecIndex codec_index) const

The codec index will be resolved for fast access.

Parameters
[in]Thecodec index to resolve.
Returns
CodecIndex The resolved codec index.
Exceptions
throwsstd::runtime_error if not found.

◆ resolve() [2/2]

CodecIndex resolve ( size_t  leaf_index) const
Parameters
[in]leaf_indexThe leaf index of the element.
Returns
The Codec Index of the element.
Exceptions
throwsstd::runtime_error if not found.

Copyright © Audi Electronics Venture GmbH. All rights reserved. (Generated on Thu Jun 9 2022 by doxygen 1.9.1)