cpp-msgpack-light 0.3.0
A light library to serialize MessagePack.
Loading...
Searching...
No Matches
msgpack_light::serialization_buffer Class Reference

Class of buffers to serialize data. More...

#include <msgpack_light/serialization_buffer.h>

Collaboration diagram for msgpack_light::serialization_buffer:

Public Member Functions

Initialization and finalization.
 serialization_buffer (output_stream &stream)
 Constructor.
 serialization_buffer (const serialization_buffer &)=delete
 serialization_buffer (serialization_buffer &&)=delete
serialization_bufferoperator= (const serialization_buffer &)=delete
serialization_bufferoperator= (serialization_buffer &&)=delete
 ~serialization_buffer () noexcept
 Destructor.
void flush ()
 Flush the internal buffer in this instance.
Serialization of Nil in MessagePack.
void serialize_nil ()
 Serialize a nli value.
Serialization of Boolean in MessagePack.
void serialize_bool (bool value)
 Serialize a boolean value.
Serialization of Integer in MessagePack.

These functions implements serialization of integers in formats in MessagePack specification. To serialize integers with automatic selection of formats, use serialize() function.

void serialize_positive_fixint (std::uint8_t value)
 Serialize a value in positive fixint format.
void serialize_negative_fixint (std::int8_t value)
 Serialize a value in negative fixint format.
void serialize_uint8 (std::uint8_t value)
 Serialize a value in uint 8 format.
void serialize_uint16 (std::uint16_t value)
 Serialize a value in uint 16 format.
void serialize_uint32 (std::uint32_t value)
 Serialize a value in uint 32 format.
void serialize_uint64 (std::uint64_t value)
 Serialize a value in uint 64 format.
void serialize_int8 (std::int8_t value)
 Serialize a value in int 8 format.
void serialize_int16 (std::int16_t value)
 Serialize a value in int 16 format.
void serialize_int32 (std::int32_t value)
 Serialize a value in int 32 format.
void serialize_int64 (std::int64_t value)
 Serialize a value in int 64 format.
Serialization of Float in MessagePack.
void serialize_float32 (float value)
 Serialize a value in float 32 format.
void serialize_float64 (double value)
 Serialize a value in float 64 format.
Serialization of sizes in String in MessagePack.

To serialize sizes with automatic selection of formats, use serialize_str_size() function.

void serialize_fixstr_size (std::uint8_t size)
 Serialize a size of fixstr format.
void serialize_str8_size (std::uint8_t size)
 Serialize a size of str 8 format.
void serialize_str16_size (std::uint16_t size)
 Serialize a size of str 16 format.
void serialize_str32_size (std::uint32_t size)
 Serialize a size of str 32 format.
void serialize_str_size (std::size_t size)
 Serialize a size of a string.
Serialization of sizes in Binary in MessagePack.

To serialize sizes with automatic selection of formats, use serialize_bin_size() function.

void serialize_bin8_size (std::uint8_t size)
 Serialize a size of bin 8 format.
void serialize_bin16_size (std::uint16_t size)
 Serialize a size of bin 16 format.
void serialize_bin32_size (std::uint32_t size)
 Serialize a size of bin 32 format.
void serialize_bin_size (std::size_t size)
 Serialize a size of a binary.
Serialization of sizes in Array in MessagePack.

To serialize sizes with automatic selection of formats, use serialize_array_size() function.

void serialize_fixarray_size (std::uint8_t size)
 Serialize a size of fixarray format.
void serialize_array16_size (std::uint16_t size)
 Serialize a size of array 16 format.
void serialize_array32_size (std::uint32_t size)
 Serialize a size of array 32 format.
void serialize_array_size (std::size_t size)
 Serialize a size of an array.
Serialization of sizes in Map in MessagePack.

To serialize sizes with automatic selection of formats, use serialize_map_size() function.

void serialize_fixmap_size (std::uint8_t size)
 Serialize a size of fixmap format.
void serialize_map16_size (std::uint16_t size)
 Serialize a size of map 16 format.
void serialize_map32_size (std::uint32_t size)
 Serialize a size of map 32 format.
void serialize_map_size (std::size_t size)
 Serialize a size of a map.
Serialization of sizes and types in Extension in MessagePack.

To serialize sizes with automatic selection of formats, use serialize_ext_header() function.

void serialize_fixext1_header (std::int8_t ext_type)
 Serialize the size and type of an extension value in fixext 1 format.
void serialize_fixext2_header (std::int8_t ext_type)
 Serialize the size and type of an extension value in fixext 2 format.
void serialize_fixext4_header (std::int8_t ext_type)
 Serialize the size and type of an extension value in fixext 4 format.
void serialize_fixext8_header (std::int8_t ext_type)
 Serialize the size and type of an extension value in fixext 8 format.
void serialize_fixext16_header (std::int8_t ext_type)
 Serialize the size and type of an extension value in fixext 16 format.
void serialize_ext8_header (std::int8_t ext_type, std::uint8_t data_size)
 Serialize the size and type of an extension value in ext 8 format.
void serialize_ext16_header (std::int8_t ext_type, std::uint16_t data_size)
 Serialize the size and type of an extension value in ext 16 format.
void serialize_ext32_header (std::int8_t ext_type, std::uint32_t data_size)
 Serialize the size and type of an extension value in ext 32 format.
void serialize_ext_header (std::int8_t ext_type, std::size_t data_size)
 Serialize the size and type of an extension value.
Serialization of general types.
template<typename T>
void serialize (const T &data)
 Serialize data.
Functions to write data directly.
void write (const unsigned char *data, std::size_t size)
 Write data.
void put (unsigned char data)
 Write a byte of data.
template<typename... T>
void write_in_big_endian (T... values)
 Write values in big endian.

Private Attributes

details::serialization_buffer_impl buffer_
 Instance to perform internal processing.

Detailed Description

Class of buffers to serialize data.

Note
For serialization of types already supported by msgpack_light::type_support::serialization_traits template, use serialize() function.

Definition at line 41 of file serialization_buffer.h.

Constructor & Destructor Documentation

◆ serialization_buffer()

msgpack_light::serialization_buffer::serialization_buffer ( output_stream & stream)
inlineexplicit

Constructor.

Parameters
[out]streamStream to write output to.
Warning
This class hold the reference of the given stream.

Definition at line 55 of file serialization_buffer.h.

◆ ~serialization_buffer()

msgpack_light::serialization_buffer::~serialization_buffer ( )
inlinenoexcept

Destructor.

Note
This will call flush() function.

Definition at line 67 of file serialization_buffer.h.

Member Function Documentation

◆ flush()

void msgpack_light::serialization_buffer::flush ( )
inline

Flush the internal buffer in this instance.

Warning
Data may not be written to streams without call of this function or destructor.

Definition at line 75 of file serialization_buffer.h.

◆ put()

void msgpack_light::serialization_buffer::put ( unsigned char data)
inline

Write a byte of data.

Parameters
[in]dataData.

Definition at line 787 of file serialization_buffer.h.

◆ serialize()

template<typename T>
void msgpack_light::serialization_buffer::serialize ( const T & data)
inline

Serialize data.

Note
This function can be usable for types using msgpack_light::type_support::serialization_traits class.
Template Parameters
TType of data.
Parameters
[in]dataData.

Definition at line 758 of file serialization_buffer.h.

◆ serialize_array16_size()

void msgpack_light::serialization_buffer::serialize_array16_size ( std::uint16_t size)
inline

Serialize a size of array 16 format.

Parameters
[in]sizeSize.

Definition at line 454 of file serialization_buffer.h.

◆ serialize_array32_size()

void msgpack_light::serialization_buffer::serialize_array32_size ( std::uint32_t size)
inline

Serialize a size of array 32 format.

Parameters
[in]sizeSize.

Definition at line 464 of file serialization_buffer.h.

◆ serialize_array_size()

void msgpack_light::serialization_buffer::serialize_array_size ( std::size_t size)
inline

Serialize a size of an array.

Parameters
[in]sizeSize.

Definition at line 474 of file serialization_buffer.h.

◆ serialize_bin16_size()

void msgpack_light::serialization_buffer::serialize_bin16_size ( std::uint16_t size)
inline

Serialize a size of bin 16 format.

Parameters
[in]sizeSize.

Definition at line 382 of file serialization_buffer.h.

◆ serialize_bin32_size()

void msgpack_light::serialization_buffer::serialize_bin32_size ( std::uint32_t size)
inline

Serialize a size of bin 32 format.

Parameters
[in]sizeSize.

Definition at line 392 of file serialization_buffer.h.

◆ serialize_bin8_size()

void msgpack_light::serialization_buffer::serialize_bin8_size ( std::uint8_t size)
inline

Serialize a size of bin 8 format.

Parameters
[in]sizeSize.

Definition at line 372 of file serialization_buffer.h.

◆ serialize_bin_size()

void msgpack_light::serialization_buffer::serialize_bin_size ( std::size_t size)
inline

Serialize a size of a binary.

Parameters
[in]sizeSize.

Definition at line 402 of file serialization_buffer.h.

◆ serialize_bool()

void msgpack_light::serialization_buffer::serialize_bool ( bool value)
inline

Serialize a boolean value.

Parameters
[in]valueValue.

Definition at line 104 of file serialization_buffer.h.

◆ serialize_ext16_header()

void msgpack_light::serialization_buffer::serialize_ext16_header ( std::int8_t ext_type,
std::uint16_t data_size )
inline

Serialize the size and type of an extension value in ext 16 format.

Note
Serialize data of the value after call of this function.
Parameters
[in]ext_typeExtension type.
[in]data_sizeSize of the data.

Definition at line 664 of file serialization_buffer.h.

◆ serialize_ext32_header()

void msgpack_light::serialization_buffer::serialize_ext32_header ( std::int8_t ext_type,
std::uint32_t data_size )
inline

Serialize the size and type of an extension value in ext 32 format.

Note
Serialize data of the value after call of this function.
Parameters
[in]ext_typeExtension type.
[in]data_sizeSize of the data.

Definition at line 678 of file serialization_buffer.h.

◆ serialize_ext8_header()

void msgpack_light::serialization_buffer::serialize_ext8_header ( std::int8_t ext_type,
std::uint8_t data_size )
inline

Serialize the size and type of an extension value in ext 8 format.

Note
Serialize data of the value after call of this function.
Parameters
[in]ext_typeExtension type.
[in]data_sizeSize of the data.

Definition at line 650 of file serialization_buffer.h.

◆ serialize_ext_header()

void msgpack_light::serialization_buffer::serialize_ext_header ( std::int8_t ext_type,
std::size_t data_size )
inline

Serialize the size and type of an extension value.

Note
Serialize data of the value after call of this function.
Parameters
[in]ext_typeExtension type.
[in]data_sizeSize of the data.

Definition at line 691 of file serialization_buffer.h.

◆ serialize_fixarray_size()

void msgpack_light::serialization_buffer::serialize_fixarray_size ( std::uint8_t size)
inline

Serialize a size of fixarray format.

Warning
This function assumes that the size is in the range of 0 to 15.
Parameters
[in]sizeSize.

Definition at line 444 of file serialization_buffer.h.

◆ serialize_fixext16_header()

void msgpack_light::serialization_buffer::serialize_fixext16_header ( std::int8_t ext_type)
inline

Serialize the size and type of an extension value in fixext 16 format.

Note
Serialize data of the value after call of this function.
Parameters
[in]ext_typeExtension type.

Definition at line 637 of file serialization_buffer.h.

◆ serialize_fixext1_header()

void msgpack_light::serialization_buffer::serialize_fixext1_header ( std::int8_t ext_type)
inline

Serialize the size and type of an extension value in fixext 1 format.

Note
Serialize data of the value after call of this function.
Parameters
[in]ext_typeExtension type.

Definition at line 585 of file serialization_buffer.h.

◆ serialize_fixext2_header()

void msgpack_light::serialization_buffer::serialize_fixext2_header ( std::int8_t ext_type)
inline

Serialize the size and type of an extension value in fixext 2 format.

Note
Serialize data of the value after call of this function.
Parameters
[in]ext_typeExtension type.

Definition at line 598 of file serialization_buffer.h.

◆ serialize_fixext4_header()

void msgpack_light::serialization_buffer::serialize_fixext4_header ( std::int8_t ext_type)
inline

Serialize the size and type of an extension value in fixext 4 format.

Note
Serialize data of the value after call of this function.
Parameters
[in]ext_typeExtension type.

Definition at line 611 of file serialization_buffer.h.

◆ serialize_fixext8_header()

void msgpack_light::serialization_buffer::serialize_fixext8_header ( std::int8_t ext_type)
inline

Serialize the size and type of an extension value in fixext 8 format.

Note
Serialize data of the value after call of this function.
Parameters
[in]ext_typeExtension type.

Definition at line 624 of file serialization_buffer.h.

◆ serialize_fixmap_size()

void msgpack_light::serialization_buffer::serialize_fixmap_size ( std::uint8_t size)
inline

Serialize a size of fixmap format.

Warning
This function assumes that the size is in the range of 0 to 15.
Parameters
[in]sizeSize.

Definition at line 514 of file serialization_buffer.h.

◆ serialize_fixstr_size()

void msgpack_light::serialization_buffer::serialize_fixstr_size ( std::uint8_t size)
inline

Serialize a size of fixstr format.

Warning
This function assumes that the size is in the range of 0 to 0x1F.
Parameters
[in]sizeSize.

Definition at line 286 of file serialization_buffer.h.

◆ serialize_float32()

void msgpack_light::serialization_buffer::serialize_float32 ( float value)
inline

Serialize a value in float 32 format.

Parameters
[in]valueValue.

Definition at line 242 of file serialization_buffer.h.

◆ serialize_float64()

void msgpack_light::serialization_buffer::serialize_float64 ( double value)
inline

Serialize a value in float 64 format.

Parameters
[in]valueValue.

Definition at line 257 of file serialization_buffer.h.

◆ serialize_int16()

void msgpack_light::serialization_buffer::serialize_int16 ( std::int16_t value)
inline

Serialize a value in int 16 format.

Parameters
[in]valueValue.

Definition at line 205 of file serialization_buffer.h.

◆ serialize_int32()

void msgpack_light::serialization_buffer::serialize_int32 ( std::int32_t value)
inline

Serialize a value in int 32 format.

Parameters
[in]valueValue.

Definition at line 215 of file serialization_buffer.h.

◆ serialize_int64()

void msgpack_light::serialization_buffer::serialize_int64 ( std::int64_t value)
inline

Serialize a value in int 64 format.

Parameters
[in]valueValue.

Definition at line 225 of file serialization_buffer.h.

◆ serialize_int8()

void msgpack_light::serialization_buffer::serialize_int8 ( std::int8_t value)
inline

Serialize a value in int 8 format.

Parameters
[in]valueValue.

Definition at line 195 of file serialization_buffer.h.

◆ serialize_map16_size()

void msgpack_light::serialization_buffer::serialize_map16_size ( std::uint16_t size)
inline

Serialize a size of map 16 format.

Parameters
[in]sizeSize.

Definition at line 524 of file serialization_buffer.h.

◆ serialize_map32_size()

void msgpack_light::serialization_buffer::serialize_map32_size ( std::uint32_t size)
inline

Serialize a size of map 32 format.

Parameters
[in]sizeSize.

Definition at line 534 of file serialization_buffer.h.

◆ serialize_map_size()

void msgpack_light::serialization_buffer::serialize_map_size ( std::size_t size)
inline

Serialize a size of a map.

Parameters
[in]sizeSize.

Definition at line 544 of file serialization_buffer.h.

◆ serialize_negative_fixint()

void msgpack_light::serialization_buffer::serialize_negative_fixint ( std::int8_t value)
inline

Serialize a value in negative fixint format.

Warning
This function assumes that the value is in the range of -1 to 0xE0.
Parameters
[in]valueValue.

Definition at line 146 of file serialization_buffer.h.

◆ serialize_nil()

void msgpack_light::serialization_buffer::serialize_nil ( )
inline

Serialize a nli value.

Definition at line 87 of file serialization_buffer.h.

◆ serialize_positive_fixint()

void msgpack_light::serialization_buffer::serialize_positive_fixint ( std::uint8_t value)
inline

Serialize a value in positive fixint format.

Warning
This function assumes that the value is in the range of 0 to 0x7F.
Parameters
[in]valueValue.

Definition at line 134 of file serialization_buffer.h.

◆ serialize_str16_size()

void msgpack_light::serialization_buffer::serialize_str16_size ( std::uint16_t size)
inline

Serialize a size of str 16 format.

Parameters
[in]sizeSize.

Definition at line 306 of file serialization_buffer.h.

◆ serialize_str32_size()

void msgpack_light::serialization_buffer::serialize_str32_size ( std::uint32_t size)
inline

Serialize a size of str 32 format.

Parameters
[in]sizeSize.

Definition at line 316 of file serialization_buffer.h.

◆ serialize_str8_size()

void msgpack_light::serialization_buffer::serialize_str8_size ( std::uint8_t size)
inline

Serialize a size of str 8 format.

Parameters
[in]sizeSize.

Definition at line 296 of file serialization_buffer.h.

◆ serialize_str_size()

void msgpack_light::serialization_buffer::serialize_str_size ( std::size_t size)
inline

Serialize a size of a string.

Parameters
[in]sizeSize.

Definition at line 326 of file serialization_buffer.h.

◆ serialize_uint16()

void msgpack_light::serialization_buffer::serialize_uint16 ( std::uint16_t value)
inline

Serialize a value in uint 16 format.

Parameters
[in]valueValue.

Definition at line 165 of file serialization_buffer.h.

◆ serialize_uint32()

void msgpack_light::serialization_buffer::serialize_uint32 ( std::uint32_t value)
inline

Serialize a value in uint 32 format.

Parameters
[in]valueValue.

Definition at line 175 of file serialization_buffer.h.

◆ serialize_uint64()

void msgpack_light::serialization_buffer::serialize_uint64 ( std::uint64_t value)
inline

Serialize a value in uint 64 format.

Parameters
[in]valueValue.

Definition at line 185 of file serialization_buffer.h.

◆ serialize_uint8()

void msgpack_light::serialization_buffer::serialize_uint8 ( std::uint8_t value)
inline

Serialize a value in uint 8 format.

Parameters
[in]valueValue.

Definition at line 155 of file serialization_buffer.h.

◆ write()

void msgpack_light::serialization_buffer::write ( const unsigned char * data,
std::size_t size )
inline

Write data.

Note
Use this function to write data of strings, binaries, arrays, maps, and extension types.
Parameters
[in]dataPointer to the data.
[in]sizeSize of the data.

Definition at line 778 of file serialization_buffer.h.

◆ write_in_big_endian()

template<typename... T>
void msgpack_light::serialization_buffer::write_in_big_endian ( T... values)
inline

Write values in big endian.

Template Parameters
TTypes of the values.
Parameters
[in]valuesValues.

Definition at line 796 of file serialization_buffer.h.

Member Data Documentation

◆ buffer_

details::serialization_buffer_impl msgpack_light::serialization_buffer::buffer_
private

Instance to perform internal processing.

Definition at line 804 of file serialization_buffer.h.


The documentation for this class was generated from the following file: