15 #ifndef DDL_CODEC_INDEX_CLASS_HEADER
16 #define DDL_CODEC_INDEX_CLASS_HEADER
267 friend class StructAccess;
268 friend class ChildElementAccess;
269 template <
typename ElementAccessType,
typename ChildElementsType>
271 template <
typename ElementAccessType,
typename ChildElementsType>
273 template <
typename ElementAccessType,
typename ChildElementsType>
275 template <
typename ElementAccessType>
281 CodecIndex(
const std::vector<ElementIndex>& indexes);
294 CodecIndex getIndexForArrayPos(
size_t array_pos) const;
299 bool _layout_valid = {};
Iteratable container type for the given Element type in ElementAccessType::element_type.
The constant info of a element.
The default value info of a element.
A CodecElement to get and set values.
The element index at the CodecIndex.
ElementIndex(size_t element_index, size_t array_pos)
CTOR.
bool operator!=(const ElementIndex &other) const
Not equal operator.
size_t getArrayPos() const
Get the Array Pos.
static constexpr size_t _invalid_array_pos
Invalid array pos.
ElementIndex()=default
CTOR.
bool operator==(const ElementIndex &other) const
equal operator.
static constexpr size_t _invalid_element_index
Invalid element index.
ElementIndex & operator++()
Incrememts the index, keeps array pos.
size_t getIndex() const
Get the Index.
ElementIndex(size_t element_index)
CTOR.
Fast Access Index Type for the coders.
bool operator!=(const CodecIndex &other) const
Not equal operator.
const ElementIndex & operator[](size_t pos) const
Access operator to retrieve a elment index on the given pos.
ElementType getType() const
Get the elements type if CodecIndex is valid.
size_t size() const
Gets the Size of the codec index in element index count for generic programming.
bool operator==(const CodecIndex &other) const
Equal operator.
bool hasLayout() const
Has layout set.
size_t getSize() const
Get the Size of the codec index in element index count.
const ElementLayout & getLayout() const
Get the Layout.
CodecIndex()=default
Construct a new Codec Index.
Description of the elements Type.
A DecoderElement to get values.
Implementation of the CodecTypeInfoo and CodecConstantInfo.
OO DataDefinition Common Design.
ElementType
The element type of the value.
ddl::Position Position
Binary compatible reusing of structure for position of elements.
std::string toString(const CodecIndex &index)
Converts the index to a string.
ByteOrder
Representation of the byteorder enumeration.
definition of the ddl namespace
Structure for bit position of elements.
size_t bit_offset
the bit offset
size_t bit_size
the elements bitsize (the whole element)
Base layout definition for one element.
const CodecDefaultValueInfo * default_value_info
Pointer to the default_value_info if the value has a default value set.
ddl::dd::ByteOrder byte_order
Byte order of the element value.
size_t child_element_count
The child element count.
const CodecConstantInfo * constant_info
Pointer to the constant_info if the value is a constant.
const CodecTypeInfo * type_info
Pointer to the type_info.
PositionWithUsedBitsTypeSize serialized
serialized position.
PositionWithAlignedTypeSize deserialized
deserialized position.
size_t array_size
Array size of the element value.
Layout defintion for one element with set array position.
size_t array_pos
The array position of the element.
Position with type size information.
size_t type_bit_size_aligned
aligned type size in bits
Position with type size information.
size_t type_bit_size
type size in bits (in case of array, this is the size of one element within the array)
Position with used bit type size information.
size_t type_bit_size_used
type size in bits which is used (may be a bitfield)