SWC-DB  v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
RangeUnoadForMerge.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 
7 
8 namespace SWC { namespace Comm { namespace Protocol {
9 namespace Rgr { namespace Req {
10 
11 
14  const Manager::Ranger::Ptr& a_rgr,
16  const Manager::Range::Ptr& a_range,
17  uint32_t timeout)
18  : client::ConnQueue::ReqBase(
19  Buffers::make(
20  Params::RangeUnload(
21  a_range->cfg->cid, a_range->rid,
22  Params::RangeUnload::Flag::CHECK_EMPTY),
23  0,
24  RANGE_UNLOAD, timeout
25  )
26  ),
27  rgr(a_rgr), merger(a_merger), range(a_range) {
28 }
29 
31  return merger->col_merger->col_checker->col->state()
33  !range->deleted() &&
35 }
36 
38  merger->handle(range, Error::COMM_NOT_CONNECTED, false);
39 }
40 
42  Params::RangeUnloadRsp rsp_params(
43  valid()
44  ? ev->error
48  if(!rsp_params.err) {
49  try {
50  const uint8_t *ptr = ev->data.base;
51  size_t remain = ev->data.size;
52  rsp_params.decode(&ptr, &remain);
53  } catch(...) {
56  rsp_params.err = e.code();
57  }
58  }
59  merger->handle(
60  range, rsp_params.err, rsp_params.flags & Params::RangeUnloadRsp::EMPTY);
61 }
62 
63 
64 
65 }}}}}
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::Manager::ColumnHealthCheck::ColumnMerger::RangesMerger::Ptr
std::shared_ptr< RangesMerger > Ptr
Definition: ColumnHealthCheck.h:87
SWC::Comm::Protocol::Rgr::Req::RangeUnoadForMerge::range
const Manager::Range::Ptr range
Definition: RangeUnoadForMerge.h:37
SWC::Error::SERVER_SHUTTING_DOWN
@ SERVER_SHUTTING_DOWN
Definition: Error.h:84
SWC_LOG_OUT
#define SWC_LOG_OUT(pr, _code_)
Definition: Logger.h:178
SWC::DB::Cells::Flag
Flag
Definition: Cell.h:60
SWC::client::Query::ReqBase
Comm::client::ConnQueue::ReqBase ReqBase
Definition: Profiling.h:21
SWC::Comm::Protocol::Rgr::Req::RangeUnoadForMerge::valid
bool valid() override
Definition: RangeUnoadForMerge.cc:30
SWC::Manager::Range::Ptr
std::shared_ptr< Range > Ptr
Definition: Range.h:24
SWC_CAN_INLINE
#define SWC_CAN_INLINE
Definition: Compat.h:102
SWC::Comm::Protocol::Rgr::Params::RangeUnloadRsp::flags
uint8_t flags
Definition: RangeUnload.h:80
SWC_CURRENT_EXCEPTION
#define SWC_CURRENT_EXCEPTION(_msg_)
Definition: Exception.h:119
SWC
The SWC-DB C++ namespace 'SWC'.
Definition: main.cc:12
SWC::Comm::Protocol::Rgr::Params::RangeUnloadRsp::err
int err
Definition: RangeUnload.h:79
SWC::Comm::Protocol::Rgr::RANGE_UNLOAD
@ RANGE_UNLOAD
Definition: Commands.h:32
SWC::Manager::Ranger::Ptr
std::shared_ptr< Ranger > Ptr
Definition: Ranger.h:21
SWC::Comm::Buffers
Definition: Buffers.h:20
SWC::LOG_ERROR
@ LOG_ERROR
Definition: Logger.h:32
SWC::Manager::Rangers::running
SWC_CAN_INLINE bool running() const noexcept
Definition: Rangers.h:40
SWC::Comm::Protocol::Rgr::Req::RangeUnoadForMerge::RangeUnoadForMerge
RangeUnoadForMerge(const Manager::Ranger::Ptr &rgr, const Manager::ColumnHealthCheck::ColumnMerger::RangesMerger::Ptr &merger, const Manager::Range::Ptr &range, uint32_t timeout=60000)
Definition: RangeUnoadForMerge.cc:13
SWC::Comm::Protocol::Rgr::Params::RangeUnloadRsp
Definition: RangeUnload.h:62
SWC::Error::COMM_NOT_CONNECTED
@ COMM_NOT_CONNECTED
Definition: Error.h:64
SWC::Comm::ConnHandlerPtr
std::shared_ptr< ConnHandler > ConnHandlerPtr
Definition: AppContext.h:17
SWC::Comm::Protocol::Rgr::Req::RangeUnoadForMerge::merger
const Manager::ColumnHealthCheck::ColumnMerger::RangesMerger::Ptr merger
Definition: RangeUnoadForMerge.h:36
SWC::Error::COLUMN_MARKED_REMOVED
@ COLUMN_MARKED_REMOVED
Definition: Error.h:102
SWC::Comm::Serializable::decode
void decode(const uint8_t **bufp, size_t *remainp)
Definition: Serializable.h:59
SWC::Comm::Protocol::Rgr::Params::RangeUnloadRsp::EMPTY
@ EMPTY
Definition: RangeUnload.h:67
SWC::DB::Types::MngrColumn::DELETED
@ DELETED
Definition: MngrColumnState.h:20
SWC::Comm::Protocol::Rgr::Req::RangeUnoadForMerge::handle_no_conn
void handle_no_conn() override
Definition: RangeUnoadForMerge.cc:37
SWC::Comm::Event::Ptr
std::shared_ptr< Event > Ptr
Definition: Event.h:33
SWC::Comm::Protocol::Rgr::Req::RangeUnload
Definition: RangeUnload.h:15
SWC::Comm::Protocol::Rgr::Req::RangeUnoadForMerge::handle
void handle(ConnHandlerPtr conn, const Event::Ptr &ev) override
Definition: RangeUnoadForMerge.cc:41
SWC::Error::Exception
Definition: Exception.h:21
SWC::Env::Mngr::rangers
static SWC_CAN_INLINE Manager::Rangers * rangers() noexcept
Definition: MngrEnv.h:69