SWC-DB  v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
RangeUnload.cc
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 
10 
11 
12 namespace SWC { namespace Comm { namespace Protocol {
13 namespace Rgr { namespace Req {
14 
15 
19  uint32_t timeout)
20  : client::ConnQueue::ReqBase(
21  Buffers::make(
22  Params::RangeUnload(a_range->cfg->cid, a_range->rid),
23  0,
24  RANGE_UNLOAD, timeout)
25  ),
26  req(a_req), range(a_range) {
27 }
28 
31  if(!rsp_params.err) {
32  try {
33  const uint8_t *ptr = ev->data.base;
34  size_t remain = ev->data.size;
35  rsp_params.decode(&ptr, &remain);
36  } catch(...) {
39  rsp_params.err = e.code();
40  }
41  }
42  unloaded(rsp_params.err);
43 }
44 
45 bool RangeUnload::valid() {
46  return !range->deleted() &&
47  !range->state_unloading();
48 }
49 
52 }
53 
54 void RangeUnload::unloaded(int err) {
55  range->internal_take_ownership(err, req);
56 }
57 
58 }}}}}
SWC::Error::Exception::code
constexpr SWC_CAN_INLINE int code() const noexcept
Definition: Exception.h:51
SWC_LOG_OSTREAM
#define SWC_LOG_OSTREAM
Definition: Logger.h:44
RangeUnload.h
SWC_LOG_OUT
#define SWC_LOG_OUT(pr, _code_)
Definition: Logger.h:178
RangeUnload.h
SWC::client::Query::ReqBase
Comm::client::ConnQueue::ReqBase ReqBase
Definition: Profiling.h:21
SWC::Comm::Protocol::Rgr::Req::RangeUnload::handle_no_conn
void handle_no_conn() override
Definition: RangeUnload.cc:37
SWC::Comm::Protocol::Rgr::Req::RangeUnload::range
const Manager::Range::Ptr range
Definition: RangeUnload.h:39
SWC::Error::RGR_DELETED_RANGE
@ RGR_DELETED_RANGE
Definition: Error.h:92
SWC::Comm::Protocol::Rgr::Req::RangeUnload::handle
void handle(ConnHandlerPtr conn, const Event::Ptr &ev) override
Definition: RangeUnload.cc:41
SWC::Error::OK
@ OK
Definition: Error.h:45
SWC::Ranger::RangePtr
std::shared_ptr< Range > RangePtr
Definition: Columns.h:15
SWC_CAN_INLINE
#define SWC_CAN_INLINE
Definition: Compat.h:102
SWC_CURRENT_EXCEPTION
#define SWC_CURRENT_EXCEPTION(_msg_)
Definition: Exception.h:119
SWC::Comm::Protocol::Rgr::Req::RangeUnload::valid
bool valid() override
Definition: RangeUnload.cc:31
SWC
The SWC-DB C++ namespace 'SWC'.
Definition: main.cc:12
SWC::Comm::Protocol::Rgr::RANGE_UNLOAD
@ RANGE_UNLOAD
Definition: Commands.h:32
SWC::Comm::Buffers
Definition: Buffers.h:20
Commands.h
SWC::LOG_ERROR
@ LOG_ERROR
Definition: Logger.h:32
SWC::Comm::Protocol::Rgr::Params::RangeUnloadRsp
Definition: RangeUnload.h:62
SWC::Comm::ConnHandlerPtr
std::shared_ptr< ConnHandler > ConnHandlerPtr
Definition: AppContext.h:17
SWC::Comm::Protocol::Rgr::Req::RangeUnload::req
Ranger::Callback::RangeLoad::Ptr req
Definition: RangeUnload.h:35
SWC::Comm::Protocol::Rgr::Req::RangeUnload::RangeUnload
RangeUnload(const Manager::Ranger::Ptr &rgr, const Manager::Column::Ptr &col, const Manager::Range::Ptr &range, bool ignore_error=false, uint32_t timeout=60000)
Definition: RangeUnload.cc:15
SWC::Ranger::Callback::RangeLoad::Ptr
std::shared_ptr< RangeLoad > Ptr
Definition: RangeLoad.h:16
SWC::Comm::Protocol::Rgr::Req::RangeUnload::unloaded
void unloaded(int err)
Definition: RangeUnload.cc:61
SWC::Comm::Event::Ptr
std::shared_ptr< Event > Ptr
Definition: Event.h:33
SWC::Comm::Protocol::Rgr::Req::RangeUnload
Definition: RangeUnload.h:15
SWC::Error::Exception
Definition: Exception.h:21