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_mngr_params_Report_h
7 #define swcdb_db_protocol_mngr_params_Report_h
8 
17 
18 
19 
20 namespace SWC { namespace Comm { namespace Protocol {
21 namespace Mngr { namespace Params {
22 
23 namespace Report {
24 
25 
26 enum Function : uint8_t {
28  COLUMN_STATUS = 0x01,
30  MANAGERS_STATUS = 0x03
31 };
32 
33 
34 
35 
36 class ReqColumnStatus final : public Serializable {
37  public:
38 
41  noexcept : cid(a_cid) {
42  }
43 
44  //~ReqColumnStatus() { }
45 
47 
48  private:
49 
50  size_t SWC_PURE_FUNC internal_encoded_length() const override;
51 
52  void internal_encode(uint8_t** bufp) const override;
53 
54  void internal_decode(const uint8_t** bufp, size_t* remainp) override;
55 
56 };
57 
58 
59 class RspColumnStatus final : public Serializable {
60  public:
61 
63  RspColumnStatus() noexcept
64  : state(DB::Types::MngrColumn::State::NOTSET),
65  ranges() {
66  }
67 
69  ~RspColumnStatus() noexcept { }
70 
71  struct RangeStatus {
72 
76 
78  RangeStatus() noexcept : state(), rid(), rgr_id() { }
79 
81  RangeStatus(const uint8_t** bufp, size_t* remainp)
82  : state(), rid(), rgr_id() {
83  decode(bufp, remainp);
84  }
85 
86  size_t SWC_PURE_FUNC encoded_length() const;
87 
88  void encode(uint8_t** bufp) const;
89 
90  void decode(const uint8_t** bufp, size_t* remainp);
91 
92  void display(std::ostream& out, const std::string& offset) const;
93 
94  };
95 
96  void display(std::ostream& out, const std::string& offset = "") const;
97 
100 
101  private:
102 
103  size_t SWC_PURE_FUNC internal_encoded_length() const override;
104 
105  void internal_encode(uint8_t** bufp) const override;
106 
107  void internal_decode(const uint8_t** bufp, size_t* remainp) override;
108 
109 };
110 
111 
112 
113 class RspRangersStatus final : public Serializable {
114  public:
115 
117  RspRangersStatus() noexcept : rangers() { }
118 
120  ~RspRangersStatus() noexcept { }
121 
122  struct Ranger final {
123 
125  uint8_t state;
127  int32_t failures;
128  uint64_t interm_ranges;
129  uint16_t load_scale;
130  uint8_t rebalance;
131 
133  Ranger() noexcept
134  : endpoints(), state(), rgr_id(),
136  }
137 
139  Ranger(const uint8_t** bufp, size_t* remainp)
140  : endpoints(), state(), rgr_id(),
142  decode(bufp, remainp);
143  }
144 
145  Ranger(Ranger&&) noexcept = default;
146  Ranger& operator=(Ranger&&) noexcept = default;
147 
148  Ranger(const Ranger&) = delete;
149  Ranger& operator=(const Ranger&) = delete;
150 
152  ~Ranger() noexcept { }
153 
154  size_t SWC_PURE_FUNC encoded_length() const;
155 
156  void encode(uint8_t** bufp) const;
157 
158  void decode(const uint8_t** bufp, size_t* remainp);
159 
160  void display(std::ostream& out, const std::string& offset) const;
161 
162  };
163 
164  void display(std::ostream& out, const std::string& offset = "") const;
165 
167 
168  private:
169 
170  size_t SWC_PURE_FUNC internal_encoded_length() const override;
171 
172  void internal_encode(uint8_t** bufp) const override;
173 
174  void internal_decode(const uint8_t** bufp, size_t* remainp) override;
175 
176 };
177 
178 
179 
180 class RspManagersStatus final : public Serializable {
181  public:
182 
184  RspManagersStatus() noexcept: managers(), inchain() { }
185 
187  ~RspManagersStatus() noexcept { }
188 
189  struct Manager final {
190 
192  uint32_t priority;
194  uint8_t role;
197  int failures;
198 
200  Manager() noexcept
201  : endpoints(),
202  priority(), state(), role(),
203  cid_begin(), cid_end(), failures() {
204  }
205 
207  Manager(const uint8_t** bufp, size_t* remainp)
208  : endpoints(),
209  priority(), state(), role(),
210  cid_begin(), cid_end(), failures() {
211  decode(bufp, remainp);
212  }
213 
214  Manager(Manager&&) noexcept = default;
215  Manager& operator=(Manager&&) noexcept = default;
216 
217  Manager(const Manager&) = delete;
218  Manager& operator=(const Manager&) = delete;
219 
221  ~Manager() noexcept { }
222 
223  size_t SWC_PURE_FUNC encoded_length() const;
224 
225  void encode(uint8_t** bufp) const;
226 
227  void decode(const uint8_t** bufp, size_t* remainp);
228 
229  void display(std::ostream& out, const std::string& offset) const;
230 
231  };
232 
233 
234  void display(std::ostream& out, const std::string& offset = "") const;
235 
238 
239  private:
240 
241  size_t SWC_PURE_FUNC internal_encoded_length() const override;
242 
243  void internal_encode(uint8_t** bufp) const override;
244 
245  void internal_decode(const uint8_t** bufp, size_t* remainp) override;
246 
247 };
248 
249 
250 }
251 }}}}}
252 
253 
254 
255 #ifdef SWC_IMPL_SOURCE
257 #endif
258 
259 #endif // swcdb_db_protocol_mngr_params_Report_h
SWC::Comm::Protocol::Mngr::Params::Report::RspManagersStatus::Manager
Definition: Report.h:189
Schema.h
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::DB::SchemaPrimitives::NO_CID
static constexpr const cid_t NO_CID
Definition: Schema.h:25
SWC::Comm::Protocol::Mngr::Params::Report::RspManagersStatus::RspManagersStatus
SWC_CAN_INLINE RspManagersStatus() noexcept
Definition: Report.h:184
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::RspRangersStatus::Ranger::Ranger
SWC_CAN_INLINE Ranger(const uint8_t **bufp, size_t *remainp)
Definition: Report.h:139
SWC::DB::Types::MngrColumn::NOTSET
@ NOTSET
Definition: MngrColumnState.h:17
SWC::Comm::Protocol::Mngr::Params::Report::RspManagersStatus::display
void display(std::ostream &out, const std::string &offset="") const
Definition: Report.cc:262
SWC::Comm::Protocol::Mngr::Params::Report::RspColumnStatus::RspColumnStatus
SWC_CAN_INLINE RspColumnStatus() noexcept
Definition: Report.h:63
SWC::Comm::Protocol::Mngr::Params::Report::RspRangersStatus::Ranger::Ranger
SWC_CAN_INLINE Ranger() noexcept
Definition: Report.h:133
SWC::Comm::Protocol::Mngr::Params::Report::RspRangersStatus
Definition: Report.h:113
SWC::Comm::EndPoint
asio::ip::tcp::endpoint EndPoint
Definition: Resolver.h:19
MngrRangeState.h
MngrRole.h
SWC::Comm::Protocol::Mngr::Params::Report::CLUSTER_STATUS
@ CLUSTER_STATUS
Definition: Report.h:27
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::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::RspManagersStatus::Manager::cid_end
cid_t cid_end
Definition: Report.h:196
SWC::Comm::Protocol::Mngr::Params::Report::RspColumnStatus::RangeStatus::RangeStatus
SWC_CAN_INLINE RangeStatus(const uint8_t **bufp, size_t *remainp)
Definition: Report.h:81
SWC::Comm::Protocol::Mngr::Params::Report::RspColumnStatus::RangeStatus::RangeStatus
SWC_CAN_INLINE RangeStatus() noexcept
Definition: Report.h:78
SWC::Comm::Protocol::Mngr::Params::Report::RspRangersStatus::Ranger
Definition: Report.h:122
SWC::Comm::Protocol::Mngr::Params::Report::RspRangersStatus::Ranger::failures
int32_t failures
Definition: Report.h:127
SWC::Comm::Protocol::Mngr::Params::Report::RspRangersStatus::Ranger::rebalance
uint8_t rebalance
Definition: Report.h:130
SWC::Comm::Protocol::Mngr::Params::Report::RspManagersStatus::Manager::Manager
SWC_CAN_INLINE Manager() noexcept
Definition: Report.h:200
SWC::Comm::Protocol::Mngr::Params::Report::RspManagersStatus::Manager::Manager
Manager(Manager &&) noexcept=default
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
MngrRangerState.h
SWC::Comm::Protocol::Mngr::Params::Report::RspRangersStatus::Ranger::decode
void decode(const uint8_t **bufp, size_t *remainp)
Definition: Report.cc:123
SWC::Comm::Protocol::Mngr::Params::Report::RspColumnStatus::RangeStatus::state
DB::Types::MngrRange::State state
Definition: Report.h:73
MngrState.h
Resolver.h
SWC::Comm::Protocol::Mngr::Params::Report::RspManagersStatus::Manager::priority
uint32_t priority
Definition: Report.h:192
SWC::Comm::Protocol::Mngr::Params::Report::RspRangersStatus::Ranger::interm_ranges
uint64_t interm_ranges
Definition: Report.h:128
SWC::Comm::Protocol::Mngr::Params::Report::RspRangersStatus::Ranger::load_scale
uint16_t load_scale
Definition: Report.h:129
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_CAN_INLINE
#define SWC_CAN_INLINE
Definition: Compat.h:102
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::Comm::Protocol::Mngr::Params::Report::RspManagersStatus::Manager::role
uint8_t role
Definition: Report.h:194
SWC::Comm::Protocol::Mngr::Params::Report::RspRangersStatus::Ranger::rgr_id
rgrid_t rgr_id
Definition: Report.h:126
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::RspManagersStatus
Definition: Report.h:180
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::RspRangersStatus::Ranger::state
uint8_t state
Definition: Report.h:125
SWC::Comm::Protocol::Mngr::Params::Report::RspColumnStatus::RangeStatus::encode
void encode(uint8_t **bufp) const
Definition: Report.cc:40
SWC::Comm::Protocol::Mngr::Params::Report::COLUMN_STATUS
@ COLUMN_STATUS
Definition: Report.h:28
SWC
The SWC-DB C++ namespace 'SWC'.
Definition: main.cc:12
SWC::Comm::Protocol::Mngr::Params::Report::RspManagersStatus::inchain
EndPoint inchain
Definition: Report.h:237
SWC::Comm::Protocol::Mngr::Params::Report::RspRangersStatus::Ranger::display
void display(std::ostream &out, const std::string &offset) const
Definition: Report.cc:133
SWC::Comm::Protocol::Mngr::Params::Report::RspManagersStatus::Manager::endpoints
EndPoints endpoints
Definition: Report.h:191
SWC_PURE_FUNC
#define SWC_PURE_FUNC
Definition: Compat.h:108
SWC::Comm::Protocol::Mngr::Params::Report::RspRangersStatus::Ranger::Ranger
Ranger(Ranger &&) noexcept=default
SWC::DB::Types::MngrColumn::State
State
Definition: MngrColumnState.h:16
SWC::Comm::Protocol::Mngr::Params::Report::RspManagersStatus::Manager::cid_begin
cid_t cid_begin
Definition: Report.h:195
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
MngrColumnState.h
SWC::Comm::Serializable
Definition: Serializable.h:18
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::Protocol::Mngr::Params::Report::RspManagersStatus::managers
Core::Vector< Manager > managers
Definition: Report.h:236
SWC::rgrid_t
uint64_t rgrid_t
Definition: Identifiers.h:18
SWC::Comm::Protocol::Mngr::Params::Report::RspManagersStatus::Manager::encoded_length
size_t SWC_PURE_FUNC encoded_length() const
Definition: Report.cc:184
SWC::Comm::Protocol::Mngr::Params::Report::RspRangersStatus::~RspRangersStatus
SWC_CAN_INLINE ~RspRangersStatus() noexcept
Definition: Report.h:120
SWC::Comm::Protocol::Mngr::Params::Report::Function
Function
Definition: Report.h:26
Serializable.h
SWC::Comm::Protocol::Mngr::Params::Report::RspManagersStatus::Manager::failures
int failures
Definition: Report.h:197
SWC::Comm::Protocol::Mngr::Params::Report::RspRangersStatus::rangers
Core::Vector< Ranger > rangers
Definition: Report.h:166
SWC::cid_t
uint64_t cid_t
Definition: Identifiers.h:16
SWC::Comm::Protocol::Mngr::Params::Report::RspRangersStatus::RspRangersStatus
SWC_CAN_INLINE RspRangersStatus() noexcept
Definition: Report.h:117
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::RspManagersStatus::~RspManagersStatus
SWC_CAN_INLINE ~RspManagersStatus() noexcept
Definition: Report.h:187
SWC::Core::Vector
Definition: Vector.h:14
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::Comm::Protocol::Mngr::Params::Report::ReqColumnStatus
Definition: Report.h:36
SWC::Comm::Protocol::Mngr::Params::Report::RspColumnStatus
Definition: Report.h:59
SWC::Comm::Protocol::Mngr::Params::Report::RspManagersStatus::Manager::display
void display(std::ostream &out, const std::string &offset) const
Definition: Report.cc:214
SWC::rid_t
uint64_t rid_t
Definition: Identifiers.h:17
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::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::RspManagersStatus::Manager::state
DB::Types::MngrState state
Definition: Report.h:193
Report.cc
SWC::Comm::Protocol::Mngr::Params::Report::RANGERS_STATUS
@ RANGERS_STATUS
Definition: Report.h:29
SWC::Comm::Protocol::Mngr::Params::Report::RspRangersStatus::Ranger::encode
void encode(uint8_t **bufp) const
Definition: Report.cc:113
SWC::Comm::Protocol::Mngr::Params::Report::MANAGERS_STATUS
@ MANAGERS_STATUS
Definition: Report.h:30
SWC::Comm::Protocol::Mngr::Params::Report::RspRangersStatus::Ranger::endpoints
EndPoints endpoints
Definition: Report.h:124
SWC::Comm::Protocol::Mngr::Params::Report::RspManagersStatus::Manager::Manager
SWC_CAN_INLINE Manager(const uint8_t **bufp, size_t *remainp)
Definition: Report.h:207
SWC::Comm::Protocol::Mngr::Params::Report::ReqColumnStatus::ReqColumnStatus
SWC_CAN_INLINE ReqColumnStatus(cid_t a_cid=DB::Schema::NO_CID) noexcept
Definition: Report.h:40
SWC::Comm::Protocol::Mngr::Params::Report::RspColumnStatus::~RspColumnStatus
SWC_CAN_INLINE ~RspColumnStatus() noexcept
Definition: Report.h:69
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