|
template<typename... Ts> |
bool | insert (const Ts &... values) |
| Serializes one or more values. More...
|
|
template<typename... Ts> |
bool | extract (Ts &... values) |
| Deserializes one or more values. More...
|
|
template<class T , class S > |
bool | extract_count (T &count, S max_count) |
| Deserializes an integer with maximum permissible value. More...
|
|
template<class T , class S > |
bool | extract_count (T *count, S max_count) |
|
| SerializerBase ()=default |
|
| SerializerBase (uint8_t *ptr, size_t capacity, size_t offset=0) |
|
| SerializerBase (const uint8_t *ptr, size_t size, size_t offset=0) |
|
| SerializerBase (microstrain::Span< const uint8_t > buffer, size_t offset=0) |
|
| SerializerBase ()=default |
|
| SerializerBase (uint8_t *ptr, size_t capacity, size_t offset=0) |
|
| SerializerBase (const uint8_t *ptr, size_t size, size_t offset=0) |
|
| SerializerBase (microstrain::Span< const uint8_t > buffer, size_t offset=0) |
|
uint8_t * | getPointer (size_t required_size) |
| Obtains a pointer to the current offset for reading/writing a value of the specified size. This function does NOT advance the offset value. Generally, you should use getPtrAndAdvance() instead. More...
|
|
uint8_t * | getPtrAndAdvance (size_t size) |
| Obtains a pointer to the current offset for reading/writing a value of specified size, and post-increments the offset by that size. Use this function just like pointer(). More...
|
|
void | invalidate () |
| Marks the buffer as invalid, i.e. overrun/error state. All further accesses via pointer(), getPtrAndAdvance(), etc. will fail. (basePointer() and capacity() remain valid) More...
|
|
size_t | setOffset (size_t offset) |
| Sets a new offset and returns the old value. This can be used to save/restore the current offset. Calling setOffset() after an overrun with an in-range (i.e. non-overrun) value restores the non-overrun status. More...
|
|
template<serialization::Endian E>
class microstrain::Serializer< E >
Serializes or deserializes data to/from a byte buffer.
Create one of these to handle serialization or deserialization of one or more values to/from a buffer of bytes.
You can use this->insert
/extract
or directly call the insert
/extract
non- member functions taking a serializer reference.
The endianness is included as part of the Serializer's type so that it doesn't have to be repeatedly re-specified. It is not included as a runtime parameter for performance reasons (most of the time only a buffer of a known, specific endianness is required).
- Template Parameters
-
E | Endianness of the target buffer. |