|
SWC-DB
v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
|
Go to the documentation of this file.
6 #ifndef swcdb_ranger_callbacks_RangeLocateScan_h
7 #define swcdb_ranger_callbacks_RangeLocateScan_h
12 namespace SWC {
namespace Ranger {
namespace Callback {
18 typedef std::shared_ptr<RangeLocateScan>
Ptr;
29 a_range_begin, a_range_end,
30 a_range->cfg->block_size()
36 auto c =
range->known_interval_count();
80 const uint8_t* ptr = v.
base;
81 size_t remain = v.
size;
85 key_end.
decode(&ptr, &remain,
false);
99 dekey.
decode(&ptr, &remain,
false);
110 dekey.
decode(&ptr, &remain,
false);
119 uint8_t after_idx =
range->cfg->range_type == DB::Types::Range::MASTER;
134 params.
cid = strtoull(id_name.c_str(),
nullptr, 0);
145 else if(
range->deleted())
155 <<
"Range(" <<
range->cfg->cid <<
'/' <<
range->rid <<
") ";
159 spec.print(SWC_LOG_OSTREAM <<
' ');
160 range_begin.print(SWC_LOG_OSTREAM <<
" range_begin=");
165 range->issue_unload();
179 #endif // swcdb_ranger_callbacks_RangeLocateScan_h
SWC_CAN_INLINE std::string get_string(uint32_t idx) const
bool selector(const DB::Types::KeySeq key_seq, const DB::Cells::Cell &cell, bool &stop) override
bool is_matching_end(const Types::KeySeq key_seq, const DB::Cell::Key &key) const
std::shared_ptr< RangeLocateScan > Ptr
#define SWC_LOG_OUT(pr, _code_)
void print(std::ostream &out) const
static const uint8_t NEXT_RANGE
bool reached_limits() override
void decode(const uint8_t **bufp, size_t *remainp, bool owner)
void print(std::ostream &out) const
constexpr SWC_CAN_INLINE bool empty() const noexcept
static const uint8_t RANGE_END_REST
std::shared_ptr< Range > RangePtr
DB::Cell::Key range_begin
SWC_CAN_INLINE void finished()
The SWC-DB C++ namespace 'SWC'.
Condition::Comp compare_upto(const Types::KeySeq seq, const Cell::Key &key, const Cell::Key &other, uint24_t max) SWC_ATTRIBS((SWC_ATTRIB_O3))
void response(int &err) override
Types::Encoder get_value(StaticBuffer &v, bool owner) const
void copy(const Key &other)
const DB::Cell::Key range_begin
bool is_matching_begin(const Types::KeySeq key_seq, const DB::Cell::Key &key) const
SWC_CAN_INLINE RangeLocateScan(const Comm::ConnHandlerPtr &conn, const Comm::Event::Ptr &ev, const DB::Cell::Key &a_range_begin, const DB::Cell::Key &a_range_end, const RangePtr &a_range, uint8_t a_flags)
constexpr SWC_CAN_INLINE void set_opt__range_end_rest() noexcept
std::shared_ptr< ConnHandler > ConnHandlerPtr
constexpr SWC_CAN_INLINE size_t encoded_length(bool no_value=false) const noexcept
static SWC_CAN_INLINE Ptr make(uint32_t reserve=0)
SWC_CAN_INLINE void skip_type_and_id(const uint8_t **bufp, size_t *remainp)
static SWC_CAN_INLINE bool is_shuttingdown() noexcept
static const uint8_t KEY_EQUAL
constexpr SWC_CAN_INLINE uint64_t decode_vi64(const uint8_t **bufp, size_t *remainp)
Comm::Protocol::Rgr::Params::RangeLocateRsp params
std::shared_ptr< Event > Ptr
void remove(uint32_t idx, bool recursive=false)
virtual ~RangeLocateScan() noexcept
constexpr SWC_CAN_INLINE void set_opt__key_equal() noexcept
bool add_cell_and_more(const DB::Cells::Cell &cell) override
SWC_CAN_INLINE void add_cell(uint32_t bytes) noexcept
static const uint8_t CURRENT_RANGE
Condition::Comp compare(const Types::KeySeq seq, const Cell::Key &key, const Cell::Key &other) SWC_ATTRIBS((SWC_ATTRIB_O3))