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.cc
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 
7 
10 
11 
12 namespace SWC { namespace Comm { namespace Protocol {
13 namespace Rgr { namespace Params {
14 namespace Report {
15 
16 
17 
20 }
21 
22 void ReqColumn::internal_encode(uint8_t** bufp) const {
24 }
25 
26 void ReqColumn::internal_decode(const uint8_t** bufp, size_t* remainp) {
27  cid = Serialization::decode_vi64(bufp, remainp);
28 }
29 
30 
31 
32 
33 void RspRes::display(std::ostream& out, const std::string& offset) const {
34  out << offset
35  << "Ranger(mem="
36  << mem << "MB cpu="
37  << cpu << "Mhz ranges="
38  << ranges << ")" << std::endl;
39 }
40 
45 }
46 
47 void RspRes::internal_encode(uint8_t** bufp) const {
51 }
52 
53 void RspRes::internal_decode(const uint8_t** bufp, size_t* remainp) {
54  mem = Serialization::decode_vi32(bufp, remainp);
55  cpu = Serialization::decode_vi32(bufp, remainp);
56  ranges = Serialization::decode_vi64(bufp, remainp);
57 }
58 
59 
60 
61 
62 void RspCids::display(std::ostream& out, const std::string& offset) const {
63  std::sort(cids.begin(), cids.end());
64  out << offset << "cids=[";
65  for(auto& cid : cids)
66  out << cid << ',';
67  out << ']' << std::endl;
68 }
69 
72  for(auto& cid : cids)
74  return sz;
75 }
76 
77 void RspCids::internal_encode(uint8_t** bufp) const {
79  for(auto& cid : cids)
80  Serialization::encode_vi64(bufp, cid);
81 }
82 
83 void RspCids::internal_decode(const uint8_t** bufp, size_t* remainp) {
84  cids.resize(Serialization::decode_vi64(bufp, remainp));
85  for(auto& cid : cids)
86  cid = Serialization::decode_vi64(bufp, remainp);
87 }
88 
89 
90 
91 
92 void RspColumnRids::display(std::ostream& out, const std::string& offset) const {
93  std::sort(rids.begin(), rids.end());
94  out << offset << "rids=[";
95  for(auto& rid : rids)
96  out << rid << ',';
97  out << ']' << std::endl;
98 }
99 
102  for(auto& rid : rids)
104  return sz;
105 }
106 
107 void RspColumnRids::internal_encode(uint8_t** bufp) const {
109  for(auto& rid : rids)
110  Serialization::encode_vi64(bufp, rid);
111 }
112 
113 void RspColumnRids::internal_decode(const uint8_t** bufp, size_t* remainp) {
114  rids.resize(Serialization::decode_vi64(bufp, remainp));
115  for(auto& rid : rids)
116  rid = Serialization::decode_vi64(bufp, remainp);
117 }
118 
119 
120 
121 
124  return r2->interval.is_in_end(r1->interval.key_end);
125 }
126 
129  + interval.encoded_length();
130 }
131 
132 void RspColumnsRanges::Range::encode(uint8_t** bufp) const {
133  Serialization::encode_vi64(bufp, rid);
134  interval.encode(bufp);
135 }
136 
137 void RspColumnsRanges::Range::decode(const uint8_t** bufp, size_t* remainp) {
138  rid = Serialization::decode_vi64(bufp, remainp);
139  interval.decode(bufp, remainp, false);
140 }
141 
142 void RspColumnsRanges::Range::display(std::ostream& out, bool pretty,
143  const std::string& offset) const {
144  out << offset << "-------------------------------------" << std::endl;
145  out << offset << "rid(" << rid << "):" << std::endl;
146  out << offset << " begin";
147  interval.key_begin.display(out, pretty);
148  out << std::endl;
149  out << offset << " end";
150  interval.key_end.display(out, pretty);
151  out << std::endl;
152  out << offset << " " << interval.ts_earliest.value
153  << "<=TS<=" << interval.ts_latest.value ;
154  out << std::endl;
155 }
156 
157 
160  return c1->cid < c2->cid;
161 }
162 
164  for(auto r : ranges)
165  delete r;
166  ranges.clear();
167 }
168 
170  size_t sz = Serialization::encoded_length_vi64(cid) + 1
172  + Serialization::encoded_length_vi64(ranges.size());
173  for(auto r : ranges)
174  sz += r->encoded_length();
175  return sz;
176 }
177 
178 void RspColumnsRanges::Column::encode(uint8_t** bufp) const {
179  Serialization::encode_vi64(bufp, cid);
180  Serialization::encode_i8(bufp, uint8_t(col_seq));
181  Serialization::encode_vi64(bufp, mem_bytes);
182  Serialization::encode_vi64(bufp, ranges.size());
183  for(auto r : ranges)
184  r->encode(bufp);
185 }
186 
187 void RspColumnsRanges::Column::decode(const uint8_t** bufp, size_t* remainp) {
188  cid = Serialization::decode_vi64(bufp, remainp);
189  col_seq = DB::Types::KeySeq(Serialization::decode_i8(bufp, remainp));
190  mem_bytes = Serialization::decode_vi64(bufp, remainp);
191  for(int64_t n = Serialization::decode_vi64(bufp, remainp); n; --n) {
192  auto r = new Range(col_seq);
193  r->decode(bufp, remainp);
194  ranges.push_back(r);
195  }
196  std::sort(ranges.begin(), ranges.end(), Range::before);
197 }
198 
199 void RspColumnsRanges::Column::display(std::ostream& out, bool pretty,
200  const std::string& offset) const {
201  out << offset << "**************************************" << std::endl;
202  out << offset << "cid(" << cid << ") seq("
203  << DB::Types::to_string(col_seq) << ") in-memory("
204  << mem_bytes << " bytes) ranges("
205  << ranges.size() << ')';
206  if(!ranges.empty())
207  out << ':';
208  out << std::endl;
209  for(auto& r : ranges)
210  r->display(out, pretty, offset+" ");
211 }
212 
213 
214 
215 
217  const EndPoints& a_endpoints)
218  : rgrid(a_rgrid), endpoints(a_endpoints),
219  columns() {
220 }
221 
223  for(auto c : columns)
224  delete c;
225  columns.clear();
226 }
227 
228 void RspColumnsRanges::display(std::ostream& out, bool pretty,
229  const std::string& offset) const {
230  out << offset << "Ranger: rgrid("<< rgrid << ")"
231  << " endpoints(";
232  for(auto& endpoint : endpoints)
233  out << endpoint << ", ";
234  out << ")" << std::endl;
235 
236  out << offset << "Columns(" << columns.size() << "):" << std::endl;
237  for(auto& c : columns)
238  c->display(out, pretty, offset+" ");
239 }
240 
244  for(auto& endpoint : endpoints)
245  sz += Serialization::encoded_length(endpoint);
246 
248  for(auto c : columns)
249  sz += c->encoded_length();
250  return sz;
251 }
252 
253 void RspColumnsRanges::internal_encode(uint8_t** bufp) const {
256  for(auto& endpoint : endpoints)
257  Serialization::encode(bufp, endpoint);
258 
259  Serialization::encode_vi64(bufp, columns.size());
260  for(auto c : columns)
261  c->encode(bufp);
262 }
263 
264 void RspColumnsRanges::internal_decode(const uint8_t** bufp,
265  size_t* remainp) {
266  rgrid = Serialization::decode_vi64(bufp, remainp);
267 
268  size_t len = Serialization::decode_vi32(bufp, remainp);
269  endpoints.clear();
270  endpoints.resize(len);
271  for(size_t i=0;i<len;++i)
272  endpoints[i] = Serialization::decode(bufp, remainp);
273 
274  for(int64_t n = Serialization::decode_vi64(bufp, remainp); n ; --n) {
275  auto c = new Column();
276  c->decode(bufp, remainp);
277  columns.push_back(c);
278  }
279  std::sort(columns.begin(), columns.end(), Column::before);
280 }
281 
282 
283 
284 
285 
286 }
287 }}}}}
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::DB::Cells::Interval::key_end
DB::Cell::Key key_end
Definition: Interval.h:225
Schema.h
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::Core::Vector::resize
SWC_CAN_INLINE void resize(size_type sz, ArgsT &&... args)
Definition: Vector.h:308
SWC::Core::Vector::clear
SWC_CAN_INLINE void clear() noexcept(_NoExceptDestructor)
Definition: Vector.h:120
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::Serialization::encoded_length_vi32
constexpr SWC_CAN_INLINE uint8_t encoded_length_vi32(uint32_t val) noexcept
Definition: Serialization.h:234
SWC::DB::Types::to_string
const char *SWC_CONST_FUNC to_string(Column typ) noexcept
Definition: Column.cc:38
SWC::DB::Types::Column
Column
Definition: Column.h:18
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::Serialization::encode_i8
constexpr SWC_CAN_INLINE void encode_i8(uint8_t **bufp, uint8_t val) noexcept
Definition: Serialization.h:85
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::Serialization::encoded_length
SWC_CAN_INLINE uint8_t encoded_length(const Comm::EndPoint &endpoint) noexcept
Definition: Resolver.h:63
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::Range::decode
void decode(const uint8_t **bufp, size_t *remainp)
Definition: Report.cc:137
SWC::Serialization::encode
void encode(uint8_t **bufp, const Comm::EndPoint &endpoint)
Definition: Resolver.cc:22
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::DB::Cells::Interval::is_in_end
SWC_CAN_INLINE bool is_in_end(const DB::Cell::Key &key) const
Definition: Interval.h:186
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::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::RspColumnsRanges::Column::before
static bool SWC_PURE_FUNC before(Column *c1, Column *c2)
Definition: Report.cc:158
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::~RspColumnsRanges
~RspColumnsRanges() noexcept
Definition: Report.cc:222
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::Column::~Column
~Column() noexcept
Definition: Report.cc:163
SWC::Core::Vector::end
constexpr SWC_CAN_INLINE iterator end() noexcept
Definition: Vector.h:227
Report.h
SWC
The SWC-DB C++ namespace 'SWC'.
Definition: main.cc:12
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::Range
Definition: Report.h:134
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::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::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
SWC::Comm::Resolver::sort
void sort(const Networks &nets, const EndPoints &endpoints, EndPoints &sorted)
Definition: Resolver.cc:243
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::Serialization::encoded_length_vi64
constexpr SWC_CAN_INLINE uint8_t encoded_length_vi64(uint64_t val) noexcept
Definition: Serialization.h:272
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::encoded_length
size_t SWC_PURE_FUNC encoded_length() const
Definition: Report.cc:169
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::Core::Vector< EndPoint >
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::Serialization::decode
Comm::EndPoint decode(const uint8_t **bufp, size_t *remainp)
Definition: Resolver.cc:35
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
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::display
void display(std::ostream &out, bool pretty=true, const std::string &offset="") const
Definition: Report.cc:228
SWC::Serialization::decode_vi64
constexpr SWC_CAN_INLINE uint64_t decode_vi64(const uint8_t **bufp, size_t *remainp)
Definition: Serialization.h:302
SWC::Comm::Protocol::Rgr::Params::Report::RspCids::internal_encode
void internal_encode(uint8_t **bufp) const override
Definition: Report.cc:77
SWC::Serialization::encode_vi32
constexpr SWC_CAN_INLINE void encode_vi32(uint8_t **bufp, uint32_t val)
Definition: Serialization.h:243
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::Serialization::encode_vi64
constexpr SWC_CAN_INLINE void encode_vi64(uint8_t **bufp, uint64_t val)
Definition: Serialization.h:286
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::Serialization::decode_i8
constexpr SWC_CAN_INLINE uint8_t decode_i8(const uint8_t **bufp, size_t *remainp)
Definition: Serialization.h:91
SWC::Core::Vector::size
constexpr SWC_CAN_INLINE size_type size() const noexcept
Definition: Vector.h:189
SWC::Comm::Protocol::Rgr::Params::Report::RspCids::display
void display(std::ostream &out, const std::string &offset="") const
Definition: Report.cc:62
SWC::DB::Types::Range
Range
Definition: Range.h:14
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnsRanges::Column::encode
void encode(uint8_t **bufp) const
Definition: Report.cc:178
SWC::Comm::Protocol::Rgr::Params::Report::RspRes::cpu
uint32_t cpu
Definition: Report.h:64
SWC::Serialization::decode_vi32
constexpr SWC_CAN_INLINE uint32_t decode_vi32(const uint8_t **bufp, size_t *remainp)
Definition: Serialization.h:254
SWC::Core::Vector::begin
constexpr SWC_CAN_INLINE iterator begin() noexcept
Definition: Vector.h:211