libdballe 9.6
core/values.h
1#ifndef DBALLE_CORE_VALUES_H
2#define DBALLE_CORE_VALUES_H
3
4#include <dballe/fwd.h>
5#include <wreport/var.h>
6#include <vector>
7
8namespace dballe {
9namespace core {
10namespace value {
11
12struct Encoder
13{
14 std::vector<uint8_t> buf;
15
16 Encoder();
17 void append_uint16(uint16_t val);
18 void append_uint32(uint32_t val);
19 void append_cstring(const char* val);
20 void append(const wreport::Var& var);
21 void append_attributes(const wreport::Var& var);
22};
23
24struct Decoder
25{
26 const uint8_t* buf;
27 unsigned size;
28
29 Decoder(const std::vector<uint8_t>& buf);
30 uint16_t decode_uint16();
31 uint32_t decode_uint32();
32 const char* decode_cstring();
33 std::unique_ptr<wreport::Var> decode_var();
34
38 static void decode_attrs(const std::vector<uint8_t>& buf, wreport::Var& var);
39};
40
41}
42}
43}
44
45#endif
Definition: core/values.h:25
static void decode_attrs(const std::vector< uint8_t > &buf, wreport::Var &var)
Decode the attributes of var from a buffer.
Definition: core/values.h:13