Flex  0.17.9
app_utils.h
Go to the documentation of this file.
1 
16 #ifndef GRAPHSCOPE_APP_UTILS_H_
17 #define GRAPHSCOPE_APP_UTILS_H_
18 
19 #include <string>
20 #include <string_view>
21 #include <vector>
22 
23 namespace gs {
24 
25 class Encoder {
26  public:
27  Encoder(std::vector<char>& buf) : buf_(buf) {}
28 
29  void put_long(int64_t v);
30 
31  size_t skip_long();
32 
33  void put_long_at(size_t pos, int64_t v);
34 
35  void put_int(int v);
36 
37  size_t skip_int();
38 
39  void put_int_at(size_t pos, int v);
40 
41  void put_byte(uint8_t v);
42 
43  void put_bytes(const char* data, size_t size);
44 
45  size_t skip_byte();
46 
47  void put_byte_at(size_t pos, uint8_t v);
48 
49  void put_string(const std::string& v);
50 
51  void put_string_view(const std::string_view& v);
52 
53  void put_var_len_string(const std::string& v);
54 
55  void put_var_len_string_view(const std::string_view& v);
56 
57  void put_small_string(const std::string& v);
58 
59  void put_small_string_view(const std::string_view& v);
60 
61  void put_double(double v);
62 
63  void clear();
64 
65  private:
66  std::vector<char>& buf_;
67 };
68 
69 class Decoder {
70  public:
71  Decoder(const char* ptr, size_t size) : data_(ptr), end_(ptr + size) {}
72  ~Decoder() {}
73 
74  int get_int();
75 
76  int64_t get_long();
77 
78  std::string_view get_string();
79 
80  std::string_view get_bytes();
81 
82  std::string_view get_small_string();
83 
84  uint8_t get_byte();
85 
86  double get_double();
87 
88  const char* data() const;
89 
90  size_t size() const;
91 
92  bool empty() const;
93 
94  void reset(const char* ptr, size_t size);
95 
96  private:
97  const char* data_;
98  const char* end_;
99 };
100 
101 } // namespace gs
102 
103 #endif // GRAPHSCOPE_APP_UTILS_H_
gs::Encoder::put_small_string_view
void put_small_string_view(const std::string_view &v)
Definition: app_utils.cc:94
gs::Encoder::clear
void clear()
Definition: app_utils.cc:108
gs::Encoder::put_double
void put_double(double v)
Definition: app_utils.cc:102
gs::Decoder::get_small_string
std::string_view get_small_string()
Definition: app_utils.cc:154
gs::Decoder::data_
const char * data_
Definition: app_utils.h:97
gs::Encoder::put_string
void put_string(const std::string &v)
Definition: app_utils.cc:70
gs::Encoder::put_small_string
void put_small_string(const std::string &v)
Definition: app_utils.cc:86
gs::Encoder::put_long_at
void put_long_at(size_t pos, int64_t v)
Definition: app_utils.cc:34
gs::Encoder::put_string_view
void put_string_view(const std::string_view &v)
Definition: app_utils.cc:78
gs::Decoder::get_long
int64_t get_long()
Definition: app_utils.cc:131
gs::Decoder::end_
const char * end_
Definition: app_utils.h:98
gs::Encoder::skip_byte
size_t skip_byte()
Definition: app_utils.cc:60
gs
Definition: adj_list.h:23
gs::Decoder::get_int
int get_int()
Definition: app_utils.cc:125
gs::Decoder::empty
bool empty() const
Definition: app_utils.cc:167
gs::Decoder::~Decoder
~Decoder()
Definition: app_utils.h:72
gs::Encoder::put_long
void put_long(int64_t v)
Definition: app_utils.cc:22
gs::Decoder::get_bytes
std::string_view get_bytes()
Definition: app_utils.cc:142
gs::Encoder
Definition: app_utils.h:25
gs::Decoder::get_string
std::string_view get_string()
Definition: app_utils.cc:147
gs::Encoder::put_byte_at
void put_byte_at(size_t pos, uint8_t v)
Definition: app_utils.cc:66
gs::Decoder::Decoder
Decoder(const char *ptr, size_t size)
Definition: app_utils.h:71
gs::Decoder
Definition: app_utils.h:69
gs::Encoder::skip_long
size_t skip_long()
Definition: app_utils.cc:28
gs::Encoder::put_int
void put_int(int v)
Definition: app_utils.cc:38
gs::Encoder::buf_
std::vector< char > & buf_
Definition: app_utils.h:66
gs::Encoder::skip_int
size_t skip_int()
Definition: app_utils.cc:44
gs::Encoder::put_var_len_string
void put_var_len_string(const std::string &v)
gs::Decoder::size
size_t size() const
Definition: app_utils.cc:165
gs::Decoder::reset
void reset(const char *ptr, size_t size)
Definition: app_utils.cc:169
gs::Decoder::data
const char * data() const
Definition: app_utils.cc:163
gs::Decoder::get_double
double get_double()
Definition: app_utils.cc:137
gs::Encoder::put_var_len_string_view
void put_var_len_string_view(const std::string_view &v)
gs::Encoder::put_bytes
void put_bytes(const char *data, size_t size)
Definition: app_utils.cc:56
gs::Encoder::Encoder
Encoder(std::vector< char > &buf)
Definition: app_utils.h:27
gs::Encoder::put_byte
void put_byte(uint8_t v)
Definition: app_utils.cc:54
gs::Encoder::put_int_at
void put_int_at(size_t pos, int v)
Definition: app_utils.cc:50
gs::Decoder::get_byte
uint8_t get_byte()
Definition: app_utils.cc:161