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_small_string(const std::string& v);
54 
55  void put_small_string_view(const std::string_view& v);
56 
57  void put_double(double v);
58 
59  void clear();
60 
61  private:
62  std::vector<char>& buf_;
63 };
64 
65 class Decoder {
66  public:
67  Decoder(const char* ptr, size_t size) : data_(ptr), end_(ptr + size) {}
68  ~Decoder() {}
69 
70  int get_int();
71 
72  int64_t get_long();
73 
74  std::string_view get_string();
75 
76  std::string_view get_bytes();
77 
78  std::string_view get_small_string();
79 
80  uint8_t get_byte();
81 
82  double get_double();
83 
84  const char* data() const;
85 
86  size_t size() const;
87 
88  bool empty() const;
89 
90  void reset(const char* ptr, size_t size);
91 
92  private:
93  const char* data_;
94  const char* end_;
95 };
96 
97 } // namespace gs
98 
99 #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:93
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:94
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:68
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:67
gs::Decoder
Definition: app_utils.h:65
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:62
gs::Encoder::skip_int
size_t skip_int()
Definition: app_utils.cc:44
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_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