SWC-DB  v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
BrokerScanner.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_client_Query_Select_BrokerScanner_h
7 #define swcdb_db_client_Query_Select_BrokerScanner_h
8 
9 
12 
13 
14 namespace SWC { namespace client { namespace Query { namespace Select {
15 
16 
17 
18 class BrokerScanner : public std::enable_shared_from_this<BrokerScanner> {
19  public:
20 
22  static void execute(const Handlers::Base::Ptr& hdlr,
23  cid_t cid, const DB::Specs::Interval& intval) {
24  Ptr(new BrokerScanner(hdlr, intval, cid))->select();
25  }
26 
28  static void execute(const Handlers::Base::Ptr& hdlr,
29  cid_t cid, DB::Specs::Interval&& intval) {
30  Ptr(new BrokerScanner(hdlr, std::move(intval), cid))->select();
31  }
32 
33 
34  typedef std::shared_ptr<BrokerScanner> Ptr;
37  const cid_t cid;
38 
41  DB::Specs::Interval&& a_interval,
42  const cid_t a_cid) noexcept
43  : selector(hdlr),
44  interval(std::move(a_interval)), cid(a_cid) {
45  }
46 
49  const DB::Specs::Interval& a_interval,
50  const cid_t a_cid)
51  : selector(hdlr),
52  interval(a_interval), cid(a_cid) {
53  }
54 
55  ~BrokerScanner() noexcept;
56 
57  void print(std::ostream& out);
58 
59  private:
60 
61  void select();
62 
63  void selected(const ReqBase::Ptr& req,
64  Comm::Protocol::Bkr::Params::CellsSelectRsp& rsp);
65 
66 };
67 
68 
69 }}}}
70 
71 
72 #ifdef SWC_IMPL_SOURCE
74 #endif
75 
76 
77 #endif // swcdb_db_client_Query_Select_BrokerScanner_h
SWC::client::Query::Select::BrokerScanner::BrokerScanner
SWC_CAN_INLINE BrokerScanner(const Handlers::Base::Ptr &hdlr, const DB::Specs::Interval &a_interval, const cid_t a_cid)
Definition: BrokerScanner.h:48
SWC::client::Query::Select::BrokerScanner::~BrokerScanner
~BrokerScanner() noexcept
Definition: BrokerScanner.cc:25
Base.h
SWC::client::Query::Select::BrokerScanner::selected
void selected(const ReqBase::Ptr &req, Comm::Protocol::Bkr::Params::CellsSelectRsp &rsp)
Definition: BrokerScanner.cc:66
SWC::Comm::client::ConnQueueReqBase
Definition: ClientConnQueue.h:22
SWC::client::Query::Select::BrokerScanner::Ptr
std::shared_ptr< BrokerScanner > Ptr
Definition: BrokerScanner.h:34
SWC::client::Query::Select::BrokerScanner::selector
Handlers::Base::Ptr selector
Definition: BrokerScanner.h:35
SWC::client::Query::Select::BrokerScanner::print
void print(std::ostream &out)
Definition: BrokerScanner.cc:27
SWC_CAN_INLINE
#define SWC_CAN_INLINE
Definition: Compat.h:102
SWC
The SWC-DB C++ namespace 'SWC'.
Definition: main.cc:12
SWC::client::Query::Select::BrokerScanner
Definition: BrokerScanner.h:18
SWC::client::Query::Select::BrokerScanner::BrokerScanner
SWC_CAN_INLINE BrokerScanner(const Handlers::Base::Ptr &hdlr, DB::Specs::Interval &&a_interval, const cid_t a_cid) noexcept
Definition: BrokerScanner.h:40
SWC::client::Query::Select::BrokerScanner::cid
const cid_t cid
Definition: BrokerScanner.h:37
SWC::client::Query::Select::BrokerScanner::execute
static SWC_CAN_INLINE void execute(const Handlers::Base::Ptr &hdlr, cid_t cid, DB::Specs::Interval &&intval)
Definition: BrokerScanner.h:28
CellsSelect.h
SWC::cid_t
uint64_t cid_t
Definition: Identifiers.h:16
SWC::client::Query::Select::Handlers::Base::Ptr
std::shared_ptr< Base > Ptr
Definition: Base.h:28
SWC::DB::Specs::Interval
Definition: SpecsInterval.h:25
SWC::client::Query::Select::BrokerScanner::interval
DB::Specs::Interval interval
Definition: BrokerScanner.h:36
BrokerScanner.cc
SWC::client::Query::Select::BrokerScanner::execute
static SWC_CAN_INLINE void execute(const Handlers::Base::Ptr &hdlr, cid_t cid, const DB::Specs::Interval &intval)
Definition: BrokerScanner.h:22
SWC::client::Query::Select::BrokerScanner::select
void select()
Definition: BrokerScanner.cc:34