SRS-control
0.1.4
Loading...
Searching...
No Matches
SerializableBuffer.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include <algorithm>
4
#include <boost/asio/buffer.hpp>
5
#include <
srs/utils/CommonAlias.hpp
>
6
#include <zpp_bits.h>
7
8
namespace
srs::process
9
{
10
class
SerializableMsgBuffer
11
{
12
public
:
13
SerializableMsgBuffer
() =
default
;
14
explicit
SerializableMsgBuffer
(std::span<BufferElementType> read_data)
15
{
16
data_
.reserve(read_data.size());
17
std::ranges::copy(read_data, std::back_inserter(
data_
));
18
}
19
20
auto
serialize
(
auto
&&... structs)
21
{
22
auto
serialize_to = zpp::bits::out{
data_
, zpp::bits::endian::network{}, zpp::bits::no_size{} };
23
auto
size =
data_
.size();
24
serialize_to.position() +=
sizeof
(
BufferElementType
) * size;
25
26
// cista::buf<WriteBufferType&> serializer{ buffer };
27
// serialize_multi(serialize_to, std::forward<decltype(structs)>(structs)...);
28
serialize_to(std::forward<
decltype
(structs)>(structs)...).or_throw();
29
return
asio::buffer(
data_
);
30
}
31
32
[[nodiscard]]
auto
data
() const -> std::string_view {
return
std::string_view{
data_
.data(),
data_
.size() }; }
33
34
void
clear
() {
data_
.clear(); }
35
36
private
:
37
BinaryData
data_
;
38
};
39
}
// namespace srs
CommonAlias.hpp
srs::process::SerializableMsgBuffer::SerializableMsgBuffer
SerializableMsgBuffer(std::span< BufferElementType > read_data)
Definition
SerializableBuffer.hpp:14
srs::process::SerializableMsgBuffer::data_
BinaryData data_
Definition
SerializableBuffer.hpp:37
srs::process::SerializableMsgBuffer::serialize
auto serialize(auto &&... structs)
Definition
SerializableBuffer.hpp:20
srs::process::SerializableMsgBuffer::clear
void clear()
Definition
SerializableBuffer.hpp:34
srs::process::SerializableMsgBuffer::SerializableMsgBuffer
SerializableMsgBuffer()=default
srs::process::SerializableMsgBuffer::data
auto data() const -> std::string_view
Definition
SerializableBuffer.hpp:32
srs::BufferElementType
char BufferElementType
Definition
CommonAlias.hpp:16
srs::BinaryData
std::vector< BufferElementType > BinaryData
Definition
CommonAlias.hpp:17
srs::process
Definition
DataConverterBase.hpp:10
backend
srs
converters
SerializableBuffer.hpp
Impressum
Datenschutzerklärung
Generated by
1.13.2