SWC-DB  v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
ColumnUpdate.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_manager_Protocol_mngr_req_ColumnUpdate_h
7 #define swcdb_manager_Protocol_mngr_req_ColumnUpdate_h
8 
11 
12 namespace SWC { namespace Comm { namespace Protocol {
13 namespace Mngr { namespace Req {
14 
16  public:
17  typedef std::shared_ptr<ColumnUpdate> Ptr;
18 
21  const DB::Schema::Ptr& schema,
22  int err, uint64_t id)
23  : client::ConnQueue::ReqBase(
24  Buffers::make(
25  Params::ColumnUpdate(function, schema, err, id),
26  0,
27  COLUMN_UPDATE, 60000
28  )) {
29  }
30 
32  ColumnUpdate(cid_t cid_begin, cid_t cid_end, uint64_t total,
33  cids_t&& columns)
34  : client::ConnQueue::ReqBase(
35  Buffers::make(
36  Params::ColumnUpdate(
37  Params::ColumnMng::Function::INTERNAL_EXPECT,
38  cid_begin, cid_end, total, std::move(columns)
39  ),
40  0,
41  COLUMN_UPDATE, 60000
42  )
43  ) {
44  }
45 
47  ColumnUpdate(const ColumnUpdate&) = delete;
49  ColumnUpdate& operator=(const ColumnUpdate&) = delete;
50 
51  virtual ~ColumnUpdate() noexcept { }
52 
53  bool insistent() noexcept override { return true; }
54 
55  void handle_no_conn() override { }
56 
57  void handle(ConnHandlerPtr conn, const Event::Ptr& ev) override {
58  if(ev->response_code()) {
59  conn->do_close();
60  request_again();
61  }
62  }
63 
64 };
65 
66 }}}}}
67 
68 #endif // swcdb_manager_Protocol_mngr_req_ColumnUpdate_h
SWC::Comm::Protocol::Mngr::Req::ColumnUpdate::operator=
ColumnUpdate & operator=(const ColumnUpdate &)=delete
ColumnMng.h
SWC::DB::Schema::Ptr
std::shared_ptr< Schema > Ptr
Definition: Schema.h:185
SWC::client::Query::ReqBase
Comm::client::ConnQueue::ReqBase ReqBase
Definition: Profiling.h:21
SWC::Comm::Protocol::Mngr::Req::ColumnUpdate::ColumnUpdate
SWC_CAN_INLINE ColumnUpdate(cid_t cid_begin, cid_t cid_end, uint64_t total, cids_t &&columns)
Definition: ColumnUpdate.h:32
SWC::Comm::client::ConnQueueReqBase
Definition: ClientConnQueue.h:22
SWC::Comm::client::ConnQueueReqBase::request_again
void request_again()
Definition: ClientConnQueue.cc:12
SWC::Comm::Protocol::Mngr::Req::ColumnUpdate::ColumnUpdate
ColumnUpdate(const ColumnUpdate &)=delete
SWC::Comm::Protocol::Mngr::Req::ColumnUpdate
Definition: ColumnUpdate.h:15
SWC::Comm::Protocol::Mngr::Req::ColumnUpdate::~ColumnUpdate
virtual ~ColumnUpdate() noexcept
Definition: ColumnUpdate.h:51
SWC::Comm::Protocol::Mngr::Req::ColumnUpdate::ColumnUpdate
ColumnUpdate(ColumnUpdate &&)=delete
SWC_CAN_INLINE
#define SWC_CAN_INLINE
Definition: Compat.h:102
SWC
The SWC-DB C++ namespace 'SWC'.
Definition: main.cc:12
ColumnUpdate.h
SWC::Comm::Buffers
Definition: Buffers.h:20
SWC::Comm::Protocol::Mngr::Req::ColumnMng
Definition: ColumnMng.h:19
SWC::Comm::Protocol::Mngr::Params::Report::Function
Function
Definition: Report.h:26
SWC::Comm::Protocol::Mngr::Params::ColumnMng::Function
Function
Definition: ColumnMng.h:21
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::Mngr::Req::ColumnUpdate::ColumnUpdate
SWC_CAN_INLINE ColumnUpdate(Params::ColumnMng::Function function, const DB::Schema::Ptr &schema, int err, uint64_t id)
Definition: ColumnUpdate.h:20
SWC::Core::Vector< cid_t, cid_t >
SWC::Comm::Protocol::Mngr::Req::ColumnUpdate::handle
void handle(ConnHandlerPtr conn, const Event::Ptr &ev) override
Definition: ColumnUpdate.h:57
SWC::Comm::Event::Ptr
std::shared_ptr< Event > Ptr
Definition: Event.h:33
SWC::Comm::Protocol::Mngr::COLUMN_UPDATE
@ COLUMN_UPDATE
Definition: Commands.h:65
SWC::Comm::Protocol::Mngr::Req::ColumnUpdate::insistent
bool insistent() noexcept override
Definition: ColumnUpdate.h:53
SWC::Comm::Protocol::Mngr::Req::ColumnUpdate::handle_no_conn
void handle_no_conn() override
Definition: ColumnUpdate.h:55
id
uint32_t id
Request ID.
Definition: Header.h:57
SWC::Comm::Protocol::Mngr::Req::ColumnUpdate::operator=
ColumnUpdate & operator=(ColumnUpdate &&)=delete
SWC::Comm::Protocol::Mngr::Req::ColumnUpdate::Ptr
std::shared_ptr< ColumnUpdate > Ptr
Definition: ColumnUpdate.h:17