 |
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.
7 #ifndef swcdb_db_Columns_RgrData_h
8 #define swcdb_db_Columns_RgrData_h
20 namespace SWC {
namespace DB {
27 typedef std::shared_ptr<RgrData>
Ptr;
41 void encode(uint8_t** bufp)
const noexcept {
46 void decode(
const uint8_t *ptr,
size_t remain) {
68 uint8_t* ptr = buff.
base;
90 hdlr->set_rgr(*
this, cid, rid);
102 hdlr->remove_rgr(cid, rid);
123 DB::Types::KeySeq::VOLUME,
134 hdlr->get_cells(cells);
141 auto& col = hdlr->create(
143 DB::Types::KeySeq::VOLUME, 1, 0, DB::Types::Column::PLAIN
145 for(
auto cell : cells) {
148 hdlr->commit_or_wait(col.get());
150 hdlr->commit_if_need();
156 cid, cells.size(), err
167 typedef std::shared_ptr<BaseUpdater>
Ptr;
173 DB::Types::
KeySeq::VOLUME,
174 1, 0, DB::Types::
Column::PLAIN) {
187 virtual bool valid() noexcept
override {
219 typedef std::shared_ptr<SyncUpdater>
Ptr;
239 typedef std::shared_ptr<BaseSelector>
Ptr;
247 Env::Clients::get(), DB::Types::SystemColumn::
SYS_RGR_DATA) {
273 DB::Types::KeySeq::VOLUME,
302 typedef std::shared_ptr<SyncSelector>
Ptr;
322 hdlr->scan(cid, rid);
324 if((err = hdlr->error()))
326 hdlr->get_rgr(err,
data);
332 data.endpoints.clear();
344 #endif // swcdb_db_Columns_RgrData_h
SyncSelector & operator=(const SyncSelector &)=delete
uint32_t encoded_length() const noexcept
virtual ~SyncUpdater() noexcept
constexpr SWC_CAN_INLINE bool compare_exchange_weak(T &at, T value) noexcept
SWC_CAN_INLINE void set_value(uint8_t *v, uint32_t len, bool owner)
virtual ~BaseUpdater() noexcept
KeyIntervals key_intervals
SyncUpdater & operator=(const SyncUpdater &)=delete
static SWC_CAN_INLINE client::Clients::Ptr & get() noexcept
#define SWC_LOGF(priority, fmt,...)
std::shared_ptr< SyncSelector > Ptr
virtual void callback()=0
virtual bool valid() noexcept override
virtual void get_cells(DB::Cells::Result &cells)
bool valid() noexcept override
void response(int err=Error::OK) override
SWC_CAN_INLINE SyncSelector() noexcept
Core::Atomic< rgrid_t > rgrid
void print(std::ostream &out)
virtual bool empty() noexcept override
SWC_CAN_INLINE uint8_t encoded_length(const Comm::EndPoint &endpoint) noexcept
virtual ~BaseSelector() noexcept
SWC_CAN_INLINE void scan(const DB::Schema::Ptr &schema, const DB::Specs::Interval &intval)
void decode(const uint8_t *ptr, size_t remain)
void print(std::ostream &out, const EndPoints &endpoints)
void encode(uint8_t **bufp, const Comm::EndPoint &endpoint)
SWC_CAN_INLINE void add(const std::string_view &fraction)
static SWC_CAN_INLINE Ptr make(const Clients::Ptr &clients, Cb_t &&cb=nullptr, const Comm::IoContextPtr &io=nullptr, Clients::Flag executor=Clients::DEFAULT)
constexpr SWC_CAN_INLINE void set_only_keys() noexcept
void set_rgr(const RgrData &data, cid_t cid, rid_t rid) noexcept
constexpr SWC_CAN_INLINE void store(T v) noexcept
static void remove(int &err, cid_t cid) noexcept
std::shared_ptr< BaseUpdater > Ptr
std::shared_ptr< BaseSelector > Ptr
SWC_CAN_INLINE RgrData() noexcept
std::shared_ptr< SyncUpdater > Ptr
#define SWC_CURRENT_EXCEPTION(_msg_)
SyncSelector(const SyncSelector &)=delete
The SWC-DB C++ namespace 'SWC'.
Core::CompletionCounter< uint64_t > completion
static void set_delete_cell(cid_t cid, rid_t rid, client::Query::Update::Handlers::Base::Column *colp) noexcept
static void remove(int &err, cid_t cid, rid_t rid) noexcept
Core::StateSynchronization await
SyncUpdater(SyncUpdater &&)=delete
SWC_CAN_INLINE void finished() noexcept
constexpr SWC_CAN_INLINE void set_time_order_desc(bool desc) noexcept
constexpr SWC_CAN_INLINE uint8_t encoded_length_vi64(uint64_t val) noexcept
void get_rgr(int &err, DB::RgrData &data) noexcept
SyncSelector & operator=(SyncSelector &&)=delete
SWC_CAN_INLINE BaseSelector()
SWC_CAN_INLINE BaseSingleColumn(const Clients::Ptr &a_clients, const cid_t a_cid, Clients::Flag a_executor=Clients::DEFAULT) noexcept
virtual int error() noexcept
void encode(uint8_t **bufp) const noexcept
virtual void callback()=0
std::shared_ptr< RgrData > Ptr
constexpr SWC_CAN_INLINE T load() const noexcept
Comm::EndPoint decode(const uint8_t **bufp, size_t *remainp)
constexpr SWC_CAN_INLINE uint64_t decode_vi64(const uint8_t **bufp, size_t *remainp)
SyncUpdater & operator=(SyncUpdater &&)=delete
SyncSelector(SyncSelector &&)=delete
void response(int err) override
void scan(cid_t a_cid, rid_t a_rid)
Core::Atomic< int > state_error
Core::StateSynchronization await
Comm::EndPoints endpoints
void remove_rgr(cid_t cid, rid_t rid) noexcept
constexpr SWC_CAN_INLINE void encode_vi64(uint8_t **bufp, uint64_t val)
SWC_CAN_INLINE void acknowledge() noexcept
SyncUpdater(const SyncUpdater &)=delete
constexpr SWC_CAN_INLINE bool is_last() noexcept
virtual ~SyncSelector() noexcept
SWC_CAN_INLINE std::string to_string(const BitFieldInt< T, SZ > &v)
SWC_CAN_INLINE SyncUpdater() noexcept
SWC_CAN_INLINE BaseSingleColumn(const Clients::Ptr &a_clients, const cid_t cid, DB::Types::KeySeq seq, uint32_t versions, uint32_t ttl_secs, DB::Types::Column type, Clients::Flag a_executor=Clients::DEFAULT)
static void get_rgr(const SyncSelector::Ptr &hdlr, RgrData &data, cid_t cid, rid_t rid) noexcept
void set_rgr(int &err, cid_t cid, rid_t rid) noexcept
void set_insert_cell(cid_t cid, rid_t rid, client::Query::Update::Handlers::Base::Column *colp) const noexcept
virtual bool requires_commit() noexcept override
SWC_CAN_INLINE void reserve(size_type cap)