|
| 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) |
| |
| | SerializerBase (const uint8_t *ptr, size_t size) |
| |
| | SerializerBase (microstrain::ConstU8ArrayView buffer) |
| |
| | SerializerBase ()=default |
| |
| | SerializerBase (uint8_t *ptr, size_t capacity) |
| |
| | SerializerBase (const uint8_t *ptr, size_t size) |
| |
| | SerializerBase (microstrain::ConstU8ArrayView buffer) |
| |
| 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 >
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. |