15#ifndef DDL_CODEC_TYPE_INFO_CLASS_HEADER
16#define DDL_CODEC_TYPE_INFO_CLASS_HEADER
122 friend class StructAccess;
123 CodecTypeInfo(
const std::string& type_name,
ElementType _element_type);
124 CodecTypeInfo(
const std::string& type_name,
130 std::string _type_name;
138class CodecConstantInfo {
162 friend class StructAccess;
166 const char* _constant_name;
173class CodecDefaultValueInfo {
190 friend class StructAccess;
a_util::variant::Variant getConstantValue() const
const char * getConstantName() const
Get the name of the constant value.
bool isConstant() const
Determines if the element has a constant value or not.
bool hasDefaultValue() const
Determines if the element has a constant value or not.
a_util::variant::Variant getDefaultValue() const
std::vector< std::string > getEnumElementNames() const
Get the Enum Element Names.
const char * getTypeName() const
Get the typename.
a_util::variant::Variant getEnumElementValue(const std::string &name) const
ElementType getType() const
Get the Type.
bool isEnum() const
Determines the value is an enum or not.
bool hasEnumElementName(const std::string &name) const
Determines if the enum element name exists.
const AccessEnumType * getLegacyAccessEnumType() const
Legacy Only: Get the Legacy Access Enum Type object.
const char * getEnumElementName(const a_util::variant::Variant &value) const
@ VT_Empty
Variant type is empty.
Definition variant.h:26
@ VT_UInt32
Variant type is std::uint32_t.
Definition variant.h:33
@ VT_Int32
Variant type is std::int32_t.
Definition variant.h:32
@ VT_Double
Variant type is double.
Definition variant.h:37
@ VT_Int8
Variant type is std::int8_t.
Definition variant.h:28
@ VT_UInt64
Variant type is std::uint64_t.
Definition variant.h:35
@ VT_Bool
Variant type is bool.
Definition variant.h:27
@ VT_UInt16
Variant type is std::uint16_t.
Definition variant.h:31
@ VT_Int16
Variant type is std::int16_t.
Definition variant.h:30
@ VT_Float
Variant type is float.
Definition variant.h:36
@ VT_Int64
Variant type is std::int64_t.
Definition variant.h:34
@ VT_UInt8
Variant type is std::uint8_t.
Definition variant.h:29
Namespace for the new faster CodecFactory/Decoder/Codec implementation.
Definition codec.h:22
ddl::AccessEnumType AccessEnumType
This is the legacy Access Type for resolving enum names.
Definition codec_type_info.h:50
ElementType
The element type of the value.
Definition codec_type_info.h:30
@ cet_float
Variant type is float.
Definition codec_type_info.h:41
@ cet_int16
Variant type is std::int16_t.
Definition codec_type_info.h:35
@ cet_int8
Variant type is std::int8_t.
Definition codec_type_info.h:33
@ cet_uint64
Variant type is std::uint64_t.
Definition codec_type_info.h:40
@ cet_uint8
Variant type is std::uint8_t.
Definition codec_type_info.h:34
@ cet_uint32
Variant type is std::uint32_t.
Definition codec_type_info.h:38
@ cet_sub_codec
type marks a subcodec/substructure with children
Definition codec_type_info.h:43
@ cet_bool
Variant type is bool.
Definition codec_type_info.h:32
@ cet_uint16
Variant type is std::uint16_t.
Definition codec_type_info.h:36
@ cet_int32
Variant type is std::int32_t.
Definition codec_type_info.h:37
@ cet_int64
Variant type is std::int64_t.
Definition codec_type_info.h:39
@ cet_empty
Variant type is empty.
Definition codec_type_info.h:31
@ cet_user_type
type marks a user defined type
Definition codec_type_info.h:44
@ cet_double
Variant type is double.
Definition codec_type_info.h:42
definition of the ddl namespace
Definition codec.h:21
std::map< std::string, a_util::variant::Variant > AccessEnumType
Definition struct_element.h:27