YAMI4 Core Library 2.0.0
Messaging Solution for Distributed Systems
|
Common interface for serializable data source. More...
#include <serializable.h>
Public Member Functions | |
virtual result | get_serialize_buffer_size (std::size_t &size) const =0 |
Finds the total size of serialization buffer. More... | |
virtual result | serialize (char **buffers, const std::size_t *buffer_sizes, std::size_t num_of_buffers) const =0 |
Serializes current content into given buffer(s). More... | |
Common interface for serializable data source.
Serializable data source allows to fill the given set up buffers with binary data that corresponds to the actual data source content. The purpose of this interface is to allow uniform treatment of parameters objects with wrapped raw binary buffers.
|
pure virtual |
Finds the total size of serialization buffer.
Computes the total size of serialization buffer(s) for the current content of this object.
size | The computed size of buffer. |
ok
if operation was successfulnesting_too_deep
if the level of nesting in this object is deeper than the limit Implemented in yami::core::parameters, and yami::core::raw_buffer_data_source.
|
pure virtual |
Serializes current content into given buffer(s).
Serializes the current content of this object into the given buffer(s). The serialization buffer does not have to be contiguous and any number of buffer segments is allowed, provided that the size of each buffer segment is a multiple of 4 (32 bits).
The function scatters the serialized data into subsequent buffers as they become filled.
The buffers are provided as array of buffer pointers and their sizes.
buffers | Pointer to the array of buffer pointers (each of type char * ). |
buffer_sizes | Pointer to the array of buffer sizes. |
num_of_buffers | Number of buffers described by the array. |
ok
if operation was successfulnot_enough_space
if the buffers are not big enough for all the dataImplemented in yami::core::parameters, and yami::core::raw_buffer_data_source.