ADTF
|
Codec for static structures defined by a DataDefinition definition. More...
Public Types | |
typedef CodecElement< CodecElementAccess< StaticCodec > > | Element |
Static codec element. | |
typedef ChildElements< CodecElementAccess< StaticCodec > > | Elements |
Iterator container to iterate all elements of the static decoder. More... | |
Public Types inherited from StaticDecoder | |
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 | |
StaticCodec () | |
Default constructor. | |
StaticCodec (const StaticCodec &)=delete | |
Noncopyable. | |
StaticCodec & | operator= (const StaticCodec &)=delete |
Noncopyable. | |
StaticCodec (StaticCodec &&) | |
Move constructor. | |
StaticCodec & | operator= (StaticCodec &&) |
Move assignment operator. | |
Element | getElement (const CodecIndex &codec_index) |
Retrieves an element instance based on the codec index of that element. More... | |
Element | getElement (const std::string &full_element_name) |
Retrieves an element instance based on the full name of the element. More... | |
Elements & | getElements () |
Retrieves the elements of the static codec to get element information. More... | |
template<typename T > | |
void | setElementValue (const CodecIndex &codec_index, const T &value) |
Sets the current value of the given element from given value in type T. More... | |
template<typename T > | |
void | setElementValue (const LeafCodecIndex &leaf_codec_index, const T &value) |
Sets the current value of the given element from given value in type T. More... | |
void | setElementVariantValue (const CodecIndex &codec_index, const a_util::variant::Variant &value) |
Sets the current value of the given element from the given variant. More... | |
void | setElementStringValue (const CodecIndex &codec_index, const std::string &value) |
Sets the current value of the given element from the given string. More... | |
void | setElementRawValue (const CodecIndex &codec_index, const void *value, size_t value_size) |
Sets the current value of the given element by copying its data from the passed-in location. More... | |
void * | getElementAddress (const CodecIndex &codec_index) |
void | resetValues (bool zero_values=false) |
Sets all elements to their default values, constant values defined in the data definition or zero if zero_values is set. More... | |
void * | getData () noexcept |
Get the current set data. More... | |
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... | |
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... | |
const void * | getElementAddress (const CodecIndex &index) const |
const Elements & | getElements () const |
Retrieves the elements of the static decoder to get element information. More... | |
const void * | getData () const noexcept |
Get the current set data. More... | |
Public Member Functions inherited from StaticDecoder | |
~StaticDecoder ()=default | |
DTOR. | |
StaticDecoder () | |
Default constructor. | |
StaticDecoder (const StaticDecoder &)=delete | |
Noncopyable. | |
StaticDecoder & | operator= (const StaticDecoder &)=delete |
Noncopyable. | |
StaticDecoder (StaticDecoder &&) | |
Move constructor. | |
StaticDecoder & | operator= (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 Elements & | getElements () 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 > | |
T | getElementValue (const CodecIndex &codec_index) const |
Returns the current value of the given element as a T if supported. More... | |
template<typename T > | |
T | getElementValue (const LeafCodecIndex &leaf_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 |
CodecIndex | resolve (size_t leaf_index, std::string &element_full_name) 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 (layout will be set) More... | |
const void * | getData () const noexcept |
Get the current set data. More... | |
size_t | getDataSize () const noexcept |
Get the current size (in bytes) of the data. More... | |
Private Member Functions | |
StaticCodec (std::shared_ptr< const StructAccess > codec_access, void *data, size_t data_size, DataRepresentation representation) | |
For internal use only. | |
Private Attributes | |
Element | _first_element |
Additional Inherited Members | |
Protected Member Functions inherited from StaticDecoder | |
StaticDecoder (std::shared_ptr< const StructAccess > codec_access, const void *data, size_t data_size, DataRepresentation representation) | |
For internal use only. | |
Protected Attributes inherited from StaticDecoder | |
std::shared_ptr< const StructAccess > | _codec_access |
For internal use only. | |
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. | |
Codec for static structures defined by a DataDefinition definition.
Definition at line 312 of file workspace/conan/dev_essential/1.4.3/dw/stable/package/aef85909f792a5a628750d25016a24323084963f/include/ddl/codec/static_codec.h.
typedef ChildElements<CodecElementAccess<StaticCodec> > Elements |
Iterator container to iterate all elements of the static decoder.
Definition at line 376 of file workspace/conan/dev_essential/1.4.3/dw/stable/package/aef85909f792a5a628750d25016a24323084963f/include/ddl/codec/static_codec.h.
|
noexcept |
Get the current set data.
|
noexcept |
Get the current set data.
Element getElement | ( | const CodecIndex & | codec_index | ) |
Retrieves an element instance based on the codec index of that element.
[in] | codec_index | The codec index. |
throws | std::runtime_error if not found. |
Element getElement |
Retrieves an element instance based on the codec index of that element.
[in] | codec_index | The codec index. |
throws | std::runtime_error if not found. |
Element getElement | ( | const std::string & | full_element_name | ) |
Retrieves an element instance based on the full name of the element.
[in] | full_element_name | The full name of the element in point notation (i.e. "element1.child_element[4].element_value" ). |
By using an empty string the deserialized decoding information within CodecIndex will retrieve the buffers first address and whole buffersize. By refering an array without dedicated array index position the deserialized decoding information within CodecIndex will be set to the arrays first address and the whole array size. By refering an structured value (not a leaf value) the deserialized decoding information within CodecIndex will be set to the structs first address and the whole struct size.
throws | std::runtime_error if not found. |
Element getElement |
Retrieves an element instance based on the full name of the element.
[in] | full_element_name | The full name of the element in point notation (i.e. "element1.child_element[4].element_value" ). |
By using an empty string the deserialized decoding information within CodecIndex will retrieve the buffers first address and whole buffersize. By refering an array without dedicated array index position the deserialized decoding information within CodecIndex will be set to the arrays first address and the whole array size. By refering an structured value (not a leaf value) the deserialized decoding information within CodecIndex will be set to the structs first address and the whole struct size.
throws | std::runtime_error if not found. |
a_util::result::Result getElement |
Returns the StructElement of the element with given leaf index.
[in] | leaf_index | The leaf index of the element. |
[out] | legacy_struct_element | the struct element legacy description. |
void* getElementAddress | ( | const CodecIndex & | codec_index | ) |
[in] | codec_index | The index of the element. |
throws | std::runtime_error if not found. |
const void* getElementAddress |
[in] | index | The index of the element. |
Elements& getElements | ( | ) |
Retrieves the elements of the static codec to get element information.
const Elements& getElements |
Retrieves the elements of the static decoder to get element information.
void resetValues | ( | bool | zero_values = false | ) |
Sets all elements to their default values, constant values defined in the data definition or zero if zero_values
is set.
[in] | zero_values | set the value to 0 if no constant or default value set in data definition. |
void setElementRawValue | ( | const CodecIndex & | codec_index, |
const void * | value, | ||
size_t | value_size | ||
) |
Sets the current value of the given element by copying its data from the passed-in location.
[in] | codec_index | The codec index of the element. |
[in] | value | The location where the data should be copied from. |
[in] | value_size | Size of the memory in value (if set to 0: unsafe usage of value without size check) |
throws | std::runtime_error if not found or value_size is lower then elements value memory to copy |
void setElementStringValue | ( | const CodecIndex & | codec_index, |
const std::string & | value | ||
) |
Sets the current value of the given element from the given string.
This will cast the given value to the elements data type!
[in] | codec_index | The index of the element. |
[in] | value | The value to set. |
throws | std::runtime_error if not found. |
|
inline |
Sets the current value of the given element from given value
in type T.
This will cast the given value to the elements data type!
[in] | codec_index | The index of the element. |
[in] | value | The value to set. |
T | Type of the value to set |
throws | std::runtime_error if not found. |
Definition at line 393 of file workspace/conan/dev_essential/1.4.3/dw/stable/package/aef85909f792a5a628750d25016a24323084963f/include/ddl/codec/static_codec.h.
References ValueSetterSelect< CodecType, ValueType, is_supported_leaf_type >::setValue().
|
inline |
Sets the current value of the given element from given value
in type T.
This will cast the given value to the elements data type!
[in] | leaf_codec_index | The leaf codec index of the element. |
[in] | value | The value to set. |
T | Type of the value to set |
std::runtime_error | if there is no valid conversion or the given leaf_codec_index is invalid |
Definition at line 407 of file workspace/conan/dev_essential/1.4.3/dw/stable/package/aef85909f792a5a628750d25016a24323084963f/include/ddl/codec/static_codec.h.
References StaticDecoder::getData(), StaticDecoder::getDataSize(), LeafCodecIndex::getLayout(), and LeafValueSetter< ValueType >::setValue().
void setElementVariantValue | ( | const CodecIndex & | codec_index, |
const a_util::variant::Variant & | value | ||
) |
Sets the current value of the given element from the given variant.
If this element is a enum type the enum types element name can be used in value
. Otherwise the string value is automatically converted to the elments data type, if possible.
[in] | codec_index | The index of the element. |
[in] | value | The value to set. |
throws | std::runtime_error if not found. |