6 #include "../mip_types.h"
7 #include "../mip_field.h"
19 #include <type_traits>
157 operator const void*()
const {
return isOk() ? this :
nullptr; }
184 template<
typename Enum>
185 typename std::enable_if< std::is_enum<Enum>::value,
void>::type
186 insert(
Serializer& serializer, Enum value) {
return insert(serializer,
static_cast< typename std::underlying_type<Enum>::type
>(value) ); }
201 bool insert(
const T& value, uint8_t* buffer,
size_t bufferSize)
204 insert(serializer, value);
229 template<
typename Enum>
230 typename std::enable_if< std::is_enum<Enum>::value,
void>::type
232 typename std::underlying_type<Enum>::type tmp;
234 value =
static_cast<Enum
>(tmp);
258 bool extract(T& value_out,
const uint8_t* buffer,
size_t bufferSize,
size_t offset=0,
bool exact_size=
false)
260 Serializer serializer(buffer, bufferSize, offset);
261 extract(serializer, value_out);
Serialization class.
Definition: serialization.h:145
bool isComplete() const
Definition: serialization.h:155
Serializer(const uint8_t *buffer, size_t size, size_t offset=0)
Definition: serialization.h:148
bool isOk() const
Definition: serialization.h:154
size_t length() const
Definition: serialization.h:151
RemainingCount remaining() const
Definition: serialization.h:152
Serializer(uint8_t *buffer, size_t size, size_t offset=0)
Definition: serialization.h:147
bool operator!() const
Definition: serialization.h:158
size_t capacity() const
Definition: serialization.h:150
void mip_serializer_init_extraction(mip_serializer *serializer, const uint8_t *buffer, size_t buffer_size)
void mip_serializer_init_from_field(mip_serializer *serializer, const mip_field *field)
void extract_bool(mip_serializer *serializer, bool *value)
void extract_s32(mip_serializer *serializer, int32_t *value)
void mip_serializer_init_insertion(mip_serializer *serializer, uint8_t *buffer, size_t buffer_size)
void insert_s64(mip_serializer *serializer, int64_t value)
void insert_u32(mip_serializer *serializer, uint32_t value)
void extract_char(mip_serializer *serializer, char *value)
void extract_count(mip_serializer *serializer, uint8_t *count_out, uint8_t max_count)
size_t mip_serializer_capacity(const mip_serializer *serializer)
size_t mip_serializer_length(const mip_serializer *serializer)
void extract_s16(mip_serializer *serializer, int16_t *value)
void extract_s8(mip_serializer *serializer, int8_t *value)
void insert_s32(mip_serializer *serializer, int32_t value)
void insert_u8(mip_serializer *serializer, uint8_t value)
void insert_u16(mip_serializer *serializer, uint16_t value)
void insert_bool(mip_serializer *serializer, bool value)
void extract_u8(mip_serializer *serializer, uint8_t *value)
void insert_char(mip_serializer *serializer, char value)
void extract_u64(mip_serializer *serializer, uint64_t *value)
void extract_s64(mip_serializer *serializer, int64_t *value)
void extract_u16(mip_serializer *serializer, uint16_t *value)
void insert_double(mip_serializer *serializer, double value)
struct mip::C::mip_serializer mip_serializer
Structure used for serialization.
bool mip_serializer_is_complete(const mip_serializer *serializer)
void extract_double(mip_serializer *serializer, double *value)
void insert_s16(mip_serializer *serializer, int16_t value)
void insert_u64(mip_serializer *serializer, uint64_t value)
void extract_float(mip_serializer *serializer, float *value)
bool mip_serializer_is_ok(const mip_serializer *serializer)
void insert_s8(mip_serializer *serializer, int8_t value)
void extract_u32(mip_serializer *serializer, uint32_t *value)
void insert_float(mip_serializer *serializer, float value)
remaining_count mip_serializer_remaining(const mip_serializer *serializer)
int_least16_t remaining_count
Definition: mip_types.h:16
A collection of C++ classes and functions covering the full mip api.
Definition: commands_3dm.c:11
void extract(Serializer &serializer, Bitfield< Derived > &bitfield)
Definition: descriptors.h:98
void insert(Serializer &serializer, const Bitfield< Derived > &bitfield)
Definition: descriptors.h:97
C::remaining_count RemainingCount
Definition: mip_types.h:42
A structure representing a MIP field.
Definition: mip_field.h:53
Structure used for serialization.
Definition: serialization.h:44