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

Class to implement internal implementation of serialization_buffer class using buffers. More...

#include <msgpack_light/details/buffered_serialization_buffer_impl.h>

Collaboration diagram for msgpack_light::details::buffered_serialization_buffer_impl:

Public Member Functions

 buffered_serialization_buffer_impl (buffered_serialization_buffer_impl &&)=delete
 buffered_serialization_buffer_impl (const buffered_serialization_buffer_impl &)=delete
 buffered_serialization_buffer_impl (output_stream &stream)
 Constructor.
 ~buffered_serialization_buffer_impl () noexcept
 Destructor.
void flush ()
 Flush the internal buffer in this instance.
buffered_serialization_buffer_imploperator= (buffered_serialization_buffer_impl &&)=delete
buffered_serialization_buffer_imploperator= (const buffered_serialization_buffer_impl &)=delete
void put (unsigned char data)
 Write a byte of data.
void write (const unsigned char *data, std::size_t size)
 Write data.
template<typename... T>
void write_in_big_endian (T... values)
 Write values in big endian.

Private Member Functions

template<std::size_t N>
details::mutable_static_binary_view< N > prepare_buffer ()
 Prepare a buffer.
template<std::size_t N>
void set_buffer_written () noexcept
 Set the buffer returned by prepare_buffer function to be written.

Private Attributes

std::array< unsigned char, buffer_sizebuffer_ {}
 Internal buffer.
std::size_t current_position_in_buffer_ {0U}
 Current position in the internal buffer.
output_streamstream_
 Stream to write output to.

Static Private Attributes

static constexpr std::size_t buffer_size
 Size of the internal buffer.

Detailed Description

Class to implement internal implementation of serialization_buffer class using buffers.

Definition at line 38 of file buffered_serialization_buffer_impl.h.

Constructor & Destructor Documentation

◆ buffered_serialization_buffer_impl()

msgpack_light::details::buffered_serialization_buffer_impl::buffered_serialization_buffer_impl ( 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 47 of file buffered_serialization_buffer_impl.h.

◆ ~buffered_serialization_buffer_impl()

msgpack_light::details::buffered_serialization_buffer_impl::~buffered_serialization_buffer_impl ( )
inlinenoexcept

Destructor.

Definition at line 62 of file buffered_serialization_buffer_impl.h.

Member Function Documentation

◆ flush()

void msgpack_light::details::buffered_serialization_buffer_impl::flush ( )
inline

Flush the internal buffer in this instance.

Definition at line 67 of file buffered_serialization_buffer_impl.h.

◆ prepare_buffer()

template<std::size_t N>
details::mutable_static_binary_view< N > msgpack_light::details::buffered_serialization_buffer_impl::prepare_buffer ( )
inlinenodiscardprivate

Prepare a buffer.

Template Parameters
NNumber of bytes.
Returns
Buffer.

Definition at line 129 of file buffered_serialization_buffer_impl.h.

◆ put()

void msgpack_light::details::buffered_serialization_buffer_impl::put ( unsigned char data)
inline

Write a byte of data.

Parameters
[in]dataData.

Definition at line 100 of file buffered_serialization_buffer_impl.h.

◆ set_buffer_written()

template<std::size_t N>
void msgpack_light::details::buffered_serialization_buffer_impl::set_buffer_written ( )
inlineprivatenoexcept

Set the buffer returned by prepare_buffer function to be written.

Template Parameters
NNumber of bytes.

Definition at line 146 of file buffered_serialization_buffer_impl.h.

◆ write()

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

Write data.

Parameters
[in]dataPointer to the data.
[in]sizeSize of the data.

Definition at line 78 of file buffered_serialization_buffer_impl.h.

◆ write_in_big_endian()

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

Write values in big endian.

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

Definition at line 115 of file buffered_serialization_buffer_impl.h.

Member Data Documentation

◆ buffer_

std::array<unsigned char, buffer_size> msgpack_light::details::buffered_serialization_buffer_impl::buffer_ {}
private

Internal buffer.

Definition at line 158 of file buffered_serialization_buffer_impl.h.

◆ buffer_size

std::size_t msgpack_light::details::buffered_serialization_buffer_impl::buffer_size
staticconstexprprivate
Initial value:
=
constexpr std::size_t static_memory_buffer_size
Size of buffers on memory defined using static arrays.

Size of the internal buffer.

Definition at line 154 of file buffered_serialization_buffer_impl.h.

◆ current_position_in_buffer_

std::size_t msgpack_light::details::buffered_serialization_buffer_impl::current_position_in_buffer_ {0U}
private

Current position in the internal buffer.

Definition at line 161 of file buffered_serialization_buffer_impl.h.

◆ stream_

output_stream& msgpack_light::details::buffered_serialization_buffer_impl::stream_
private

Stream to write output to.

Definition at line 151 of file buffered_serialization_buffer_impl.h.


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