Dev Essential
Loading...
Searching...
No Matches
static_codec_legacy.h
Go to the documentation of this file.
1
14
15#ifndef DDL_STATIC_CODEC_LEGACY_CLASS_HEADER
16#define DDL_STATIC_CODEC_LEGACY_CLASS_HEADER
17
18#include <a_util/preprocessor/deprecated.h> // DEV_ESSENTIAL_DEPRECATED()
20
22#define DEV_ESSENTIAL_DEPRECATED_STATIC_DECODER \
23 DEV_ESSENTIAL_DEPRECATED("Use the new ddl::codec::StaticDecoder() instead.")
24
25#define DEV_ESSENTIAL_DEPRECATED_STATIC_CODEC \
26 DEV_ESSENTIAL_DEPRECATED("Use the new ddl::codec::StaticCodec() instead.")
28
29namespace ddl {
30
31// forward declaration for legacy codec access
32struct LegacyCodecAccess;
33class StructLayout;
34
40public:
42 ~StaticDecoder() = default;
46 DEV_ESSENTIAL_DEPRECATED_STATIC_DECODER
51 StaticDecoder(const StaticDecoder&) = delete;
52
57
62
66 DEV_ESSENTIAL_DEPRECATED_STATIC_DECODER
68
74
78 virtual size_t getElementCount() const;
79
86 a_util::result::Result getElement(size_t index, const StructElement*& element) const;
87
95 a_util::result::Result getElementValue(size_t index, void* value) const;
96
104
109 const void* getElementAddress(size_t index) const;
110
116
121
122protected:
123 friend class CodecFactory;
127 StaticDecoder(std::shared_ptr<const StructLayout> layout,
128 const void* data,
129 size_t data_size,
131
133 StaticDecoder(const std::shared_ptr<LegacyCodecAccess>& legacy_codec_access);
134
135protected:
137 std::shared_ptr<LegacyCodecAccess> _legacy_access;
140 const void* _compat_data;
147};
148
154public:
158 DEV_ESSENTIAL_DEPRECATED_STATIC_CODEC
163 StaticCodec(const StaticCodec&) = delete;
164
169
174
178 DEV_ESSENTIAL_DEPRECATED_STATIC_CODEC
180
188 a_util::result::Result setElementValue(size_t index, const void* value);
189
197
202 void* getElementAddress(size_t index);
204
210
211protected:
212 friend class CodecFactory;
216 StaticCodec(std::shared_ptr<const StructLayout> layout,
217 void* data,
218 size_t data_size,
220};
221
222} // namespace ddl
223
224#endif // DDL_STATIC_CODEC_LEGACY_CLASS_HEADER
Definition result_type_decl.h:34
Definition variant.h:46
StaticCodec & operator=(const StaticCodec &)=delete
DEV_ESSENTIAL_DEPRECATED_STATIC_CODEC StaticCodec()
StaticCodec(std::shared_ptr< const StructLayout > layout, void *data, size_t data_size, DataRepresentation rep)
a_util::result::Result setConstants()
a_util::result::Result setElementValue(size_t index, const a_util::variant::Variant &value)
a_util::result::Result setElementValue(size_t index, const void *value)
StaticCodec(const StaticCodec &)=delete
void * getElementAddress(size_t index)
DEV_ESSENTIAL_DEPRECATED_STATIC_CODEC StaticCodec & operator=(StaticCodec &&)=default
StaticCodec(StaticCodec &&)=default
size_t _compat_data_size
Definition static_codec_legacy.h:143
const void * getElementAddress(size_t index) const
a_util::result::Result getElement(size_t index, const StructElement *&element) const
StaticDecoder(const std::shared_ptr< LegacyCodecAccess > &legacy_codec_access)
For internal use only.
StaticDecoder & operator=(const StaticDecoder &)=delete
a_util::result::Result getElementValue(size_t index, a_util::variant::Variant &value) const
~StaticDecoder()=default
virtual DTOR
DEV_ESSENTIAL_DEPRECATED_STATIC_DECODER StaticDecoder()
const void * _compat_data
Definition static_codec_legacy.h:140
StaticDecoder(StaticDecoder &&)=default
a_util::result::Result getElementValue(size_t index, void *value) const
virtual size_t getElementCount() const
DEV_ESSENTIAL_DEPRECATED_STATIC_DECODER StaticDecoder & operator=(StaticDecoder &&)=default
const void * _compat_element_accessor
Definition static_codec_legacy.h:146
size_t getStaticBufferSize(DataRepresentation rep=deserialized) const
StaticDecoder(const StaticDecoder &)=delete
DataRepresentation getRepresentation() const
std::shared_ptr< LegacyCodecAccess > _legacy_access
For internal use only.
Definition static_codec_legacy.h:137
StaticDecoder(std::shared_ptr< const StructLayout > layout, const void *data, size_t data_size, DataRepresentation rep)
virtual a_util::result::Result isValid() const
definition of the ddl namespace
Definition codec.h:21
DataRepresentation
Definition data_representation.h:25
@ deserialized
deserialized data, c-structs, arrays, ...
Definition data_representation.h:27
Definition struct_element.h:32