SWC-DB  v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
Report.h
Go to the documentation of this file.
1 /*
2  * SWC-DB© Copyright since 2019 Alex Kashirin <kashirin.alex@gmail.com>
3  * License details at <https://github.com/kashirin-alex/swc-db/#license>
4  */
5 
6 #ifndef swcdb_db_protocol_rgr_params_Report_h
7 #define swcdb_db_protocol_rgr_params_Report_h
8 
9 
13 
14 
15 namespace SWC { namespace Comm { namespace Protocol {
16 namespace Rgr { namespace Params {
17 
18 namespace Report {
19 
20 
21 enum Function : uint8_t {
22  RESOURCES = 0x00,
23  CIDS = 0x01,
24  COLUMN_RIDS = 0x02,
25  COLUMN_RANGES = 0x03,
27 };
28 
29 
30 
31 class ReqColumn final : public Serializable {
32  public:
33 
35  ReqColumn(cid_t a_cid = 0) noexcept : cid(a_cid) { }
36 
37  //~ReqColumn() { }
38 
40 
41  private:
42 
43  size_t SWC_PURE_FUNC internal_encoded_length() const override;
44 
45  void internal_encode(uint8_t** bufp) const override;
46 
47  void internal_decode(const uint8_t** bufp, size_t* remainp) override;
48 
49 };
50 
51 
52 
53 class RspRes final : public Serializable {
54  public:
55 
57  RspRes(uint32_t a_mem=0, uint32_t a_cpu=0, size_t a_ranges=0) noexcept
58  : mem(a_mem), cpu(a_cpu), ranges(a_ranges) {
59  }
60 
61  //~RspRes() { }
62 
63  uint32_t mem;
64  uint32_t cpu;
65  size_t ranges;
66 
67  void display(std::ostream& out, const std::string& offset="") const;
68 
69  private:
70 
71  size_t SWC_PURE_FUNC internal_encoded_length() const override;
72 
73  void internal_encode(uint8_t** bufp) const override;
74 
75  void internal_decode(const uint8_t** bufp, size_t* remainp) override;
76 
77 };
78 
79 
80 
81 class RspCids final : public Serializable {
82  public:
83 
85  RspCids() noexcept: cids() { }
86 
88  ~RspCids() noexcept { }
89 
90  mutable cids_t cids;
91 
92  void display(std::ostream& out, const std::string& offset = "") const;
93 
94  private:
95 
96  size_t SWC_PURE_FUNC internal_encoded_length() const override;
97 
98  void internal_encode(uint8_t** bufp) const override;
99 
100  void internal_decode(const uint8_t** bufp, size_t* remainp) override;
101 
102 };
103 
104 
105 
106 class RspColumnRids final : public Serializable {
107  public:
108 
110  RspColumnRids() noexcept: rids() { }
111 
113  ~RspColumnRids() noexcept { }
114 
115  mutable rids_t rids;
116 
117  void display(std::ostream& out, const std::string& offset = "") const;
118 
119  private:
120 
121  size_t SWC_PURE_FUNC internal_encoded_length() const override;
122 
123  void internal_encode(uint8_t** bufp) const override;
124 
125  void internal_decode(const uint8_t** bufp, size_t* remainp) override;
126 
127 };
128 
129 
130 
131 class RspColumnsRanges final : public Serializable {
132  public:
133 
134  struct Range {
135 
137  Range(DB::Types::KeySeq seq) noexcept : rid(), interval(seq) { }
138 
139  static bool before(Range* r1, Range* r2);
140 
143 
144  ~Range() noexcept { }
145 
146  size_t SWC_PURE_FUNC encoded_length () const;
147 
148  void encode(uint8_t** bufp) const;
149 
150  void decode(const uint8_t** bufp, size_t* remainp);
151 
152  void display(std::ostream& out, bool pretty=true,
153  const std::string& offset = "") const;
154  };
155 
156  struct Column {
157 
158  static bool SWC_PURE_FUNC before(Column* c1, Column* c2);
159 
162  uint64_t mem_bytes;
164 
166  Column() noexcept: cid(), col_seq(), mem_bytes(), ranges() { }
167 
168  ~Column() noexcept;
169 
170  size_t SWC_PURE_FUNC encoded_length() const;
171 
172  void encode(uint8_t** bufp) const;
173 
174  void decode(const uint8_t** bufp, size_t* remainp);
175 
176  void display(std::ostream& out, bool pretty=true,
177  const std::string& offset = "") const;
178  };
179 
180 
182  explicit RspColumnsRanges() noexcept : rgrid(0), endpoints(), columns() { }
183 
185 
186  RspColumnsRanges& operator=(const RspColumnsRanges& other) = delete;
187 
188  ~RspColumnsRanges() noexcept;
189 
192  Core::Vector<Column*> columns;
193 
194  void display(std::ostream& out, bool pretty=true,
195  const std::string& offset = "") const;
196 
197  private:
198 
199  size_t SWC_PURE_FUNC internal_encoded_length() const override;
200 
201  void internal_encode(uint8_t** bufp) const override;
202 
203  void internal_decode(const uint8_t** bufp, size_t* remainp) override;
204 
205 };
206 
207 
208 }
209 }}}}}
210 
211 #ifdef SWC_IMPL_SOURCE
213 #endif
214 
215 #endif // swcdb_db_protocol_rgr_params_Report_h
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::Column
Definition: Report.h:156
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::rgrid
rgrid_t rgrid
Definition: Report.h:190
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::operator=
RspColumnsRanges & operator=(const RspColumnsRanges &other)=delete
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::Column::Column
SWC_CAN_INLINE Column() noexcept
Definition: Report.h:166
SWC::Comm::Protocol::Rgr::Params::Report::RspCids::internal_decode
void internal_decode(const uint8_t **bufp, size_t *remainp) override
Definition: Report.cc:83
SWC::Comm::Protocol::Rgr::Params::Report::ReqColumn::internal_encoded_length
size_t SWC_PURE_FUNC internal_encoded_length() const override
Definition: Report.cc:18
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::Range::Range
SWC_CAN_INLINE Range(DB::Types::KeySeq seq) noexcept
Definition: Report.h:137
SWC::Comm::Protocol::Rgr::Params::Report::ReqColumn::internal_encode
void internal_encode(uint8_t **bufp) const override
Definition: Report.cc:22
SWC::Comm::Protocol::Rgr::Params::Report::RspCids::internal_encoded_length
size_t SWC_PURE_FUNC internal_encoded_length() const override
Definition: Report.cc:70
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::Column::cid
cid_t cid
Definition: Report.h:160
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::Range::rid
rid_t rid
Definition: Report.h:141
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::RspColumnsRanges
SWC_CAN_INLINE RspColumnsRanges() noexcept
Definition: Report.h:182
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::Range::before
static bool before(Range *r1, Range *r2)
Definition: Report.cc:122
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::Range::interval
DB::Cells::Interval interval
Definition: Report.h:142
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::internal_encoded_length
size_t SWC_PURE_FUNC internal_encoded_length() const override
Definition: Report.cc:241
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::columns
Core::Vector< Column * > columns
Definition: Report.h:192
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::endpoints
EndPoints endpoints
Definition: Report.h:191
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnRids::display
void display(std::ostream &out, const std::string &offset="") const
Definition: Report.cc:92
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::Column::ranges
Core::Vector< Range * > ranges
Definition: Report.h:163
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::Range::decode
void decode(const uint8_t **bufp, size_t *remainp)
Definition: Report.cc:137
SWC::Comm::Protocol::Rgr::Params::Report::RspCids::~RspCids
SWC_CAN_INLINE ~RspCids() noexcept
Definition: Report.h:88
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnRids::internal_encoded_length
size_t SWC_PURE_FUNC internal_encoded_length() const override
Definition: Report.cc:100
SWC::Comm::Protocol::Rgr::Params::Report::RspCids::RspCids
SWC_CAN_INLINE RspCids() noexcept
Definition: Report.h:85
SWC::Comm::Protocol::Rgr::Params::Report::RspRes::internal_encoded_length
size_t SWC_PURE_FUNC internal_encoded_length() const override
Definition: Report.cc:41
SWC::Comm::Protocol::Rgr::Params::Report::ReqColumn::ReqColumn
SWC_CAN_INLINE ReqColumn(cid_t a_cid=0) noexcept
Definition: Report.h:35
SWC::Comm::Protocol::Rgr::Params::Report::RspRes::display
void display(std::ostream &out, const std::string &offset="") const
Definition: Report.cc:33
SWC::DB::Types::KeySeq
KeySeq
Definition: KeySeq.h:13
SWC::Comm::Protocol::Rgr::Params::Report::Function
Function
Definition: Report.h:21
SWC::Comm::Protocol::Rgr::Params::Report::CIDS
@ CIDS
Definition: Report.h:23
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::Column::before
static bool SWC_PURE_FUNC before(Column *c1, Column *c2)
Definition: Report.cc:158
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::Column::col_seq
DB::Types::KeySeq col_seq
Definition: Report.h:161
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::~RspColumnsRanges
~RspColumnsRanges() noexcept
Definition: Report.cc:222
SWC_CAN_INLINE
#define SWC_CAN_INLINE
Definition: Compat.h:102
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::Column::~Column
~Column() noexcept
Definition: Report.cc:163
SWC
The SWC-DB C++ namespace 'SWC'.
Definition: main.cc:12
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::Range
Definition: Report.h:134
SWC_PURE_FUNC
#define SWC_PURE_FUNC
Definition: Compat.h:108
SWC::Comm::Protocol::Rgr::Params::Report::ReqColumn::internal_decode
void internal_decode(const uint8_t **bufp, size_t *remainp) override
Definition: Report.cc:26
SWC::Comm::Protocol::Rgr::Params::Report::ReqColumn
Definition: Report.h:31
SWC::Comm::Protocol::Rgr::Params::Report::RspRes::ranges
size_t ranges
Definition: Report.h:65
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnRids::internal_decode
void internal_decode(const uint8_t **bufp, size_t *remainp) override
Definition: Report.cc:113
SWC::Comm::Serializable
Definition: Serializable.h:18
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::Range::encoded_length
size_t SWC_PURE_FUNC encoded_length() const
Definition: Report.cc:127
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::Column::decode
void decode(const uint8_t **bufp, size_t *remainp)
Definition: Report.cc:187
SWC::Comm::Protocol::Rgr::Params::Report::ReqColumn::cid
cid_t cid
Definition: Report.h:39
ClientConnQueue.h
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnRids::rids
rids_t rids
Definition: Report.h:115
SWC::rgrid_t
uint64_t rgrid_t
Definition: Identifiers.h:18
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::internal_encode
void internal_encode(uint8_t **bufp) const override
Definition: Report.cc:253
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::Column::mem_bytes
uint64_t mem_bytes
Definition: Report.h:162
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnRids
Definition: Report.h:106
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::Column::encoded_length
size_t SWC_PURE_FUNC encoded_length() const
Definition: Report.cc:169
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::Range::~Range
~Range() noexcept
Definition: Report.h:144
Serializable.h
SWC::cid_t
uint64_t cid_t
Definition: Identifiers.h:16
SWC::Comm::Protocol::Rgr::Params::Report::RspRes::internal_encode
void internal_encode(uint8_t **bufp) const override
Definition: Report.cc:47
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::internal_decode
void internal_decode(const uint8_t **bufp, size_t *remainp) override
Definition: Report.cc:264
SWC::Comm::Protocol::Rgr::Params::Report::COLUMNS_RANGES
@ COLUMNS_RANGES
Definition: Report.h:26
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges
Definition: Report.h:131
SWC::Core::Vector< cid_t, cid_t >
SWC::Comm::Protocol::Rgr::Params::Report::RspRes::RspRes
SWC_CAN_INLINE RspRes(uint32_t a_mem=0, uint32_t a_cpu=0, size_t a_ranges=0) noexcept
Definition: Report.h:57
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnRids::~RspColumnRids
SWC_CAN_INLINE ~RspColumnRids() noexcept
Definition: Report.h:113
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::Range::encode
void encode(uint8_t **bufp) const
Definition: Report.cc:132
SWC::Comm::Protocol::Rgr::Params::Report::RspCids::cids
cids_t cids
Definition: Report.h:90
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::Range::display
void display(std::ostream &out, bool pretty=true, const std::string &offset="") const
Definition: Report.cc:142
SWC::Comm::Protocol::Rgr::Params::Report::RspRes::mem
uint32_t mem
Definition: Report.h:63
Report.cc
SWC::Comm::Protocol::Rgr::Params::Report::RspCids::internal_encode
void internal_encode(uint8_t **bufp) const override
Definition: Report.cc:77
SWC::rid_t
uint64_t rid_t
Definition: Identifiers.h:17
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::Column::display
void display(std::ostream &out, bool pretty=true, const std::string &offset="") const
Definition: Report.cc:199
SWC::Comm::Protocol::Rgr::Params::Report::RspRes::internal_decode
void internal_decode(const uint8_t **bufp, size_t *remainp) override
Definition: Report.cc:53
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnRids::internal_encode
void internal_encode(uint8_t **bufp) const override
Definition: Report.cc:107
SWC::Comm::Protocol::Rgr::Params::Report::RESOURCES
@ RESOURCES
Definition: Report.h:22
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnRids::RspColumnRids
SWC_CAN_INLINE RspColumnRids() noexcept
Definition: Report.h:110
SWC::DB::Cells::Interval
Definition: Interval.h:17
SWC::Comm::Protocol::Rgr::Params::Report::RspRes
Definition: Report.h:53
SWC::Comm::Protocol::Rgr::Params::Report::COLUMN_RANGES
@ COLUMN_RANGES
Definition: Report.h:25
SWC::Comm::Protocol::Rgr::Params::Report::COLUMN_RIDS
@ COLUMN_RIDS
Definition: Report.h:24
SWC::Comm::Protocol::Rgr::Params::Report::RspCids::display
void display(std::ostream &out, const std::string &offset="") const
Definition: Report.cc:62
SWC::Comm::Protocol::Rgr::Params::Report::RspCids
Definition: Report.h:81
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::Column::encode
void encode(uint8_t **bufp) const
Definition: Report.cc:178
Interval.h
SWC::Comm::Protocol::Rgr::Params::Report::RspRes::cpu
uint32_t cpu
Definition: Report.h:64