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_req_Report_h
7 #define swcdb_db_protocol_req_Report_h
8 
9 
12 
13 
14 namespace SWC { namespace Comm { namespace Protocol {
15 namespace Mngr { namespace Req {
16 
17 
19  public:
20 
22  Params::Report::Function func, const uint32_t timeout);
23 
26  const uint32_t timeout);
27 
29  const Serializable& params, Params::Report::Function func,
30  const uint32_t timeout);
31 
32  Report(Report&&) = delete;
33  Report(const Report&) = delete;
34  Report& operator=(Report&&) = delete;
35  Report& operator=(const Report&) = delete;
36 
37  virtual ~Report() noexcept { }
38 
39  void handle_no_conn() override;
40 
41  protected:
42 
43  void clear_endpoints();
44 
47 };
48 
49 
50 
51 
52 class ClusterStatus: public Report {
53  public:
54 
55  typedef std::function<void(const client::ConnQueue::ReqBase::Ptr&,
56  const int&)> Cb_t;
57  typedef std::shared_ptr<ClusterStatus> Ptr;
58 
61  const EndPoints& endpoints,
62  Cb_t&& cb, const uint32_t timeout = 10000) {
63  make(clients, endpoints, std::move(cb), timeout)->run();
64  }
65 
68  const EndPoints& endpoints,
69  Cb_t&& cb, const uint32_t timeout = 10000) {
70  return Ptr(new ClusterStatus(clients, endpoints, std::move(cb), timeout));
71  }
72 
74  const EndPoints& endpoints,
75  Cb_t&& cb, const uint32_t timeout);
76 
77  virtual ~ClusterStatus() noexcept { }
78 
79  bool run() override;
80 
81  void handle_no_conn() override;
82 
83  void handle(ConnHandlerPtr conn, const Event::Ptr& ev) override;
84 
85  private:
86 
87  const Cb_t cb;
88 
89 };
90 
91 
92 
93 
94 class ColumnStatus: public Report {
95  public:
96 
97  typedef std::function<void(const client::ConnQueue::ReqBase::Ptr&,
98  const int&,
100  typedef std::shared_ptr<ColumnStatus> Ptr;
101 
104  cid_t cid, Cb_t&& cb,
105  const uint32_t timeout = 10000) {
106  request(
107  clients, Params::Report::ReqColumnStatus(cid), std::move(cb), timeout);
108  }
109 
112  const Params::Report::ReqColumnStatus& params,
113  Cb_t&& cb, const uint32_t timeout = 10000) {
114  make(clients, params, std::move(cb), timeout)->run();
115  }
116 
119  const Params::Report::ReqColumnStatus& params,
120  Cb_t&& cb, const uint32_t timeout = 10000) {
121  return Ptr(new ColumnStatus(clients, params, std::move(cb), timeout));
122  }
123 
125  const Params::Report::ReqColumnStatus& params,
126  Cb_t&& cb, const uint32_t timeout);
127 
128  virtual ~ColumnStatus() noexcept { }
129 
130  bool run() override;
131 
132  void handle(ConnHandlerPtr conn, const Event::Ptr& ev) override;
133 
134  private:
135 
136  const Cb_t cb;
138 
139 };
140 
141 
142 
143 
144 class RangersStatus: public Report {
145  public:
146 
147  typedef std::function<void(const client::ConnQueue::ReqBase::Ptr&,
148  const int&,
150  typedef std::shared_ptr<RangersStatus> Ptr;
151 
154  cid_t cid, Cb_t&& cb,
155  const uint32_t timeout = 10000) {
156  make(clients, cid, std::move(cb), timeout)->run();
157  }
158 
161  cid_t cid, Cb_t&& cb,
162  const uint32_t timeout = 10000) {
163  return Ptr(new RangersStatus(clients, cid, std::move(cb), timeout));
164  }
165 
167  cid_t cid, Cb_t&& cb,
168  const uint32_t timeout);
169 
170  virtual ~RangersStatus() noexcept { }
171 
172  bool run() override;
173 
174  void handle(ConnHandlerPtr conn, const Event::Ptr& ev) override;
175 
176  private:
177 
178  const Cb_t cb;
180 
181 };
182 
183 
184 
185 
186 class ManagersStatus: public Report {
187  public:
188 
189  typedef std::function<void(const client::ConnQueue::ReqBase::Ptr&,
190  const int&,
192  typedef std::shared_ptr<ManagersStatus> Ptr;
193 
196  const EndPoints& endpoints, Cb_t&& cb,
197  const uint32_t timeout = 10000) {
198  make(clients, endpoints, std::move(cb), timeout)->run();
199  }
200 
203  const EndPoints& endpoints, Cb_t&& cb,
204  const uint32_t timeout = 10000) {
205  return Ptr(new ManagersStatus(
206  clients, endpoints, std::move(cb), timeout));
207  }
208 
210  const EndPoints& endpoints, Cb_t&& cb,
211  const uint32_t timeout);
212 
213  virtual ~ManagersStatus() noexcept { }
214 
215  bool run() override;
216 
217  void handle_no_conn() override;
218 
219  void handle(ConnHandlerPtr conn, const Event::Ptr& ev) override;
220 
221  private:
222 
223  const Cb_t cb;
224 
225 };
226 
227 
228 
229 
230 }}}}}
231 
232 
233 #ifdef SWC_IMPL_SOURCE
235 #endif
236 
237 #endif // swcdb_db_protocol_req_Report_h
SWC::Comm::Protocol::Mngr::Req::RangersStatus::request
static SWC_CAN_INLINE void request(const SWC::client::Clients::Ptr &clients, cid_t cid, Cb_t &&cb, const uint32_t timeout=10000)
Definition: Report.h:153
SWC::Comm::Protocol::Mngr::Req::RangersStatus
Definition: Report.h:144
SWC::Comm::Protocol::Mngr::Req::RangersStatus::Ptr
std::shared_ptr< RangersStatus > Ptr
Definition: Report.h:150
SWC::Comm::Protocol::Mngr::Req::RangersStatus::handle
void handle(ConnHandlerPtr conn, const Event::Ptr &ev) override
Definition: Report.cc:194
SWC::Comm::Protocol::Mngr::Params::Report::RspRangersStatus
Definition: Report.h:113
SWC::Comm::Protocol::Mngr::Req::ManagersStatus::make
static SWC_CAN_INLINE Ptr make(const SWC::client::Clients::Ptr &clients, const EndPoints &endpoints, Cb_t &&cb, const uint32_t timeout=10000)
Definition: Report.h:202
SWC::Comm::Protocol::Mngr::Req::Report::Report
Report(Report &&)=delete
SWC::Comm::client::ConnQueueReqBase
Definition: ClientConnQueue.h:22
SWC::client::Clients::Ptr
ClientsPtr Ptr
Definition: Clients.h:58
SWC::Comm::Protocol::Mngr::Req::ColumnStatus::request
static SWC_CAN_INLINE void request(const SWC::client::Clients::Ptr &clients, const Params::Report::ReqColumnStatus &params, Cb_t &&cb, const uint32_t timeout=10000)
Definition: Report.h:111
SWC::Comm::Protocol::Mngr::Req::ClusterStatus::make
static SWC_CAN_INLINE Ptr make(const SWC::client::Clients::Ptr &clients, const EndPoints &endpoints, Cb_t &&cb, const uint32_t timeout=10000)
Definition: Report.h:67
SWC::Comm::Protocol::Mngr::Req::Report::~Report
virtual ~Report() noexcept
Definition: Report.h:37
SWC::Comm::Protocol::Mngr::Req::ManagersStatus::run
bool run() override
Definition: Report.cc:232
SWC::Comm::Protocol::Mngr::Req::ClusterStatus::handle
void handle(ConnHandlerPtr conn, const Event::Ptr &ev) override
Definition: Report.cc:81
SWC::Comm::Protocol::Mngr::Req::ColumnStatus::Ptr
std::shared_ptr< ColumnStatus > Ptr
Definition: Report.h:100
SWC::Comm::Protocol::Mngr::Req::ColumnStatus::handle
void handle(ConnHandlerPtr conn, const Event::Ptr &ev) override
Definition: Report.cc:133
SWC::Comm::Protocol::Mngr::Req::RangersStatus::Cb_t
std::function< void(const client::ConnQueue::ReqBase::Ptr &, const int &, const Params::Report::RspRangersStatus &)> Cb_t
Definition: Report.h:149
SWC::Comm::Protocol::Mngr::Req::Report::operator=
Report & operator=(Report &&)=delete
SWC::Comm::Protocol::Mngr::Req::ManagersStatus::request
static SWC_CAN_INLINE void request(const SWC::client::Clients::Ptr &clients, const EndPoints &endpoints, Cb_t &&cb, const uint32_t timeout=10000)
Definition: Report.h:195
SWC::Comm::Protocol::Mngr::Req::ClusterStatus
Definition: Report.h:52
Report.h
SWC_CAN_INLINE
#define SWC_CAN_INLINE
Definition: Compat.h:102
SWC::Comm::Protocol::Mngr::Req::Report::Report
Report(const SWC::client::Clients::Ptr &clients, Params::Report::Function func, const uint32_t timeout)
Definition: Report.cc:17
SWC::Comm::Protocol::Mngr::Req::ClusterStatus::cb
const Cb_t cb
Definition: Report.h:87
SWC::Comm::Protocol::Mngr::Req::ClusterStatus::Cb_t
std::function< void(const client::ConnQueue::ReqBase::Ptr &, const int &)> Cb_t
Definition: Report.h:56
SWC::Comm::Protocol::Mngr::Params::Report::RspManagersStatus
Definition: Report.h:180
SWC::Comm::Protocol::Mngr::Req::RangersStatus::~RangersStatus
virtual ~RangersStatus() noexcept
Definition: Report.h:170
SWC
The SWC-DB C++ namespace 'SWC'.
Definition: main.cc:12
SWC::Comm::Protocol::Mngr::Req::Report::clear_endpoints
void clear_endpoints()
Definition: Report.cc:51
SWC::Comm::Protocol::Mngr::Req::RangersStatus::make
static SWC_CAN_INLINE Ptr make(const SWC::client::Clients::Ptr &clients, cid_t cid, Cb_t &&cb, const uint32_t timeout=10000)
Definition: Report.h:160
SWC::Comm::Protocol::Mngr::Req::ManagersStatus::ManagersStatus
ManagersStatus(const SWC::client::Clients::Ptr &clients, const EndPoints &endpoints, Cb_t &&cb, const uint32_t timeout)
Definition: Report.cc:220
SWC::Comm::Protocol::Mngr::Req::ColumnStatus::~ColumnStatus
virtual ~ColumnStatus() noexcept
Definition: Report.h:128
SWC::Comm::Protocol::Mngr::Req::RangersStatus::RangersStatus
RangersStatus(const SWC::client::Clients::Ptr &clients, cid_t cid, Cb_t &&cb, const uint32_t timeout)
Definition: Report.cc:159
SWC::Comm::Protocol::Mngr::Req::ManagersStatus::Ptr
std::shared_ptr< ManagersStatus > Ptr
Definition: Report.h:192
SWC::Comm::Serializable
Definition: Serializable.h:18
SWC::Comm::Protocol::Mngr::Req::ClusterStatus::~ClusterStatus
virtual ~ClusterStatus() noexcept
Definition: Report.h:77
SWC::Comm::Protocol::Mngr::Req::Report::endpoints
EndPoints endpoints
Definition: Report.h:46
ClientConnQueue.h
SWC::Comm::Protocol::Mngr::Req::ColumnStatus::run
bool run() override
Definition: Report.cc:117
SWC::Comm::Protocol::Mngr::Req::ClusterStatus::run
bool run() override
Definition: Report.cc:72
SWC::Comm::Protocol::Mngr::Req::ClusterStatus::ClusterStatus
ClusterStatus(const SWC::client::Clients::Ptr &clients, const EndPoints &endpoints, Cb_t &&cb, const uint32_t timeout)
Definition: Report.cc:60
SWC::Comm::Protocol::Mngr::Params::Report::Function
Function
Definition: Report.h:26
SWC::Comm::Protocol::Mngr::Req::ColumnStatus::Cb_t
std::function< void(const client::ConnQueue::ReqBase::Ptr &, const int &, const Params::Report::RspColumnStatus &)> Cb_t
Definition: Report.h:99
SWC::Comm::Protocol::Mngr::Req::Report::Report
Report(const Report &)=delete
SWC::cid_t
uint64_t cid_t
Definition: Identifiers.h:16
SWC::Comm::Protocol::Mngr::Req::ClusterStatus::request
static SWC_CAN_INLINE void request(const SWC::client::Clients::Ptr &clients, const EndPoints &endpoints, Cb_t &&cb, const uint32_t timeout=10000)
Definition: Report.h:60
SWC::Comm::ConnHandlerPtr
std::shared_ptr< ConnHandler > ConnHandlerPtr
Definition: AppContext.h:17
SWC::Core::Vector< EndPoint >
SWC::Comm::Protocol::Mngr::Req::ColumnStatus::request
static SWC_CAN_INLINE void request(const SWC::client::Clients::Ptr &clients, cid_t cid, Cb_t &&cb, const uint32_t timeout=10000)
Definition: Report.h:103
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::Req::ManagersStatus::handle_no_conn
void handle_no_conn() override
Definition: Report.cc:245
SWC::Comm::Protocol::Mngr::Req::ColumnStatus
Definition: Report.h:94
SWC::Comm::Protocol::Mngr::Req::RangersStatus::run
bool run() override
Definition: Report.cc:169
SWC::Comm::Protocol::Mngr::Req::ManagersStatus::handle
void handle(ConnHandlerPtr conn, const Event::Ptr &ev) override
Definition: Report.cc:249
SWC::Comm::Protocol::Mngr::Req::ColumnStatus::ColumnStatus
ColumnStatus(const SWC::client::Clients::Ptr &clients, const Params::Report::ReqColumnStatus &params, Cb_t &&cb, const uint32_t timeout)
Definition: Report.cc:104
SWC::Comm::Event::Ptr
std::shared_ptr< Event > Ptr
Definition: Event.h:33
SWC::Comm::Protocol::Mngr::Req::ColumnStatus::make
static SWC_CAN_INLINE Ptr make(const SWC::client::Clients::Ptr &clients, const Params::Report::ReqColumnStatus &params, Cb_t &&cb, const uint32_t timeout=10000)
Definition: Report.h:118
SWC::Comm::Protocol::Mngr::Req::ManagersStatus
Definition: Report.h:186
SWC::Comm::Protocol::Mngr::Req::ClusterStatus::handle_no_conn
void handle_no_conn() override
Definition: Report.cc:77
SWC::Comm::Protocol::Mngr::Req::ClusterStatus::Ptr
std::shared_ptr< ClusterStatus > Ptr
Definition: Report.h:57
SWC::Comm::Protocol::Mngr::Req::Report::handle_no_conn
void handle_no_conn() override
Definition: Report.cc:46
SWC::Comm::client::ConnQueueReqBase::Ptr
std::shared_ptr< ConnQueueReqBase > Ptr
Definition: ClientConnQueue.h:25
SWC::Comm::Protocol::Mngr::Req::ManagersStatus::Cb_t
std::function< void(const client::ConnQueue::ReqBase::Ptr &, const int &, const Params::Report::RspManagersStatus &)> Cb_t
Definition: Report.h:191
SWC::Comm::Protocol::Mngr::Req::Report::operator=
Report & operator=(const Report &)=delete
SWC::Comm::Protocol::Mngr::Req::ManagersStatus::cb
const Cb_t cb
Definition: Report.h:223
SWC::Comm::Protocol::Mngr::Req::Report::clients
SWC::client::Clients::Ptr clients
Definition: Report.h:45
Report.cc
SWC::Comm::Protocol::Mngr::Req::RangersStatus::cid
cid_t cid
Definition: Report.h:179
SWC::Comm::Protocol::Mngr::Req::ManagersStatus::~ManagersStatus
virtual ~ManagersStatus() noexcept
Definition: Report.h:213
SWC::Comm::Protocol::Mngr::Req::Report
Definition: Report.h:18
SWC::Comm::Protocol::Mngr::Req::RangersStatus::cb
const Cb_t cb
Definition: Report.h:178
SWC::Comm::Protocol::Mngr::Req::ColumnStatus::cid
cid_t cid
Definition: Report.h:137
SWC::Comm::Protocol::Mngr::Req::ColumnStatus::cb
const Cb_t cb
Definition: Report.h:136