SWC-DB  v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
RangeIsLoaded.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_RangeIsLoaded_h
7 #define swcdb_db_protocol_rgr_params_RangeIsLoaded_h
8 
9 
11 
12 
13 namespace SWC { namespace Comm { namespace Protocol {
14 namespace Rgr { namespace Params {
15 
16 class RangeIsLoadedReq final : public Serializable {
17  public:
18 
20  RangeIsLoadedReq() noexcept : cid(0), rid(0) { }
21 
23  RangeIsLoadedReq(cid_t a_cid, rid_t a_rid) noexcept
24  : cid(a_cid), rid(a_rid) {
25  }
26 
27  //~RangeIsLoadedReq() { }
28 
31 
32  private:
33 
34  size_t internal_encoded_length() const override {
37  }
38 
39  void internal_encode(uint8_t** bufp) const override {
42  }
43 
44  void internal_decode(const uint8_t** bufp, size_t* remainp) override {
45  cid = Serialization::decode_vi64(bufp, remainp);
46  rid = Serialization::decode_vi64(bufp, remainp);
47  }
48 
49 };
50 
51 
52 class RangeIsLoadedRsp final : public Serializable {
53  public:
54 
55  enum Flags : uint8_t {
56  NONE = 0x00,
57  CAN_MERGE = 0x01
58  };
59 
61  RangeIsLoadedRsp(int a_err) noexcept
62  : err(a_err), flags(NONE) {
63  }
64 
65  //~RangeIsLoadedRsp() { }
66 
68  void can_be_merged() {
69  flags |= CAN_MERGE;
70  }
71 
72  int err;
73  uint8_t flags;
74 
75  private:
76 
77  size_t internal_encoded_length() const override {
78  return Serialization::encoded_length_vi32(err) + (err ? 0 : 1);
79  }
80 
81  void internal_encode(uint8_t** bufp) const override {
83  if(!err)
85  }
86 
87  void internal_decode(const uint8_t** bufp, size_t* remainp) override {
88  if(!(err = Serialization::decode_vi32(bufp, remainp)))
89  flags = Serialization::decode_i8(bufp, remainp);
90  }
91 
92 };
93 
94 }}}}}
95 
96 #endif // swcdb_db_protocol_rgr_params_RangeIsLoaded_h
SWC::Comm::Protocol::Rgr::Params::RangeIsLoadedRsp::can_be_merged
SWC_CAN_INLINE void can_be_merged()
Definition: RangeIsLoaded.h:68
SWC::Comm::Protocol::Rgr::Params::RangeIsLoadedReq::RangeIsLoadedReq
SWC_CAN_INLINE RangeIsLoadedReq(cid_t a_cid, rid_t a_rid) noexcept
Definition: RangeIsLoaded.h:23
SWC::Comm::Protocol::Rgr::Params::RangeIsLoadedRsp::internal_encode
void internal_encode(uint8_t **bufp) const override
Definition: RangeIsLoaded.h:81
SWC::Comm::Protocol::Rgr::Params::RangeIsLoadedRsp::internal_decode
void internal_decode(const uint8_t **bufp, size_t *remainp) override
Definition: RangeIsLoaded.h:87
SWC::Comm::Protocol::Rgr::Params::RangeIsLoadedReq::internal_decode
void internal_decode(const uint8_t **bufp, size_t *remainp) override
Definition: RangeIsLoaded.h:44
SWC::Comm::Protocol::Rgr::Params::RangeIsLoadedReq
Definition: RangeIsLoaded.h:16
SWC::Serialization::encoded_length_vi32
constexpr SWC_CAN_INLINE uint8_t encoded_length_vi32(uint32_t val) noexcept
Definition: Serialization.h:234
SWC::Serialization::encode_i8
constexpr SWC_CAN_INLINE void encode_i8(uint8_t **bufp, uint8_t val) noexcept
Definition: Serialization.h:85
SWC::Comm::Protocol::Rgr::Params::RangeIsLoadedRsp::RangeIsLoadedRsp
SWC_CAN_INLINE RangeIsLoadedRsp(int a_err) noexcept
Definition: RangeIsLoaded.h:61
SWC::Comm::Protocol::Rgr::Params::RangeIsLoadedReq::internal_encoded_length
size_t internal_encoded_length() const override
Definition: RangeIsLoaded.h:34
SWC::Comm::Protocol::Rgr::Params::RangeIsLoadedRsp::NONE
@ NONE
Definition: RangeIsLoaded.h:56
SWC_CAN_INLINE
#define SWC_CAN_INLINE
Definition: Compat.h:102
SWC::Comm::Protocol::Rgr::Params::RangeIsLoadedRsp::flags
uint8_t flags
Definition: RangeIsLoaded.h:73
SWC
The SWC-DB C++ namespace 'SWC'.
Definition: main.cc:12
SWC::Comm::Protocol::Rgr::Params::RangeIsLoadedReq::cid
cid_t cid
Definition: RangeIsLoaded.h:29
SWC::Comm::Protocol::Rgr::Params::RangeIsLoadedReq::RangeIsLoadedReq
SWC_CAN_INLINE RangeIsLoadedReq() noexcept
Definition: RangeIsLoaded.h:20
SWC::Comm::Serializable
Definition: Serializable.h:18
SWC::Serialization::encoded_length_vi64
constexpr SWC_CAN_INLINE uint8_t encoded_length_vi64(uint64_t val) noexcept
Definition: Serialization.h:272
Serializable.h
SWC::Comm::Protocol::Rgr::Params::RangeIsLoadedRsp
Definition: RangeIsLoaded.h:52
SWC::cid_t
uint64_t cid_t
Definition: Identifiers.h:16
SWC::Comm::Protocol::Rgr::Params::RangeIsLoadedRsp::internal_encoded_length
size_t internal_encoded_length() const override
Definition: RangeIsLoaded.h:77
SWC::Comm::Protocol::Rgr::Params::RangeIsLoadedRsp::CAN_MERGE
@ CAN_MERGE
Definition: RangeIsLoaded.h:57
SWC::Comm::Protocol::Rgr::Params::RangeIsLoadedReq::rid
rid_t rid
Definition: RangeIsLoaded.h:30
SWC::Comm::Protocol::Rgr::Params::RangeIsLoadedRsp::err
int err
Definition: RangeIsLoaded.h:72
SWC::Comm::Protocol::Rgr::Params::RangeIsLoadedRsp::Flags
Flags
Definition: RangeIsLoaded.h:55
SWC::Serialization::decode_vi64
constexpr SWC_CAN_INLINE uint64_t decode_vi64(const uint8_t **bufp, size_t *remainp)
Definition: Serialization.h:302
SWC::rid_t
uint64_t rid_t
Definition: Identifiers.h:17
SWC::Serialization::encode_vi32
constexpr SWC_CAN_INLINE void encode_vi32(uint8_t **bufp, uint32_t val)
Definition: Serialization.h:243
SWC::Serialization::encode_vi64
constexpr SWC_CAN_INLINE void encode_vi64(uint8_t **bufp, uint64_t val)
Definition: Serialization.h:286
SWC::Serialization::decode_i8
constexpr SWC_CAN_INLINE uint8_t decode_i8(const uint8_t **bufp, size_t *remainp)
Definition: Serialization.h:91
SWC::Comm::Protocol::Rgr::Params::RangeIsLoadedReq::internal_encode
void internal_encode(uint8_t **bufp) const override
Definition: RangeIsLoaded.h:39
SWC::Serialization::decode_vi32
constexpr SWC_CAN_INLINE uint32_t decode_vi32(const uint8_t **bufp, size_t *remainp)
Definition: Serialization.h:254