ADTF
DecoderElement< ElementAccessType, ChildElementsType >

A DecoderElement to get values. More...

Inheritance diagram for DecoderElement< ElementAccessType, ChildElementsType >:
[legend]

Public Types

using base_type = FactoryElement< ElementAccessType, ChildElementsType >
 base type
 
using self_type = DecoderElement< ElementAccessType, ChildElementsType >
 self type
 
using access_type = typename ElementAccessType::access_type
 access type from concept template
 
using child_elements_type = typename base_type::child_elements_type
 allowed container type
 
using iterator_type = typename child_elements_type::iterator
 allowed iterator type
 
using const_iterator_type = typename child_elements_type::const_iterator
 allowed const iterator type
 
- Public Types inherited from FactoryElement< ElementAccessType, ChildElements< ElementAccessType > >
using self_type = FactoryElement< ElementAccessType, ChildElements< ElementAccessType > >
 self type
 
using access_type = typename ElementAccessType::access_type
 access type
 
using child_elements_type = ChildElements< ElementAccessType >
 allowed container type
 
using iterator_type = typename child_elements_type::iterator
 allowed iterator type
 
using const_iterator_type = typename child_elements_type::const_iterator
 allowed const iterator type
 

Public Member Functions

 DecoderElement ()=delete
 CTOR.
 
template<typename T >
getValue () const
 Get the value as type T. More...
 
a_util::variant::Variant getVariantValue () const
 Get the value as variant. More...
 
std::string getStringValue () const
 Get the value as string. More...
 
void getRawValue (void *value, size_t value_size) const
 Get the as copy to the value buffer. More...
 
const void * getAddress () const
 Get the address of the element. More...
 
self_type getChildElement (const std::string &name) const
 Get the child element with the given name. More...
 
self_type getArrayElement (size_t array_pos=0) const
 Get the array element of the given array_pos. More...
 
- Public Member Functions inherited from FactoryElement< ElementAccessType, ChildElements< ElementAccessType > >
 FactoryElement ()=delete
 no CTOR
 
 FactoryElement (FactoryElement &&other)
 move CTOR More...
 
 FactoryElement (const FactoryElement &other)
 copy CTOR More...
 
FactoryElementoperator= (FactoryElement &&other)
 copy assignment operator More...
 
FactoryElementoperator= (const FactoryElement &other)
 move assignment operator More...
 
 ~FactoryElement ()=default
 DTOR.
 
const CodecIndexgetIndex () const
 Get the codec index of the element. More...
 
size_t getArraySize () const
 Get the array size. More...
 
ddl::codec::ElementType getType () const
 Get the type of the element. More...
 
std::string getFullName () const
 Get the full name of the element. More...
 
std::string getName () const
 Get the name of the element If the element is an array you get the elements array name representation: "element_name[0]" or element_name[1] ... More...
 
std::string getBaseName () const
 Get the base name of the element. More...
 
bool isArray () const
 Get array information. More...
 
bool hasChildren () const
 Get children information. More...
 
const child_elements_typegetChildElements () const
 Get the ChildElements. More...
 
self_type getChildElement (const std::string &name) const
 Get the child element with the given name. More...
 
self_type getArrayElement (size_t array_pos=0) const
 Get the array element of the given array_pos. More...
 
bool isValid () const
 Get validation indormation. More...
 

Public Attributes

friend child_elements_type
 friend declaration for child_elements_type
 
friend iterator_type
 friend declaration for iterator_type
 
friend const_iterator_type
 friend declaration for const_iterator_type
 
friend access_type
 friend declaration for access_type
 
friend base_type
 friend declaration for base_type
 
friend CodecElement< ElementAccessType, ChildElementsType >
 friend declaration for CodecElement
 
- Public Attributes inherited from FactoryElement< ElementAccessType, ChildElements< ElementAccessType > >
friend access_type
 friend declaration for access_type
 
friend child_elements_type
 friend declaration for child_elements_type
 
friend iterator_type
 friend declaration for iterator_type
 
friend const_iterator_type
 friend declaration for child_elements_type
 
friend DecoderElement< ElementAccessType, ChildElementsType >
 friend declaration for DecoderElement
 
friend CodecElement< ElementAccessType, ChildElementsType >
 friend declaration for CodecElement
 

Private Member Functions

 DecoderElement (CodecIndex &&index, size_t end_element_index, size_t child_elements_count, access_type &access)
 
 DecoderElement (CodecIndex &&index, size_t end_element_index, access_type &access)
 
 DecoderElement (const std::string &element_name, access_type &access)
 
 DecoderElement (CodecIndex &&index, access_type &access)
 
 DecoderElement (access_type &access)
 
void next ()
 

Detailed Description

template<typename ElementAccessType, typename ChildElementsType = ChildElements<ElementAccessType>>
class ddl::codec::DecoderElement< ElementAccessType, ChildElementsType >

A DecoderElement to get values.

Template Parameters
ElementAccessTypeThe element access concept type. (see concept templates DecoderElementAccess, CodecElementAccess)

Definition at line 938 of file codec_iterator.h.

Member Function Documentation

◆ getAddress()

const void* getAddress ( ) const
inline

Get the address of the element.

Returns
const void*

Definition at line 1022 of file codec_iterator.h.

References FactoryElement< ElementAccessType, ChildElementsType >::getIndex().

◆ getArrayElement()

self_type getArrayElement ( size_t  array_pos = 0) const
inline

Get the array element of the given array_pos.

Parameters
array_posThe array pos of the element to retrieve
Returns
self_type

Definition at line 1043 of file codec_iterator.h.

References FactoryElement< ElementAccessType, ChildElementsType >::getIndex().

◆ getChildElement()

self_type getChildElement ( const std::string &  name) const
inline

Get the child element with the given name.

Parameters
nameName of the child element.
Returns
self_type

Definition at line 1031 of file codec_iterator.h.

References FactoryElement< ElementAccessType, ChildElementsType >::getFullName().

◆ getRawValue()

void getRawValue ( void *  value,
size_t  value_size 
) const
inline

Get the as copy to the value buffer.

Parameters
valueThe value buffer to copy to
value_sizeThe size of the value buffer (if 0 its unsafe usage without size check!, the size is only retrieved from the codec information)

Definition at line 1013 of file codec_iterator.h.

References FactoryElement< ElementAccessType, ChildElementsType >::getIndex().

◆ getStringValue()

std::string getStringValue ( ) const
inline

Get the value as string.

Returns
value as string (the value is returned as enum element name in case of enum type)

Definition at line 1003 of file codec_iterator.h.

References FactoryElement< ElementAccessType, ChildElementsType >::getIndex().

◆ getValue()

T getValue ( ) const
inline

Get the value as type T.

Template Parameters
TType of the value to return
Returns
value in type T (supported types: all int types, bool, float, double, std::string)
Remarks
for T = std::string the value is returned as element name in case of enum type
See also
StaticCodec::getElementValue

Definition at line 986 of file codec_iterator.h.

References FactoryElement< ElementAccessType, ChildElementsType >::getIndex().

◆ getVariantValue()

a_util::variant::Variant getVariantValue ( ) const
inline

Get the value as variant.

Returns
value as variant (supported types: all int types, bool, float, double, std::string)

Definition at line 995 of file codec_iterator.h.

References FactoryElement< ElementAccessType, ChildElementsType >::getIndex().