SWC-DB  v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
ColumnList.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_bkr_req_ColumnList_h
7 #define swcdb_db_protocol_bkr_req_ColumnList_h
8 
9 
12 
13 
14 namespace SWC { namespace Comm { namespace Protocol {
15 namespace Bkr { namespace Req {
16 
17 
18 template<typename DataT>
19 class ColumnList final : public ColumnList_Base {
20  public:
21 
22  typedef std::shared_ptr<ColumnList> Ptr;
23  DataT data;
24 
25  template<typename... DataArgsT>
27  static Ptr make(
28  const Mngr::Params::ColumnListReq& params,
29  const uint32_t timeout,
30  DataArgsT&&... args) {
31  return Ptr(new ColumnList(params, timeout, args...));
32  }
33 
34  template<typename... DataArgsT>
36  static void request(
37  const Mngr::Params::ColumnListReq& params,
38  const uint32_t timeout,
39  DataArgsT&&... args) {
40  make(params, timeout, args...)->run();
41  }
42 
43  virtual ~ColumnList() noexcept { }
44 
45  protected:
46 
47  template<typename... DataArgsT>
50  const Mngr::Params::ColumnListReq& params,
51  const uint32_t timeout,
52  DataArgsT&&... args)
53  : ColumnList_Base(params, timeout),
54  data(args...) {
55  }
56 
57  SWC::client::Clients::Ptr& get_clients() noexcept override {
58  return data.get_clients();
59  }
60 
61  bool valid() override {
62  return data.valid() && !data.get_clients()->stopping();
63  }
64 
65  void callback(int err, const Mngr::Params::ColumnListRsp& rsp) override {
66  data.callback(req(), err, rsp);
67  }
68 
69 };
70 
71 
72 
89 typedef Common::Req::function<
90  std::function<void(
91  void*,
93  int err,
95  )>
97 
98 
99 
100 }}}}}
101 
102 
103 
104 #endif // swcdb_db_protocol_bkr_req_ColumnList_h
SWC::Comm::Protocol::Mngr::Params::ColumnListReq
Definition: ColumnList.h:18
ColumnList_Base.h
SWC::Comm::client::ConnQueueReqBase::req
SWC_CAN_INLINE Ptr req() noexcept
Definition: ClientConnQueue.h:39
SWC::Comm::Protocol::Bkr::Req::ColumnList::make
static SWC_CAN_INLINE Ptr make(const Mngr::Params::ColumnListReq &params, const uint32_t timeout, DataArgsT &&... args)
Definition: ColumnList.h:27
SWC::Comm::Protocol::Bkr::Req::Functional_ColumnList
Common::Req::function< std::function< void(void *, const client::ConnQueue::ReqBase::Ptr &, int err, const Mngr::Params::ColumnListRsp &)>> Functional_ColumnList
Definition: ColumnList.h:96
SWC::Comm::Protocol::Bkr::Req::ColumnList::get_clients
SWC::client::Clients::Ptr & get_clients() noexcept override
Definition: ColumnList.h:57
SWC::client::Clients::Ptr
ClientsPtr Ptr
Definition: Clients.h:58
SWC::Comm::Protocol::Bkr::Req::ColumnList::request
static SWC_CAN_INLINE void request(const Mngr::Params::ColumnListReq &params, const uint32_t timeout, DataArgsT &&... args)
Definition: ColumnList.h:36
SWC::Comm::Protocol::Bkr::Req::ColumnList::ColumnList
SWC_CAN_INLINE ColumnList(const Mngr::Params::ColumnListReq &params, const uint32_t timeout, DataArgsT &&... args)
Definition: ColumnList.h:49
handler_data.h
SWC_CAN_INLINE
#define SWC_CAN_INLINE
Definition: Compat.h:102
SWC
The SWC-DB C++ namespace 'SWC'.
Definition: main.cc:12
SWC::Comm::Protocol::Bkr::Req::ColumnList::data
DataT data
Definition: ColumnList.h:23
SWC::Comm::Protocol::Bkr::Req::ColumnList
Definition: ColumnList.h:19
SWC::Comm::Protocol::Bkr::Req::ColumnList_Base
Definition: ColumnList_Base.h:19
SWC::Comm::Protocol::Bkr::Req::ColumnList::~ColumnList
virtual ~ColumnList() noexcept
Definition: ColumnList.h:43
SWC::Comm::Protocol::Common::Req::function
Definition: handler_data.h:19
SWC::Comm::Protocol::Bkr::Req::ColumnList::valid
bool valid() override
Definition: ColumnList.h:61
SWC::Comm::client::ConnQueueReqBase::Ptr
std::shared_ptr< ConnQueueReqBase > Ptr
Definition: ClientConnQueue.h:25
SWC::Comm::Protocol::Bkr::Req::ColumnList::callback
void callback(int err, const Mngr::Params::ColumnListRsp &rsp) override
Definition: ColumnList.h:65
SWC::Comm::Protocol::Bkr::Req::ColumnList::Ptr
std::shared_ptr< ColumnList > Ptr
Definition: ColumnList.h:22
SWC::Comm::Protocol::Mngr::Params::ColumnListRsp
Definition: ColumnList.h:46