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 
10 
11 
12 namespace SWC { namespace Comm { namespace Protocol {
13 namespace Rgr { namespace Req {
14 
15 
16 
18  const EndPoints& a_endpoints,
20  const uint32_t timeout)
21  : client::ConnQueue::ReqBase(Buffers::make(1)),
22  clients(a_clients), endpoints(a_endpoints) {
23  cbp->append_i8(func);
24  cbp->header.set(REPORT, timeout);
25 }
26 
28  const EndPoints& a_endpoints,
30  const Serializable& params,
31  const uint32_t timeout)
32  : client::ConnQueue::ReqBase(
33  Buffers::make(params, 1, REPORT, timeout)
34  ),
35  clients(a_clients), endpoints(a_endpoints) {
36  cbp->append_i8(func);
37 }
38 
39 bool Report::run() {
40  clients->get_rgr_queue(endpoints)->put(req());
41  return true;
42 }
43 
44 
45 
46 
47 
49  const EndPoints& a_endpoints,
50  ReportRes::Cb_t&& a_cb,
51  const uint32_t timeout)
52  : Report(
53  a_clients,
54  a_endpoints,
55  Params::Report::Function::RESOURCES,
56  timeout
57  ), cb(std::move(a_cb)) {
58 }
59 
62 }
63 
65  Params::Report::RspRes rsp_params;
66  int err = ev->error;
67  if(!err) {
68  try {
69  const uint8_t *ptr = ev->data.base;
70  size_t remain = ev->data.size;
71 
72  err = Serialization::decode_i32(&ptr, &remain);
73  if(!err)
74  rsp_params.decode(&ptr, &remain);
75 
76  } catch(...) {
79  err = e.code();
80  }
81  }
82 
83  cb(req(), err, rsp_params);
84 }
85 
86 
87 
88 
89 
91  const EndPoints& a_endpoints,
92  ReportCids::Cb_t&& a_cb,
93  const uint32_t timeout)
94  : Report(
95  a_clients,
96  a_endpoints,
97  Params::Report::Function::CIDS,
98  timeout
99  ), cb(std::move(a_cb)) {
100 }
101 
104 }
105 
107  Params::Report::RspCids rsp_params;
108  int err = ev->error;
109  if(!err) {
110  try {
111  const uint8_t *ptr = ev->data.base;
112  size_t remain = ev->data.size;
113 
114  err = Serialization::decode_i32(&ptr, &remain);
115  if(!err)
116  rsp_params.decode(&ptr, &remain);
117 
118  } catch(...) {
121  err = e.code();
122  }
123  }
124 
125  cb(req(), err, rsp_params);
126 }
127 
128 
129 
130 
131 
133  const EndPoints& a_endpoints,
134  cid_t cid,
135  ReportColumnRids::Cb_t&& a_cb,
136  const uint32_t timeout)
137  : Report(
138  a_clients,
139  a_endpoints,
140  Params::Report::Function::COLUMN_RIDS,
141  Params::Report::ReqColumn(cid),
142  timeout
143  ), cb(std::move(a_cb)) {
144 }
145 
148 }
149 
152  int err = ev->error;
153  if(!err) {
154  try {
155  const uint8_t *ptr = ev->data.base;
156  size_t remain = ev->data.size;
157 
158  err = Serialization::decode_i32(&ptr, &remain);
159  if(!err)
160  rsp_params.decode(&ptr, &remain);
161 
162  } catch(...) {
165  err = e.code();
166  }
167  }
168 
169  cb(req(), err, rsp_params);
170 }
171 
172 
173 
174 
175 
177  const SWC::client::Clients::Ptr& a_clients,
178  const EndPoints& a_endpoints,
180  const uint32_t timeout)
181  : Report(
182  a_clients,
183  a_endpoints,
184  Params::Report::Function::COLUMNS_RANGES,
185  timeout
186  ), cb(std::move(a_cb)) {
187 }
188 
190  const SWC::client::Clients::Ptr& a_clients,
191  const EndPoints& a_endpoints,
192  cid_t cid,
194  const uint32_t timeout)
195  : Report(
196  a_clients,
197  a_endpoints,
198  Params::Report::Function::COLUMN_RANGES,
199  Params::Report::ReqColumn(cid),
200  timeout
201  ), cb(std::move(a_cb)) {
202 }
203 
206 }
207 
210  int err = ev->error;
211  if(!err) {
212  try {
213  const uint8_t *ptr = ev->data.base;
214  size_t remain = ev->data.size;
215 
216  err = Serialization::decode_i32(&ptr, &remain);
217  if(!err)
218  rsp_params.decode(&ptr, &remain);
219 
220  } catch(...) {
223  err = e.code();
224  }
225  }
226 
227  cb(req(), err, rsp_params);
228 }
229 
230 
231 
232 
233 
234 
235 
236 }}}}}
SWC::Comm::Protocol::Rgr::Req::ReportColumnsRanges::handle
void handle(ConnHandlerPtr conn, const Event::Ptr &ev) override
Definition: Report.cc:208
SWC::Error::Exception::code
constexpr SWC_CAN_INLINE int code() const noexcept
Definition: Exception.h:51
SWC_LOG_OSTREAM
#define SWC_LOG_OSTREAM
Definition: Logger.h:44
SWC::Comm::Protocol::Rgr::REPORT
@ REPORT
Definition: Commands.h:36
Clients.h
SWC::Comm::client::ConnQueueReqBase::req
SWC_CAN_INLINE Ptr req() noexcept
Definition: ClientConnQueue.h:39
SWC_LOG_OUT
#define SWC_LOG_OUT(pr, _code_)
Definition: Logger.h:178
SWC::Comm::Protocol::Rgr::Req::ReportRes::Cb_t
std::function< void(const client::ConnQueue::ReqBase::Ptr &, const int &, const Params::Report::RspRes &)> Cb_t
Definition: Report.h:54
SWC::client::Query::ReqBase
Comm::client::ConnQueue::ReqBase ReqBase
Definition: Profiling.h:21
SWC::Comm::Protocol::Rgr::Req::Report::Report
Report(const SWC::client::Clients::Ptr &clients, const EndPoints &endpoints, Params::Report::Function func, const uint32_t timeout)
Definition: Report.cc:17
SWC::client::Clients::Ptr
ClientsPtr Ptr
Definition: Clients.h:58
SWC::Comm::Protocol::Rgr::Req::ReportColumnRids::ReportColumnRids
ReportColumnRids(const SWC::client::Clients::Ptr &clients, const EndPoints &endpoints, cid_t cid, Cb_t &&cb, const uint32_t timeout)
Definition: Report.cc:132
Report.h
SWC::Comm::Protocol::Rgr::Req::ReportColumnsRanges::handle_no_conn
void handle_no_conn() override
Definition: Report.cc:204
SWC::Comm::Protocol::Rgr::Req::Report::clients
SWC::client::Clients::Ptr clients
Definition: Report.h:42
SWC::Comm::Protocol::Rgr::Req::Report
Definition: Report.h:18
SWC::Comm::Protocol::Rgr::Req::ReportColumnRids::cb
const Cb_t cb
Definition: Report.h:151
SWC::Comm::Protocol::Rgr::Req::ReportColumnsRanges::cb
const Cb_t cb
Definition: Report.h:204
SWC::Comm::Protocol::Rgr::Req::Report::endpoints
EndPoints endpoints
Definition: Report.h:43
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_CURRENT_EXCEPTION
#define SWC_CURRENT_EXCEPTION(_msg_)
Definition: Exception.h:119
SWC
The SWC-DB C++ namespace 'SWC'.
Definition: main.cc:12
SWC::Comm::Protocol::Rgr::Req::ReportRes::handle_no_conn
void handle_no_conn() override
Definition: Report.cc:60
SWC::Comm::Protocol::Rgr::Req::ReportColumnsRanges::ReportColumnsRanges
ReportColumnsRanges(const SWC::client::Clients::Ptr &clients, const EndPoints &endpoints, Cb_t &&cb, const uint32_t timeout)
Definition: Report.cc:176
SWC::Error::COMM_CONNECT_ERROR
@ COMM_CONNECT_ERROR
Definition: Error.h:65
SWC::Comm::Serializable
Definition: Serializable.h:18
SWC::Comm::Buffers
Definition: Buffers.h:20
SWC::Comm::Protocol::Rgr::Req::ReportColumnRids::handle_no_conn
void handle_no_conn() override
Definition: Report.cc:146
Commands.h
SWC::Comm::Protocol::Rgr::Params::Report::RspColumnRids
Definition: Report.h:106
SWC::Comm::Protocol::Rgr::Req::Report::run
bool run() override
Definition: Report.cc:39
SWC::LOG_ERROR
@ LOG_ERROR
Definition: Logger.h:32
SWC::Comm::Protocol::Rgr::Req::ReportRes::handle
void handle(ConnHandlerPtr conn, const Event::Ptr &ev) override
Definition: Report.cc:64
SWC::Comm::Protocol::Rgr::Req::ReportColumnRids::handle
void handle(ConnHandlerPtr conn, const Event::Ptr &ev) override
Definition: Report.cc:150
SWC::Comm::Protocol::Mngr::Params::Report::Function
Function
Definition: Report.h:26
SWC::Comm::Protocol::Rgr::Req::ReportCids::ReportCids
ReportCids(const SWC::client::Clients::Ptr &clients, const EndPoints &endpoints, Cb_t &&cb, const uint32_t timeout)
Definition: Report.cc:90
SWC::Comm::Protocol::Rgr::Req::ReportCids::handle_no_conn
void handle_no_conn() override
Definition: Report.cc:102
SWC::cid_t
uint64_t cid_t
Definition: Identifiers.h:16
SWC::Comm::ConnHandlerPtr
std::shared_ptr< ConnHandler > ConnHandlerPtr
Definition: AppContext.h:17
SWC::Comm::Protocol::Rgr::Req::ReportCids::Cb_t
std::function< void(const client::ConnQueue::ReqBase::Ptr &, const int &, const Params::Report::RspCids &)> Cb_t
Definition: Report.h:89
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< EndPoint >
SWC::Comm::Protocol::Rgr::Req::ReportColumnsRanges::Cb_t
std::function< void(const client::ConnQueue::ReqBase::Ptr &, const int &, const Params::Report::RspColumnsRanges &)> Cb_t
Definition: Report.h:162
SWC::Comm::Protocol::Rgr::Req::ReportRes::cb
const Cb_t cb
Definition: Report.h:78
SWC::Comm::client::ConnQueueReqBase::cbp
Buffers::Ptr cbp
Definition: ClientConnQueue.h:26
SWC::Comm::Serializable::decode
void decode(const uint8_t **bufp, size_t *remainp)
Definition: Serializable.h:59
SWC::Comm::Protocol::Rgr::Req::ReportCids::cb
const Cb_t cb
Definition: Report.h:114
SWC::Comm::Event::Ptr
std::shared_ptr< Event > Ptr
Definition: Event.h:33
SWC::Comm::Protocol::Rgr::Params::Report::RESOURCES
@ RESOURCES
Definition: Report.h:22
SWC::Comm::Protocol::Rgr::Req::ReportColumnRids::Cb_t
std::function< void(const client::ConnQueue::ReqBase::Ptr &, const int &, const Params::Report::RspColumnRids &)> Cb_t
Definition: Report.h:125
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::Req::ReportCids::handle
void handle(ConnHandlerPtr conn, const Event::Ptr &ev) override
Definition: Report.cc:106
SWC::Comm::Protocol::Rgr::Params::Report::COLUMN_RIDS
@ COLUMN_RIDS
Definition: Report.h:24
SWC::Comm::Protocol::Rgr::Params::Report::RspCids
Definition: Report.h:81
SWC::Error::Exception
Definition: Exception.h:21
SWC::Serialization::decode_i32
SWC_CAN_INLINE uint32_t decode_i32(const uint8_t **bufp, size_t *remainp)
Definition: Serialization.h:143
SWC::Comm::Protocol::Rgr::Req::ReportRes::ReportRes
ReportRes(const SWC::client::Clients::Ptr &clients, const EndPoints &endpoints, Cb_t &&cb, const uint32_t timeout)
Definition: Report.cc:48