52 #include "../../general/util.h"
53 #include "../../storage/stream.h"
54 #include "../../storage/stream_string.h"
55 #include "../../storage/stream_vector.h"
56 #include "../../storage/stream_tuple.h"
67 std::vector<char> data_;
69 message() : id_(), id_size_(0u), data_() {}
71 template<
typename... types>
79 stream <<
id << std::forward_as_tuple(
data...);
91 bool has_id()
const {
return !id_.empty(); }
94 const char*
data()
const {
return data_.data() + id_size_; }
95 std::size_t
size()
const {
return data_.size() - id_size_; }
97 std::vector<char>
data;
u u m
Definition: dim.h:281
istream & operator>>(istream &stream, smalluint &sml)
Definition: comm_tcp.h:103
ostream & operator<<(ostream &stream, const smalluint &sml)
Definition: comm_tcp.h:127
oitr_stream< OutputIterator > make_ostream(OutputIterator cur)
Definition: stream.h:142
std::size_t streamed_size()
Definition: stream.h:161
iitr_stream< ConstInputIterator > make_istream(ConstInputIterator begin)
Definition: stream.h:118
const id_type & id() const
Definition: message.h:93
static message make(std::vector< char > data)
Definition: message.h:82
friend ostream & operator<<(ostream &, const message &)
Definition: message.h:108
std::size_t size() const
Definition: message.h:95
bool has_id() const
Definition: message.h:91
const char * data() const
Definition: message.h:94
std::vector< char > detach()
Definition: message.h:96
static message make(const id_type &id, types &&... data)
Definition: message.h:72
message()
Definition: message.h:69
std::string id_type
Definition: message.h:63