SWC-DB  v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
RangeLoad.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_protocol_rgr_params_RangeLoad_h
7 #define swcdb_db_protocol_rgr_params_RangeLoad_h
8 
9 
11 
12 
13 namespace SWC { namespace Comm { namespace Protocol {
14 namespace Rgr { namespace Params {
15 
16 
17 class RangeLoad final : public Serializable {
18  public:
19 
21  RangeLoad() noexcept : schema_primitives(), rid(0) { }
22 
24  RangeLoad(const DB::Schema::Ptr& schema, rid_t a_rid) noexcept
25  : schema_primitives(*schema.get()), rid(a_rid) {
26  }
27 
28  //~RangeLoad() { }
29 
32 
33  private:
34 
35  size_t internal_encoded_length() const override {
38  }
39 
40  void internal_encode(uint8_t** bufp) const override {
43  }
44 
45  void internal_decode(const uint8_t** bufp, size_t* remainp) override {
46  schema_primitives.decode(bufp, remainp);
47  rid = Serialization::decode_vi64(bufp, remainp);
48  }
49 
50 };
51 
52 
53 
54 class RangeLoaded final : public Serializable {
55  public:
56 
58  RangeLoaded(const DB::Types::KeySeq key_seq, int64_t a_revision=0) noexcept
59  : intval(false), interval(key_seq), revision(a_revision) {
60  }
61 
63  ~RangeLoaded() noexcept { }
64 
65  bool intval;
67  int64_t revision;
68 
69  private:
70 
71  size_t internal_encoded_length() const override {
72  return 1 + (intval ? interval.encoded_length() : 0) +
74  }
75 
76  void internal_encode(uint8_t** bufp) const override {
78  if(intval)
79  interval.encode(bufp);
81  }
82 
83  void internal_decode(const uint8_t** bufp, size_t* remainp) override {
84  if((intval = Serialization::decode_bool(bufp, remainp)))
85  interval.decode(bufp, remainp, false);
86  revision = Serialization::decode_vi64(bufp, remainp);
87  }
88 
89 };
90 
91 }}}}}
92 
93 #endif // swcdb_db_protocol_rgr_params_RangeLoad_h
SWC::DB::Cells::Interval::encoded_length
size_t SWC_PURE_FUNC encoded_length() const noexcept
Definition: Interval.cc:117
SWC::Comm::Protocol::Rgr::Params::RangeLoaded::RangeLoaded
SWC_CAN_INLINE RangeLoaded(const DB::Types::KeySeq key_seq, int64_t a_revision=0) noexcept
Definition: RangeLoad.h:58
SWC::Comm::Protocol::Rgr::Params::RangeLoaded::interval
DB::Cells::Interval interval
Definition: RangeLoad.h:66
SWC::Comm::Protocol::Rgr::Params::RangeLoaded::internal_encode
void internal_encode(uint8_t **bufp) const override
Definition: RangeLoad.h:76
SWC::DB::Schema::Ptr
std::shared_ptr< Schema > Ptr
Definition: Schema.h:185
SWC::DB::SchemaPrimitives::encode
SWC_CAN_INLINE void encode(uint8_t **bufp) const
Definition: Schema.h:100
SWC::Comm::Protocol::Rgr::Params::RangeLoad::rid
rid_t rid
Definition: RangeLoad.h:31
SWC::DB::Cells::Interval::encode
void encode(uint8_t **ptr) const
Definition: Interval.cc:126
SWC::DB::SchemaPrimitives
Definition: Schema.h:23
SWC::DB::Cells::Interval::decode
void decode(const uint8_t **ptr, size_t *remain, bool owner)
Definition: Interval.cc:135
SWC::Comm::Protocol::Rgr::Params::RangeLoad
Definition: RangeLoad.h:17
SWC::Comm::Protocol::Rgr::Params::RangeLoaded::internal_encoded_length
size_t internal_encoded_length() const override
Definition: RangeLoad.h:71
SWC::Serialization::encode_bool
constexpr SWC_CAN_INLINE void encode_bool(uint8_t **bufp, bool bval) noexcept
Definition: Serialization.h:102
SWC::DB::Types::KeySeq
KeySeq
Definition: KeySeq.h:13
SWC::Comm::Protocol::Rgr::Params::RangeLoaded::~RangeLoaded
SWC_CAN_INLINE ~RangeLoaded() noexcept
Definition: RangeLoad.h:63
SWC_CAN_INLINE
#define SWC_CAN_INLINE
Definition: Compat.h:102
SWC
The SWC-DB C++ namespace 'SWC'.
Definition: main.cc:12
SWC::Serialization::decode_bool
constexpr SWC_CAN_INLINE bool decode_bool(const uint8_t **bufp, size_t *remainp)
Definition: Serialization.h:107
SWC::Comm::Serializable
Definition: Serializable.h:18
SWC::Comm::Protocol::Rgr::Params::RangeLoaded::internal_decode
void internal_decode(const uint8_t **bufp, size_t *remainp) override
Definition: RangeLoad.h:83
SWC::Serialization::encoded_length_vi64
constexpr SWC_CAN_INLINE uint8_t encoded_length_vi64(uint64_t val) noexcept
Definition: Serialization.h:272
SWC::Comm::Protocol::Rgr::Params::RangeLoad::schema_primitives
DB::SchemaPrimitives schema_primitives
Definition: RangeLoad.h:30
Serializable.h
SWC::Comm::Protocol::Rgr::Params::RangeLoaded::intval
bool intval
Definition: RangeLoad.h:65
SWC::Comm::Protocol::Rgr::Params::RangeLoad::internal_encoded_length
size_t internal_encoded_length() const override
Definition: RangeLoad.h:35
SWC::DB::SchemaPrimitives::decode
SWC_CAN_INLINE void decode(const uint8_t **bufp, size_t *remainp)
Definition: Schema.h:120
SWC::Serialization::decode_vi64
constexpr SWC_CAN_INLINE uint64_t decode_vi64(const uint8_t **bufp, size_t *remainp)
Definition: Serialization.h:302
SWC::Comm::Protocol::Rgr::Params::RangeLoad::internal_encode
void internal_encode(uint8_t **bufp) const override
Definition: RangeLoad.h:40
SWC::rid_t
uint64_t rid_t
Definition: Identifiers.h:17
SWC::Comm::Protocol::Rgr::Params::RangeLoad::RangeLoad
SWC_CAN_INLINE RangeLoad(const DB::Schema::Ptr &schema, rid_t a_rid) noexcept
Definition: RangeLoad.h:24
SWC::Serialization::encode_vi64
constexpr SWC_CAN_INLINE void encode_vi64(uint8_t **bufp, uint64_t val)
Definition: Serialization.h:286
SWC::DB::SchemaPrimitives::encoded_length
SWC_CAN_INLINE uint32_t encoded_length() const noexcept
Definition: Schema.h:88
SWC::DB::Cells::Interval
Definition: Interval.h:17
SWC::Comm::Protocol::Rgr::Params::RangeLoaded::revision
int64_t revision
Definition: RangeLoad.h:67
SWC::Comm::Protocol::Rgr::Params::RangeLoad::internal_decode
void internal_decode(const uint8_t **bufp, size_t *remainp) override
Definition: RangeLoad.h:45
SWC::Comm::Protocol::Rgr::Params::RangeLoad::RangeLoad
SWC_CAN_INLINE RangeLoad() noexcept
Definition: RangeLoad.h:21
SWC::Comm::Protocol::Rgr::Params::RangeLoaded
Definition: RangeLoad.h:54