YAMI4 Core Library 2.0.0
Messaging Solution for Distributed Systems
Loading...
Searching...
No Matches
raw_buffer_data_source.h
1// Copyright Maciej Sobczak 2008-2022.
2// This file is part of YAMI4.
3// See the package-level LICENSE.txt file.
4
5#ifndef YAMICORE_RAW_BUFFER_DATA_SOURCE_H_INCLUDED
6#define YAMICORE_RAW_BUFFER_DATA_SOURCE_H_INCLUDED
7
8#include "core.h"
9#include "dll.h"
10#include "serializable.h"
11
12namespace yami
13{
14
15namespace core
16{
17
26{
27public:
28
44 raw_buffer_data_source(const char * * buffers,
45 const std::size_t * buffer_sizes,
46 std::size_t num_of_buffers);
47
53 raw_buffer_data_source(const char * buffer, std::size_t buffer_size);
54
64 virtual result get_serialize_buffer_size(std::size_t & size) const;
65
86 virtual result serialize(char * * target_buffers,
87 const std::size_t * target_buffer_sizes,
88 std::size_t num_of_target_buffers) const;
89
90private:
91
93 void operator=(const raw_buffer_data_source &);
94
95 const char * * buffers_;
96 const std::size_t * buffer_sizes_;
97 std::size_t num_of_buffers_;
98
99 // helpers for single buffer case
100 const char * single_buffer[1];
101 std::size_t single_buffer_size[1];
102};
103
104} // namespace core
105
106} // namespace yami
107
108#endif // YAMICORE_RAW_BUFFER_DATA_SOURCE_H_INCLUDED
Serializable wrapper for the raw binary data.
Definition: raw_buffer_data_source.h:26
raw_buffer_data_source(const char **buffers, const std::size_t *buffer_sizes, std::size_t num_of_buffers)
Constructor.
virtual result serialize(char **target_buffers, const std::size_t *target_buffer_sizes, std::size_t num_of_target_buffers) const
Serializes current content into given buffer(s).
virtual result get_serialize_buffer_size(std::size_t &size) const
Finds the total size of serialization buffer.
raw_buffer_data_source(const char *buffer, std::size_t buffer_size)
Constructor.
Common interface for serializable data source.
Definition: serializable.h:24
result
General type for reporting success and error states.
Definition: core.h:21
Namespace devoted for everything related to YAMI4.
Definition: agent.h:14