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_rgr_req_Report_h
7 #define swcdb_db_protocol_rgr_req_Report_h
8 
9 
11 
12 
13 namespace SWC { namespace Comm { namespace Protocol {
14 namespace Rgr { namespace Req {
15 
16 
17 
19  public:
20 
22  const EndPoints& endpoints,
24  const uint32_t timeout);
25 
27  const EndPoints& endpoints,
29  const Serializable& params,
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  bool run() override;
40 
41  protected:
44 
45 };
46 
47 
48 
49 class ReportRes: public Report {
50  public:
51 
52  typedef std::function<void(const client::ConnQueue::ReqBase::Ptr&,
53  const int&,
55  typedef std::shared_ptr<ReportRes> Ptr;
56 
58  const EndPoints& endpoints,
59  Cb_t&& cb,
60  const uint32_t timeout = 10000) {
61  Ptr(new ReportRes(
62  clients, endpoints, std::move(cb), timeout))->run();
63  }
64 
66  const EndPoints& endpoints,
67  Cb_t&& cb,
68  const uint32_t timeout);
69 
70  virtual ~ReportRes() noexcept { }
71 
72  void handle_no_conn() override;
73 
74  void handle(ConnHandlerPtr conn, const Event::Ptr& ev) override;
75 
76  private:
77 
78  const Cb_t cb;
79 
80 };
81 
82 
83 
84 class ReportCids: public Report {
85  public:
86 
87  typedef std::function<void(const client::ConnQueue::ReqBase::Ptr&,
88  const int&,
90  typedef std::shared_ptr<ReportCids> Ptr;
91 
94  const EndPoints& endpoints,
95  Cb_t&& cb,
96  const uint32_t timeout = 10000) {
97  Ptr(new ReportCids(
98  clients, endpoints, std::move(cb), timeout))->run();
99  }
100 
102  const EndPoints& endpoints,
103  Cb_t&& cb,
104  const uint32_t timeout);
105 
106  virtual ~ReportCids() noexcept { }
107 
108  void handle_no_conn() override;
109 
110  void handle(ConnHandlerPtr conn, const Event::Ptr& ev) override;
111 
112  private:
113 
114  const Cb_t cb;
115 
116 };
117 
118 
119 
120 class ReportColumnRids: public Report {
121  public:
122 
123  typedef std::function<void(const client::ConnQueue::ReqBase::Ptr&,
124  const int&,
126  typedef std::shared_ptr<ReportColumnRids> Ptr;
127 
129  const EndPoints& endpoints,
130  cid_t cid,
131  Cb_t&& cb,
132  const uint32_t timeout = 10000) {
133  Ptr(new ReportColumnRids(
134  clients, endpoints, cid, std::move(cb), timeout))->run();
135  }
136 
138  const EndPoints& endpoints,
139  cid_t cid,
140  Cb_t&& cb,
141  const uint32_t timeout);
142 
143  virtual ~ReportColumnRids() noexcept { }
144 
145  void handle_no_conn() override;
146 
147  void handle(ConnHandlerPtr conn, const Event::Ptr& ev) override;
148 
149  private:
150 
151  const Cb_t cb;
152 
153 };
154 
155 
156 
158  public:
159 
160  typedef std::function<void(const client::ConnQueue::ReqBase::Ptr&,
161  const int&,
163  typedef std::shared_ptr<ReportColumnsRanges> Ptr;
164 
167  const EndPoints& endpoints,
168  Cb_t&& cb,
169  const uint32_t timeout = 10000) {
171  clients, endpoints, std::move(cb), timeout))->run();
172  }
173 
176  const EndPoints& endpoints,
177  cid_t cid,
178  Cb_t&& cb,
179  const uint32_t timeout = 10000) {
181  clients, endpoints, cid, std::move(cb), timeout))->run();
182  }
183 
184 
186  const EndPoints& endpoints,
187  Cb_t&& cb,
188  const uint32_t timeout);
189 
191  const EndPoints& endpoints,
192  cid_t cid,
193  Cb_t&& cb,
194  const uint32_t timeout);
195 
196  virtual ~ReportColumnsRanges() noexcept { }
197 
198  void handle_no_conn() override;
199 
200  void handle(ConnHandlerPtr conn, const Event::Ptr& ev) override;
201 
202  private:
203 
204  const Cb_t cb;
205 
206 };
207 
208 
209 
210 
211 }}}}}
212 
213 
214 #ifdef SWC_IMPL_SOURCE
216 #endif
217 
218 #endif // swcdb_db_protocol_rgr_req_Report_h
SWC::Comm::Protocol::Rgr::Req::ReportColumnsRanges::handle
void handle(ConnHandlerPtr conn, const Event::Ptr &ev) override
Definition: Report.cc:208
SWC::Comm::Protocol::Rgr::Req::ReportCids::~ReportCids
virtual ~ReportCids() noexcept
Definition: Report.h:106
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::Comm::Protocol::Rgr::Req::ReportCids
Definition: Report.h:84
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::Comm::client::ConnQueueReqBase
Definition: ClientConnQueue.h:22
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
SWC::Comm::Protocol::Rgr::Req::Report::Report
Report(Report &&)=delete
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::request
static void request(const SWC::client::Clients::Ptr &clients, const EndPoints &endpoints, cid_t cid, Cb_t &&cb, const uint32_t timeout=10000)
Definition: Report.h:128
Report.cc
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::ReportRes
Definition: Report.h:49
SWC::Comm::Protocol::Rgr::Req::Report::endpoints
EndPoints endpoints
Definition: Report.h:43
SWC::Comm::Protocol::Rgr::Req::ReportColumnsRanges::~ReportColumnsRanges
virtual ~ReportColumnsRanges() noexcept
Definition: Report.h:196
SWC::Comm::Protocol::Rgr::Params::Report::Function
Function
Definition: Report.h:21
SWC_CAN_INLINE
#define SWC_CAN_INLINE
Definition: Compat.h:102
SWC::Comm::Protocol::Rgr::Req::ReportColumnsRanges::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:166
SWC::Comm::Protocol::Rgr::Req::ReportColumnsRanges::request
static SWC_CAN_INLINE void request(const SWC::client::Clients::Ptr &clients, const EndPoints &endpoints, cid_t cid, Cb_t &&cb, const uint32_t timeout=10000)
Definition: Report.h:175
Report.h
SWC
The SWC-DB C++ namespace 'SWC'.
Definition: main.cc:12
SWC::Comm::Protocol::Rgr::Req::ReportColumnRids::Ptr
std::shared_ptr< ReportColumnRids > Ptr
Definition: Report.h:126
SWC::Comm::Protocol::Rgr::Req::ReportRes::Ptr
std::shared_ptr< ReportRes > Ptr
Definition: Report.h:55
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::Comm::Protocol::Rgr::Req::Report::operator=
Report & operator=(const Report &)=delete
SWC::Comm::Protocol::Rgr::Req::ReportRes::~ReportRes
virtual ~ReportRes() noexcept
Definition: Report.h:70
SWC::Comm::Protocol::Rgr::Req::ReportColumnRids::~ReportColumnRids
virtual ~ReportColumnRids() noexcept
Definition: Report.h:143
SWC::Comm::Serializable
Definition: Serializable.h:18
SWC::Comm::Protocol::Rgr::Req::ReportColumnRids::handle_no_conn
void handle_no_conn() override
Definition: Report.cc:146
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::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::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::ReportColumnRids
Definition: Report.h:120
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::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::request
static void request(const SWC::client::Clients::Ptr &clients, const EndPoints &endpoints, Cb_t &&cb, const uint32_t timeout=10000)
Definition: Report.h:57
SWC::Comm::Protocol::Rgr::Req::ReportRes::cb
const Cb_t cb
Definition: Report.h:78
SWC::Comm::Protocol::Rgr::Req::Report::Report
Report(const Report &)=delete
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::Req::Report::operator=
Report & operator=(Report &&)=delete
SWC::Comm::Protocol::Rgr::Req::ReportColumnsRanges::Ptr
std::shared_ptr< ReportColumnsRanges > Ptr
Definition: Report.h:163
SWC::Comm::client::ConnQueueReqBase::Ptr
std::shared_ptr< ConnQueueReqBase > Ptr
Definition: ClientConnQueue.h:25
SWC::Comm::Protocol::Rgr::Req::ReportCids::Ptr
std::shared_ptr< ReportCids > Ptr
Definition: Report.h:90
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::Req::ReportCids::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:93
SWC::Comm::Protocol::Rgr::Req::ReportCids::handle
void handle(ConnHandlerPtr conn, const Event::Ptr &ev) override
Definition: Report.cc:106
SWC::Comm::Protocol::Rgr::Req::ReportColumnsRanges
Definition: Report.h:157
SWC::Comm::Protocol::Rgr::Req::Report::~Report
virtual ~Report() noexcept
Definition: Report.h:37
SWC::Comm::Protocol::Rgr::Params::Report::RspCids
Definition: Report.h:81
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