SWC-DB  v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
ColumnCompact_Sync.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_ColumnCompact_Sync_h
7 #define swcdb_db_protocol_bkr_req_ColumnCompact_Sync_h
8 
9 
12 
13 
14 namespace SWC { namespace Comm { namespace Protocol {
15 namespace Bkr { namespace Req {
16 
17 
19  public:
20 
21  template<typename... DataArgsT>
23  static std::shared_ptr<ColumnCompact<ColumnCompact_Sync>>
25  const uint32_t timeout,
26  DataArgsT&&... args) {
27  return ColumnCompact<ColumnCompact_Sync>::make(params, timeout, args...);
28  }
29 
30  template<typename... DataArgsT>
32  static void request(const Mngr::Params::ColumnCompactReq& params,
33  const uint32_t timeout,
34  DataArgsT&&... args) {
35  auto req = make(params, timeout, args...);
36  req->run();
37  req->data.await.wait();
38  }
39 
40  template<typename... DataArgsT>
42  static void request(cid_t cid,
43  const uint32_t timeout,
44  DataArgsT&&... args) {
45  request(Mngr::Params::ColumnCompactReq(cid), timeout, args...);
46  }
47 
49 
52  int& a_err) noexcept
53  : await(),
54  clients(a_clients), err(a_err) {
55  }
56 
57  ~ColumnCompact_Sync() noexcept { }
58 
61  return clients;
62  }
63 
65  bool valid() {
66  return true;
67  }
68 
71  const Mngr::Params::ColumnCompactRsp& rsp) {
72  err = rsp.err;
74  }
75 
76  private:
78  int& err;
79 
80 };
81 
82 
83 
84 }}}}}
85 
86 
87 
88 #endif // swcdb_db_protocol_bkr_req_ColumnCompact_Sync_h
StateSynchronization.h
SWC::Comm::Protocol::Bkr::Req::ColumnCompact_Sync::valid
SWC_CAN_INLINE bool valid()
Definition: ColumnCompact_Sync.h:65
SWC::Comm::Protocol::Bkr::Req::ColumnCompact_Sync::clients
SWC::client::Clients::Ptr clients
Definition: ColumnCompact_Sync.h:77
SWC::Comm::Protocol::Bkr::Req::ColumnCompact_Sync
Definition: ColumnCompact_Sync.h:18
SWC::client::Clients::Ptr
ClientsPtr Ptr
Definition: Clients.h:58
SWC::Comm::Protocol::Bkr::Req::ColumnCompact_Sync::err
int & err
Definition: ColumnCompact_Sync.h:78
SWC::Comm::Protocol::Bkr::Req::ColumnCompact_Sync::make
static SWC_CAN_INLINE std::shared_ptr< ColumnCompact< ColumnCompact_Sync > > make(const Mngr::Params::ColumnCompactReq &params, const uint32_t timeout, DataArgsT &&... args)
Definition: ColumnCompact_Sync.h:24
SWC::Comm::Protocol::Bkr::Req::ColumnCompact_Sync::request
static SWC_CAN_INLINE void request(const Mngr::Params::ColumnCompactReq &params, const uint32_t timeout, DataArgsT &&... args)
Definition: ColumnCompact_Sync.h:32
ColumnCompact.h
SWC::Comm::Protocol::Bkr::Req::ColumnCompact_Sync::get_clients
SWC_CAN_INLINE SWC::client::Clients::Ptr & get_clients() noexcept
Definition: ColumnCompact_Sync.h:60
SWC::Comm::Protocol::Bkr::Req::ColumnCompact_Sync::ColumnCompact_Sync
SWC_CAN_INLINE ColumnCompact_Sync(const SWC::client::Clients::Ptr &a_clients, int &a_err) noexcept
Definition: ColumnCompact_Sync.h:51
SWC::Comm::Protocol::Mngr::Params::ColumnCompactRsp
Definition: ColumnCompact.h:42
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::ColumnCompact::make
static SWC_CAN_INLINE Ptr make(const Mngr::Params::ColumnCompactReq &params, const uint32_t timeout, DataArgsT &&... args)
Definition: ColumnCompact.h:27
SWC::Comm::Protocol::Bkr::Req::ColumnCompact_Sync::request
static SWC_CAN_INLINE void request(cid_t cid, const uint32_t timeout, DataArgsT &&... args)
Definition: ColumnCompact_Sync.h:42
SWC::cid_t
uint64_t cid_t
Definition: Identifiers.h:16
SWC::Comm::Protocol::Bkr::Req::ColumnCompact_Sync::await
Core::StateSynchronization await
Definition: ColumnCompact_Sync.h:48
SWC::Comm::Protocol::Bkr::Req::ColumnCompact_Sync::~ColumnCompact_Sync
~ColumnCompact_Sync() noexcept
Definition: ColumnCompact_Sync.h:57
SWC::Comm::Protocol::Mngr::Params::ColumnCompactRsp::err
int err
Definition: ColumnCompact.h:52
SWC::Core::StateSynchronization
Definition: StateSynchronization.h:16
SWC::Core::StateSynchronization::acknowledge
SWC_CAN_INLINE void acknowledge() noexcept
Definition: StateSynchronization.h:31
SWC::Comm::client::ConnQueueReqBase::Ptr
std::shared_ptr< ConnQueueReqBase > Ptr
Definition: ClientConnQueue.h:25
SWC::Comm::Protocol::Bkr::Req::ColumnCompact_Sync::callback
SWC_CAN_INLINE void callback(const client::ConnQueue::ReqBase::Ptr &, const Mngr::Params::ColumnCompactRsp &rsp)
Definition: ColumnCompact_Sync.h:70
SWC::Comm::Protocol::Mngr::Params::ColumnCompactReq
Definition: ColumnCompact.h:18