libdballe  9.11
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 
8 namespace dballe {
9 namespace core {
10 namespace value {
11 
12 struct 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 
24 struct 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: cmdline.h:18
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:12
Definition: core/values.h:24