15#ifndef DDL_CODEC_CLASS_HEADER
16#define DDL_CODEC_CLASS_HEADER
105 std::string_view relative_path)
const;
141 friend class CodecFactory;
143 Decoder(std::shared_ptr<const StructAccess> codec_access,
253 template <
typename T>
267 template <
typename T>
323 friend class CodecFactory;
324 friend class Decoder;
326 Codec(std::shared_ptr<const StructAccess> codec_access,
343#include <ddl/codec/legacy/codec_legacy.h>
Definition result_type_decl.h:34
Iteratable container type for the given Element type in ElementAccessType::element_type.
Definition codec_iterator.h:257
A CodecElement to get and set values.
Definition codec_iterator.h:1221
Definition codec_index.h:276
void * getData() noexcept
Get the current set data.
ChildElements< CodecElementAccess< Codec > > Elements
Definition codec.h:238
CodecElement< CodecElementAccess< Codec > > Element
Definition codec.h:193
Codec(const Codec &)=delete
void resetValues(bool zero_values=false)
void setElementValue(const CodecIndex &codec_index, const T &value)
Definition codec.h:254
Codec & operator=(Codec &&)
void setElementStringValue(const CodecIndex &codec_index, const std::string &value)
Element getElement(std::string_view full_path)
Element getChildElement(const CodecIndex &parent_codec_index, std::string_view relative_path)
void setElementValue(const LeafCodecIndex &leaf_codec_index, const T &value)
Definition codec.h:268
void setElementRawValue(const CodecIndex &codec_index, const void *value, size_t value_size)
Element getElement(const CodecIndex &codec_index)
void setElementVariantValue(const CodecIndex &codec_index, const a_util::variant::Variant &value)
Codec & operator=(const Codec &)=delete
void * getElementAddress(const CodecIndex &codec_index)
A DecoderElement to get values.
Definition codec_iterator.h:969
a_util::result::Result isValid() const override
size_t getBufferSize(DataRepresentation representation) const
Gets the buffer size in bytes for the main structure.
Decoder & operator=(const Decoder &)=delete
Element getElement(const CodecIndex &codec_index) const
ChildElements< DecoderElementAccess< const Decoder > > Elements
Definition codec.h:111
const Elements & getElements() const
Element getElement(std::string_view full_path) const
size_t getBufferSize() const
Gets the buffer size in bytes for the main structure.
Decoder(const Decoder &decoder, const void *data, size_t data_size, DataRepresentation representation)
For internal use only.
Decoder(std::shared_ptr< const StructAccess > codec_access, const void *data, size_t data_size, DataRepresentation representation)
For internal use only.
DecoderElement< DecoderElementAccess< const Decoder > > Element
Definition codec.h:64
Element getChildElement(const CodecIndex &parent_codec_index, std::string_view relative_path) const
Decoder(const Decoder &)=delete
Decoder & operator=(Decoder &&)
Codec makeCodecFor(void *data, size_t data_size, DataRepresentation representation) const
A factory element access type concept template to retrieve element information from the AccessType....
Definition codec_iterator.h:439
The Leaf codec index is a small layout information index to access the decoders/codecs data very fast...
Definition leaf_value_access.h:43
const LeafLayout & getLayout() const noexcept
Get the leaf layout.
Definition leaf_value_access.h:66
size_t getDataSize() const noexcept
Get the current size (in bytes) of the data.
const void * getData() const noexcept
Get the current set data.
const void * getElementAddress(const CodecIndex &index) const
Namespace for the new faster CodecFactory/Decoder/Codec implementation.
Definition codec.h:22
definition of the ddl namespace
Definition codec.h:21
DataRepresentation
Definition data_representation.h:25
static void setValue(void *data, const size_t data_size, const LeafLayout &leaf_layout, const ValueType &value)
Definition leaf_value_access.h:820
static void setValue(CodecType &codec, const CodecIndex &codec_index, const ValueType &value)
Definition value_access.h:227