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_Base.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_Base_h
7 #define swcdb_db_protocol_bkr_req_ColumnList_Base_h
8 
9 
13 
14 
15 namespace SWC { namespace Comm { namespace Protocol {
16 namespace Bkr { namespace Req {
17 
18 
20  public:
21 
24  const uint32_t timeout)
25  : client::ConnQueue::ReqBase(
26  Buffers::make(params, 0, COLUMN_LIST, timeout)),
27  _bkr_idx() {
28  }
29 
30  virtual ~ColumnList_Base() noexcept { }
31 
32  void handle_no_conn() override;
33 
34  bool run() override {
35  return get_clients()->brokers.put(req(), _bkr_idx);
36  }
37 
38  void handle(ConnHandlerPtr conn, const Event::Ptr& ev) override;
39 
40  protected:
41 
42  virtual SWC::client::Clients::Ptr& get_clients() noexcept = 0;
43 
44  virtual void callback(int error,
45  const Mngr::Params::ColumnListRsp& rsp) = 0;
46 
47  private:
48  SWC::client::Brokers::BrokerIdx _bkr_idx;
49 
50 };
51 
52 
53 
54 }}}}}
55 
56 
57 #ifdef SWC_IMPL_SOURCE
59 #endif
60 
61 #endif // swcdb_db_protocol_bkr_req_ColumnList_Base_h
SWC::Comm::Protocol::Mngr::Params::ColumnListReq
Definition: ColumnList.h:18
Clients.h
SWC::Comm::client::ConnQueueReqBase::req
SWC_CAN_INLINE Ptr req() noexcept
Definition: ClientConnQueue.h:39
SWC::Comm::Protocol::Bkr::Req::ColumnList_Base::get_clients
virtual SWC::client::Clients::Ptr & get_clients() noexcept=0
SWC::Comm::Protocol::Bkr::Req::ColumnList_Base::run
bool run() override
Definition: ColumnList_Base.h:34
SWC::Comm::Protocol::Bkr::Req::ColumnList_Base::handle
void handle(ConnHandlerPtr conn, const Event::Ptr &ev) override
Definition: ColumnList_Base.cc:28
SWC::client::Query::ReqBase
Comm::client::ConnQueue::ReqBase ReqBase
Definition: Profiling.h:21
SWC::Comm::client::ConnQueueReqBase
Definition: ClientConnQueue.h:22
SWC::client::Clients::Ptr
ClientsPtr Ptr
Definition: Clients.h:58
SWC::Comm::Protocol::Bkr::COLUMN_LIST
@ COLUMN_LIST
Definition: Commands.h:101
ColumnList_Base.cc
SWC::Comm::Protocol::Bkr::Req::ColumnList_Base::ColumnList_Base
SWC_CAN_INLINE ColumnList_Base(const Mngr::Params::ColumnListReq &params, const uint32_t timeout)
Definition: ColumnList_Base.h:23
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_Base::callback
virtual void callback(int error, const Mngr::Params::ColumnListRsp &rsp)=0
SWC::Comm::Buffers
Definition: Buffers.h:20
Commands.h
SWC::Comm::ConnHandlerPtr
std::shared_ptr< ConnHandler > ConnHandlerPtr
Definition: AppContext.h:17
SWC::Comm::Protocol::Bkr::Req::ColumnList_Base
Definition: ColumnList_Base.h:19
SWC::Comm::Protocol::Bkr::Req::ColumnList_Base::~ColumnList_Base
virtual ~ColumnList_Base() noexcept
Definition: ColumnList_Base.h:30
ColumnList.h
SWC::Comm::Protocol::Bkr::Req::ColumnList_Base::handle_no_conn
void handle_no_conn() override
Definition: ColumnList_Base.cc:16
SWC::Comm::Event::Ptr
std::shared_ptr< Event > Ptr
Definition: Event.h:33
SWC::Comm::Protocol::Bkr::Req::ColumnList_Base::_bkr_idx
SWC::client::Brokers::BrokerIdx _bkr_idx
Definition: ColumnList_Base.h:48