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 
9 
10 
11 
12 namespace SWC { namespace Comm { namespace Protocol {
13 namespace Mngr { namespace Params {
14 namespace Report {
15 
16 
17 
20 }
21 
22 void ReqColumnStatus::internal_encode(uint8_t** bufp) const {
24 }
25 
26 void ReqColumnStatus::internal_decode(const uint8_t** bufp, size_t* remainp) {
27  cid = Serialization::decode_vi64(bufp, remainp);
28 }
29 
30 
31 
32 
33 
35  return 1
38 }
39 
40 void RspColumnStatus::RangeStatus::encode(uint8_t** bufp) const {
42  Serialization::encode_vi64(bufp, rid);
43  Serialization::encode_vi64(bufp, rgr_id);
44 }
45 
46 void RspColumnStatus::RangeStatus::decode(const uint8_t** bufp,
47  size_t* remainp) {
49  rid = Serialization::decode_vi64(bufp, remainp);
50  rgr_id = Serialization::decode_vi64(bufp, remainp);
51 }
52 
54  const std::string& offset) const {
55  out << offset << "state=" << DB::Types::to_string(state)
56  << " rid=" << rid
57  << " rgr_id=" << rgr_id;
58 }
59 
60 
61 
62 
64  size_t sz = 1;
66  for(auto& r : ranges)
67  sz += r.encoded_length();
68  return sz;
69 }
70 
71 void RspColumnStatus::internal_encode(uint8_t** bufp) const {
73  Serialization::encode_vi64(bufp, ranges.size());
74  for(auto& r : ranges)
75  r.encode(bufp);
76 }
77 
78 void RspColumnStatus::internal_decode(const uint8_t** bufp, size_t* remainp) {
80  Serialization::decode_i8(bufp, remainp));
81  if(size_t sz = Serialization::decode_vi64(bufp, remainp)) {
82  ranges.reserve(sz);
83  for(size_t i = 0; i < sz; ++i)
84  ranges.emplace_back(bufp, remainp);
85  std::sort(
86  ranges.begin(), ranges.end(),
87  [](const RangeStatus& l, const RangeStatus& r) { return l.rid < r.rid; }
88  );
89  }
90 }
91 
92 void RspColumnStatus::display(std::ostream& out,
93  const std::string& offset) const {
94  out << offset << "column-status=" << DB::Types::to_string(state)
95  << " ranges=" << ranges.size();
96  for(auto& r : ranges)
97  r.display(out << '\n', offset + " ");
98 }
99 
100 
101 
102 
103 
105  return 1
108  + Serialization::encoded_length_vi64(interm_ranges)
109  + 3
110  + Serialization::encoded_length(endpoints);
111 }
112 
113 void RspRangersStatus::Ranger::encode(uint8_t** bufp) const {
115  Serialization::encode_vi64(bufp, rgr_id);
116  Serialization::encode_vi32(bufp, failures);
117  Serialization::encode_vi64(bufp, interm_ranges);
118  Serialization::encode_i16(bufp, load_scale);
119  Serialization::encode_i8(bufp, rebalance);
120  Serialization::encode(bufp, endpoints);
121 }
122 
123 void RspRangersStatus::Ranger::decode(const uint8_t** bufp, size_t* remainp) {
124  state = Serialization::decode_i8(bufp, remainp);
125  rgr_id = Serialization::decode_vi64(bufp, remainp);
126  failures = Serialization::decode_vi32(bufp, remainp);
127  interm_ranges = Serialization::decode_vi64(bufp, remainp);
128  load_scale = Serialization::decode_i16(bufp, remainp);
129  rebalance = Serialization::decode_i8(bufp, remainp);
130  Serialization::decode(bufp, remainp, endpoints);
131 }
132 
133 void RspRangersStatus::Ranger::display(std::ostream& out,
134  const std::string& offset) const {
135  out << offset << "state=" << DB::Types::MngrRangerState::to_string(state)
136  << " rgr_id=" << rgr_id
137  << " failures=" << failures
138  << " interm_ranges=" << interm_ranges
139  << " load_scale=" << load_scale
140  << " rebalance=" << int(rebalance);
141  Comm::print(out << ' ', endpoints);
142 }
143 
144 
145 
146 
148  size_t sz = Serialization::encoded_length_vi64(rangers.size());
149  for(auto& r : rangers)
150  sz += r.encoded_length();
151  return sz;
152 }
153 
154 void RspRangersStatus::internal_encode(uint8_t** bufp) const {
155  Serialization::encode_vi64(bufp, rangers.size());
156  for(auto& r : rangers)
157  r.encode(bufp);
158 }
159 
160 void RspRangersStatus::internal_decode(const uint8_t** bufp,
161  size_t* remainp) {
162  if(size_t sz = Serialization::decode_vi64(bufp, remainp)) {
163  rangers.reserve(sz);
164  for(size_t i = 0; i < sz; ++i)
165  rangers.emplace_back(bufp, remainp);
166  std::sort(
167  rangers.begin(), rangers.end(),
168  [](const Ranger& l, const Ranger& r) { return l.rgr_id < r.rgr_id; }
169  );
170  }
171 }
172 
173 void RspRangersStatus::display(std::ostream& out,
174  const std::string& offset) const {
175  out << offset << "rangers=" << rangers.size();
176  for(auto& r : rangers)
177  r.display(out << '\n', offset + " ");
178 }
179 
180 
181 
182 
183 
185  return Serialization::encoded_length_vi32(priority)
186  + 2
190  + Serialization::encoded_length(endpoints);
191 }
192 
193 void RspManagersStatus::Manager::encode(uint8_t** bufp) const {
194  Serialization::encode_vi32(bufp, priority);
195  Serialization::encode_i8(bufp, uint8_t(state));
196  Serialization::encode_i8(bufp, role);
197  Serialization::encode_vi64(bufp, cid_begin);
198  Serialization::encode_vi64(bufp, cid_end);
199  Serialization::encode_vi32(bufp, failures);
200  Serialization::encode(bufp, endpoints);
201 }
202 
203 void RspManagersStatus::Manager::decode(const uint8_t** bufp,
204  size_t* remainp) {
205  priority = Serialization::decode_vi32(bufp, remainp);
207  role = Serialization::decode_i8(bufp, remainp);
208  cid_begin = Serialization::decode_vi64(bufp, remainp);
209  cid_end = Serialization::decode_vi64(bufp, remainp);
210  failures = Serialization::decode_vi32(bufp, remainp);
211  Serialization::decode(bufp, remainp, endpoints);
212 }
213 
214 void RspManagersStatus::Manager::display(std::ostream& out,
215  const std::string& offset) const {
216  out << offset << "role=" << DB::Types::MngrRole::to_string(role);
218  out << " " << (cid_begin ? std::to_string(cid_begin) : "any")
219  << "<=CID<="
220  << (cid_end ? std::to_string(cid_end) : "any");
221  out << " priority=" << priority
222  << " state=" << DB::Types::to_string(state);
223  Comm::print(out << ' ', endpoints);
224 }
225 
226 
227 
228 
230  size_t sz = Serialization::encoded_length_vi64(managers.size());
231  for(auto& m : managers)
232  sz += m.encoded_length();
233  sz += Serialization::encoded_length(inchain);
234  return sz;
235 }
236 
237 void RspManagersStatus::internal_encode(uint8_t** bufp) const {
238  Serialization::encode_vi64(bufp, managers.size());
239  for(auto& m : managers)
240  m.encode(bufp);
241  Serialization::encode(bufp, inchain);
242 }
243 
244 void RspManagersStatus::internal_decode(const uint8_t** bufp,
245  size_t* remainp) {
246  if(size_t sz = Serialization::decode_vi64(bufp, remainp)) {
247  managers.reserve(sz);
248  for(size_t i = 0; i < sz; ++i)
249  managers.emplace_back(bufp, remainp);
250  std::sort(
251  managers.begin(), managers.end(),
252  [](const Manager& l, const Manager& r) {
253  return l.role == r.role && l.cid_begin == r.cid_begin
254  ? l.priority < r.priority
255  : l.role > r.role && l.cid_begin < r.cid_begin;
256  }
257  );
258  }
259  inchain = Serialization::decode(bufp, remainp);
260 }
261 
262 void RspManagersStatus::display(std::ostream& out,
263  const std::string& offset) const {
264  out << offset << "managers=" << managers.size()
265  << " inchain=" << inchain;
266  for(auto& m : managers)
267  m.display(out << '\n', offset + " ");
268 }
269 
270 
271 
272 
273 
274 }
275 }}}}}
SWC::Comm::Protocol::Mngr::Params::Report::RspManagersStatus::Manager
Definition: Report.h:189
SWC::Comm::Protocol::Mngr::Params::Report::RspColumnStatus::internal_encoded_length
size_t SWC_PURE_FUNC internal_encoded_length() const override
Definition: Report.cc:63
SWC::Comm::Protocol::Mngr::Params::Report::RspManagersStatus::Manager::decode
void decode(const uint8_t **bufp, size_t *remainp)
Definition: Report.cc:203
SWC::DB::Types::MngrRange::State
State
Definition: MngrRangeState.h:16
SWC::Comm::Protocol::Mngr::Params::Report::RspColumnStatus::internal_encode
void internal_encode(uint8_t **bufp) const override
Definition: Report.cc:71
SWC::Comm::Protocol::Mngr::Params::Report::RspManagersStatus::display
void display(std::ostream &out, const std::string &offset="") const
Definition: Report.cc:262
SWC::Serialization::encoded_length_vi32
constexpr SWC_CAN_INLINE uint8_t encoded_length_vi32(uint32_t val) noexcept
Definition: Serialization.h:234
SWC::Comm::Protocol::Mngr::Params::Report::RspManagersStatus::internal_decode
void internal_decode(const uint8_t **bufp, size_t *remainp) override
Definition: Report.cc:244
SWC::DB::Types::to_string
const char *SWC_CONST_FUNC to_string(Column typ) noexcept
Definition: Column.cc:38
SWC::Comm::Protocol::Mngr::Params::Report::RspRangersStatus::internal_encode
void internal_encode(uint8_t **bufp) const override
Definition: Report.cc:154
SWC::Comm::Protocol::Mngr::Params::Report::RspRangersStatus::Ranger
Definition: Report.h:122
SWC::Serialization::encode_i16
SWC_CAN_INLINE void encode_i16(uint8_t **bufp, uint16_t val) noexcept
Definition: Serialization.h:112
SWC::Serialization::encode_i8
constexpr SWC_CAN_INLINE void encode_i8(uint8_t **bufp, uint8_t val) noexcept
Definition: Serialization.h:85
SWC::Serialization::encoded_length
SWC_CAN_INLINE uint8_t encoded_length(const Comm::EndPoint &endpoint) noexcept
Definition: Resolver.h:63
SWC::Comm::print
void print(std::ostream &out, const EndPoints &endpoints)
Definition: Resolver.cc:85
SWC::Serialization::encode
void encode(uint8_t **bufp, const Comm::EndPoint &endpoint)
Definition: Resolver.cc:22
SWC::Comm::Protocol::Mngr::Params::Report::RspRangersStatus::internal_decode
void internal_decode(const uint8_t **bufp, size_t *remainp) override
Definition: Report.cc:160
SWC::Comm::Protocol::Mngr::Params::Report::RspColumnStatus::ranges
Core::Vector< RangeStatus > ranges
Definition: Report.h:99
SWC::Comm::Protocol::Mngr::Params::Report::RspRangersStatus::Ranger::decode
void decode(const uint8_t **bufp, size_t *remainp)
Definition: Report.cc:123
Report.h
SWC::Comm::Protocol::Mngr::Params::Report::ReqColumnStatus::internal_encoded_length
size_t SWC_PURE_FUNC internal_encoded_length() const override
Definition: Report.cc:18
SWC::Comm::Protocol::Mngr::Params::Report::ReqColumnStatus::internal_decode
void internal_decode(const uint8_t **bufp, size_t *remainp) override
Definition: Report.cc:26
SWC::Serialization::decode_i16
SWC_CAN_INLINE uint16_t decode_i16(const uint8_t **bufp, size_t *remainp)
Definition: Serialization.h:117
SWC::Comm::Protocol::Mngr::Params::Report::RspColumnStatus::RangeStatus::display
void display(std::ostream &out, const std::string &offset) const
Definition: Report.cc:53
SWC::Comm::Protocol::Mngr::Params::Report::RspColumnStatus::RangeStatus::encoded_length
size_t SWC_PURE_FUNC encoded_length() const
Definition: Report.cc:34
SWC::Comm::Protocol::Mngr::Params::Report::RspColumnStatus::RangeStatus::encode
void encode(uint8_t **bufp) const
Definition: Report.cc:40
SWC
The SWC-DB C++ namespace 'SWC'.
Definition: main.cc:12
SWC::Comm::Protocol::Mngr::Params::Report::RspRangersStatus::Ranger::display
void display(std::ostream &out, const std::string &offset) const
Definition: Report.cc:133
SWC::DB::Types::MngrColumn::State
State
Definition: MngrColumnState.h:16
SWC::Comm::Protocol::Mngr::Params::Report::RspColumnStatus::RangeStatus::rgr_id
rgrid_t rgr_id
Definition: Report.h:75
SWC::Comm::Protocol::Mngr::Params::Report::RspManagersStatus::internal_encode
void internal_encode(uint8_t **bufp) const override
Definition: Report.cc:237
Serialization.h
SWC::Comm::Protocol::Mngr::Params::Report::RspRangersStatus::Ranger::encoded_length
size_t SWC_PURE_FUNC encoded_length() const
Definition: Report.cc:104
SWC::Comm::Protocol::Mngr::Params::Report::ReqColumnStatus::internal_encode
void internal_encode(uint8_t **bufp) const override
Definition: Report.cc:22
SWC::Comm::Protocol::Mngr::Params::Report::RspRangersStatus::display
void display(std::ostream &out, const std::string &offset="") const
Definition: Report.cc:173
SWC::Comm::Resolver::sort
void sort(const Networks &nets, const EndPoints &endpoints, EndPoints &sorted)
Definition: Resolver.cc:243
SWC::Comm::Protocol::Mngr::Params::Report::RspManagersStatus::Manager::encoded_length
size_t SWC_PURE_FUNC encoded_length() const
Definition: Report.cc:184
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::Mngr::Params::Report::RspColumnStatus::display
void display(std::ostream &out, const std::string &offset="") const
Definition: Report.cc:92
SWC::Comm::Protocol::Mngr::Params::Report::RspColumnStatus::RangeStatus::rid
rid_t rid
Definition: Report.h:74
SWC::Comm::Protocol::Mngr::Params::Report::RspColumnStatus::RangeStatus
Definition: Report.h:71
SWC::Comm::Protocol::Mngr::Params::Report::RspManagersStatus::Manager::encode
void encode(uint8_t **bufp) const
Definition: Report.cc:193
SWC::Serialization::decode
Comm::EndPoint decode(const uint8_t **bufp, size_t *remainp)
Definition: Resolver.cc:35
SWC::Comm::Protocol::Mngr::Params::Report::RspManagersStatus::Manager::display
void display(std::ostream &out, const std::string &offset) const
Definition: Report.cc:214
SWC::DB::Types::MngrRangerState::to_string
const char *SWC_CONST_FUNC to_string(uint8_t state) noexcept
Definition: MngrRangerState.cc:23
SWC::Serialization::decode_vi64
constexpr SWC_CAN_INLINE uint64_t decode_vi64(const uint8_t **bufp, size_t *remainp)
Definition: Serialization.h:302
SWC::Serialization::encode_vi32
constexpr SWC_CAN_INLINE void encode_vi32(uint8_t **bufp, uint32_t val)
Definition: Serialization.h:243
SWC::DB::Types::MngrState
MngrState
Definition: MngrState.h:14
SWC::Comm::Protocol::Mngr::Params::Report::RspManagersStatus::internal_encoded_length
size_t SWC_PURE_FUNC internal_encoded_length() const override
Definition: Report.cc:229
SWC::Comm::Protocol::Mngr::Params::Report::ReqColumnStatus::cid
cid_t cid
Definition: Report.h:46
SWC::Comm::Protocol::Mngr::Params::Report::RspRangersStatus::internal_encoded_length
size_t SWC_PURE_FUNC internal_encoded_length() const override
Definition: Report.cc:147
SWC::Serialization::encode_vi64
constexpr SWC_CAN_INLINE void encode_vi64(uint8_t **bufp, uint64_t val)
Definition: Serialization.h:286
SWC::Comm::Protocol::Mngr::Params::Report::RspColumnStatus::RangeStatus::decode
void decode(const uint8_t **bufp, size_t *remainp)
Definition: Report.cc:46
SWC::Comm::Protocol::Mngr::Params::Report::RspRangersStatus::Ranger::encode
void encode(uint8_t **bufp) const
Definition: Report.cc:113
SWC::Core::to_string
SWC_CAN_INLINE std::string to_string(const BitFieldInt< T, SZ > &v)
Definition: BitFieldInt.h:263
SWC::Serialization::decode_i8
constexpr SWC_CAN_INLINE uint8_t decode_i8(const uint8_t **bufp, size_t *remainp)
Definition: Serialization.h:91
SWC::DB::Types::MngrRole::COLUMNS
const uint8_t COLUMNS
Definition: MngrRole.h:14
SWC::DB::Types::MngrRole::to_string
std::string to_string(uint8_t role)
Definition: MngrRole.cc:19
SWC::Comm::Protocol::Mngr::Params::Report::RspColumnStatus::internal_decode
void internal_decode(const uint8_t **bufp, size_t *remainp) override
Definition: Report.cc:78
SWC::Comm::Protocol::Mngr::Params::Report::RspColumnStatus::state
DB::Types::MngrColumn::State state
Definition: Report.h:98
SWC::Serialization::decode_vi32
constexpr SWC_CAN_INLINE uint32_t decode_vi32(const uint8_t **bufp, size_t *remainp)
Definition: Serialization.h:254