SWC-DB  v0.5.11 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
BaseColumnMutable.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_db_client_Query_Update_Handlers_BaseColumnMutable_h
7 #define swcdb_db_client_Query_Update_Handlers_BaseColumnMutable_h
8 
9 
11 #include "swcdb/core/MutexSptd.h"
12 #include "swcdb/db/Cells/Mutable.h"
13 
14 
15 namespace SWC { namespace client { namespace Query { namespace Update {
16 
17 namespace Handlers {
18 
19 
20 class ColumnMutable : public Base::Column {
21  public:
22  typedef std::shared_ptr<ColumnMutable> Ptr;
23 
26 
29  uint32_t versions, uint32_t ttl_secs,
30  DB::Types::Column type)
31  : state_error(Error::OK),
32  cid(a_cid),
33  m_cells(seq, versions, uint64_t(ttl_secs) * 1000000000, type) {
34  }
35 
38  uint32_t versions, uint32_t ttl_secs,
39  DB::Types::Column type,
40  const StaticBuffer& buffer)
41  : state_error(Error::OK),
42  cid(a_cid),
43  m_cells(seq, versions, uint64_t(ttl_secs) * 1000000000, type, buffer) {
44  }
45 
46  ColumnMutable(const Column&) = delete;
47 
48  ColumnMutable(const Column&&) = delete;
49 
50  ColumnMutable& operator=(const Column&) = delete;
51 
52  virtual ~ColumnMutable() noexcept { }
53 
54  virtual void print(std::ostream& out) override;
55 
56  virtual cid_t get_cid() const noexcept override {
57  return cid;
58  }
59 
60  virtual DB::Types::KeySeq get_sequence() const noexcept override {
61  return m_cells.key_seq;
62  }
63 
64  virtual bool empty() noexcept override;
65 
66  virtual size_t size() noexcept override;
67 
68  virtual size_t size_bytes() noexcept override;
69 
70  virtual DB::Cell::Key::Ptr get_first_key() override;
71 
72  virtual DB::Cell::Key::Ptr get_key_next(const DB::Cell::Key& eval_key,
73  bool start_key=false) override;
74 
75  virtual size_t add(const DynamicBuffer& cells,
76  const DB::Cell::Key& upto_key,
77  const DB::Cell::Key& from_key,
78  uint32_t skip, bool malformed) override;
79 
80  virtual size_t add(const DynamicBuffer& cells,
81  bool finalized=false) override;
82 
83  virtual void add(const DB::Cells::Cell& cell,
84  bool finalized=false) override;
85 
86  virtual bool get_buff(const DB::Cell::Key& key_start,
87  const DB::Cell::Key& key_end,
88  size_t buff_sz, bool& more,
89  DynamicBuffer& cells_buff) override;
90 
91  virtual bool get_buff(size_t buff_sz, bool& more,
92  DynamicBuffer& cells_buff) override;
93 
94  virtual void error(int err) noexcept override {
95  int at = Error::OK;
97  }
98 
99  virtual int error() noexcept override {
100  return state_error;
101  }
102 
103  private:
106 };
107 
108 
109 
110 
111 }}}}}
112 
113 
114 #ifdef SWC_IMPL_SOURCE
116 #endif
117 
118 
119 #endif // swcdb_db_client_Query_Update_Handlers_BaseColumnMutable_h
SWC::client::Query::Update::Handlers::ColumnMutable::~ColumnMutable
virtual ~ColumnMutable() noexcept
Definition: BaseColumnMutable.h:52
SWC::Core::AtomicBase::compare_exchange_weak
constexpr SWC_CAN_INLINE bool compare_exchange_weak(T &at, T value) noexcept
Definition: Atomic.h:52
SWC::client::Query::Update::Handlers::ColumnMutable::ColumnMutable
ColumnMutable(const Column &&)=delete
SWC::client::Query::Update::Handlers::ColumnMutable::empty
virtual bool empty() noexcept override
Definition: BaseColumnMutable.cc:25
SWC::Core::Atomic< int >
SWC::client::Query::Update::Handlers::ColumnMutable::ColumnMutable
SWC_CAN_INLINE ColumnMutable(const cid_t a_cid, DB::Types::KeySeq seq, uint32_t versions, uint32_t ttl_secs, DB::Types::Column type)
Definition: BaseColumnMutable.h:28
SWC::client::Query::Update::Handlers::ColumnMutable::add
virtual size_t add(const DynamicBuffer &cells, const DB::Cell::Key &upto_key, const DB::Cell::Key &from_key, uint32_t skip, bool malformed) override
Definition: BaseColumnMutable.cc:60
SWC::client::Query::Update::Handlers::ColumnMutable::size_bytes
virtual size_t size_bytes() noexcept override
Definition: BaseColumnMutable.cc:35
SWC::DB::Types::Column
Column
Definition: Column.h:18
SWC::client::Query::Update::Handlers::ColumnMutable::operator=
ColumnMutable & operator=(const Column &)=delete
SWC::client::Query::Update::Handlers::ColumnMutable::size
virtual size_t size() noexcept override
Definition: BaseColumnMutable.cc:30
SWC::client::Query::Update::Handlers::ColumnMutable::cid
cid_t cid
Definition: BaseColumnMutable.h:25
SWC::client::Query::Update::Handlers::ColumnMutable::get_cid
virtual cid_t get_cid() const noexcept override
Definition: BaseColumnMutable.h:56
SWC::client::Query::Update::Handlers::ColumnMutable::get_first_key
virtual DB::Cell::Key::Ptr get_first_key() override
Definition: BaseColumnMutable.cc:40
SWC::client::Query::Update::Handlers::ColumnMutable::print
virtual void print(std::ostream &out) override
Definition: BaseColumnMutable.cc:16
SWC::DB::Types::KeySeq
KeySeq
Definition: KeySeq.h:13
SWC::client::Query::Update::Handlers::ColumnMutable::get_key_next
virtual DB::Cell::Key::Ptr get_key_next(const DB::Cell::Key &eval_key, bool start_key=false) override
Definition: BaseColumnMutable.cc:49
SWC::Error::OK
@ OK
Definition: Error.h:45
SWC_CAN_INLINE
#define SWC_CAN_INLINE
Definition: Compat.h:102
SWC::client::Query::Update::Handlers::ColumnMutable::ColumnMutable
ColumnMutable(const Column &)=delete
SWC
The SWC-DB C++ namespace 'SWC'.
Definition: main.cc:12
SWC::client::Query::Update::Handlers::ColumnMutable::error
virtual int error() noexcept override
Definition: BaseColumnMutable.h:99
SWC::Core::BufferDyn< StaticBuffer >
SWC::Core::Buffer
Definition: Buffer.h:18
SWC::client::Query::Update::Handlers::ColumnMutable::m_mutex
Core::MutexSptd m_mutex
Definition: BaseColumnMutable.h:104
SWC::client::Query::Update::Handlers::Base::Column
Definition: Base.h:30
BaseColumnMutable.cc
SWC::client::Query::Update::Handlers::Base::Column::Column
SWC_CAN_INLINE Column() noexcept
Definition: Base.h:35
SWC::client::Query::Update::Handlers::ColumnMutable::get_buff
virtual bool get_buff(const DB::Cell::Key &key_start, const DB::Cell::Key &key_end, size_t buff_sz, bool &more, DynamicBuffer &cells_buff) override
Definition: BaseColumnMutable.cc:83
SWC::cid_t
uint64_t cid_t
Definition: Identifiers.h:16
SWC::DB::Cells::Mutable::key_seq
const Types::KeySeq key_seq
Definition: Mutable.h:71
SWC::client::Query::Update::Handlers::ColumnMutable::m_cells
DB::Cells::Mutable m_cells
Definition: BaseColumnMutable.h:105
MutexSptd.h
SWC::client::Query::Update::Handlers::ColumnMutable::ColumnMutable
SWC_CAN_INLINE ColumnMutable(const cid_t a_cid, DB::Types::KeySeq seq, uint32_t versions, uint32_t ttl_secs, DB::Types::Column type, const StaticBuffer &buffer)
Definition: BaseColumnMutable.h:37
SWC::client::Query::Update::Handlers::ColumnMutable::state_error
Core::Atomic< int > state_error
Definition: BaseColumnMutable.h:24
Base.h
SWC::Core::MutexSptd
Definition: MutexSptd.h:16
SWC::client::Query::Update::Handlers::ColumnMutable::get_sequence
virtual DB::Types::KeySeq get_sequence() const noexcept override
Definition: BaseColumnMutable.h:60
SWC::client::Query::Update::Handlers::ColumnMutable
Definition: BaseColumnMutable.h:20
SWC::client::Query::Update::Handlers::ColumnMutable::Ptr
std::shared_ptr< ColumnMutable > Ptr
Definition: BaseColumnMutable.h:22
SWC::DB::Cells::Mutable
Definition: Mutable.h:21
Mutable.h