SWC-DB  v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
RangeUnload.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_RangeUnoad_h
7 #define swcdb_db_protocol_rgr_params_RangeUnoad_h
8 
9 
11 
12 
13 namespace SWC { namespace Comm { namespace Protocol {
14 namespace Rgr { namespace Params {
15 
16 
17 class RangeUnload final : public Serializable {
18  public:
19 
20  enum Flag : uint8_t {
21  NONE = 0x00,
22  CHECK_EMPTY = 0x01
23  };
24 
26  RangeUnload() noexcept : cid(0), rid(0), flags(NONE) { }
27 
29  RangeUnload(cid_t a_cid, rid_t a_rid, uint8_t a_flags=NONE) noexcept
30  : cid(a_cid), rid(a_rid), flags(a_flags) {
31  }
32 
33  //~RangeUnload() { }
34 
37  uint8_t flags;
38 
39  private:
40 
41  size_t internal_encoded_length() const override {
44  + 1;
45  }
46 
47  void internal_encode(uint8_t** bufp) const override {
51  }
52 
53  void internal_decode(const uint8_t** bufp, size_t* remainp) override {
54  cid = Serialization::decode_vi64(bufp, remainp);
55  rid = Serialization::decode_vi64(bufp, remainp);
56  flags = Serialization::decode_i8(bufp, remainp);
57  }
58 
59 };
60 
61 
62 class RangeUnloadRsp final : public Serializable {
63  public:
64 
65  enum Flag : uint8_t {
66  NONE = 0x00,
67  EMPTY = 0x01
68  };
69 
71  RangeUnloadRsp(int a_err) noexcept : err(a_err), flags(NONE) { }
72 
73  //~RangeUnloadRsp() { }
74 
75  void set_empty() {
76  flags |= EMPTY;
77  }
78 
79  int err;
80  uint8_t flags;
81 
82  private:
83 
84  size_t internal_encoded_length() const override {
85  return Serialization::encoded_length_vi32(err) + (err ? 0 : 1);
86  }
87 
88  void internal_encode(uint8_t** bufp) const override {
90  if(!err)
92  }
93 
94  void internal_decode(const uint8_t** bufp, size_t* remainp) override {
95  if(!(err = Serialization::decode_vi32(bufp, remainp)))
96  flags = Serialization::decode_i8(bufp, remainp);
97  }
98 
99 };
100 
101 }}}}}
102 
103 #endif // swcdb_db_protocol_rgr_params_RangeIsLoaded_h
SWC::Comm::Protocol::Rgr::Params::RangeUnload::CHECK_EMPTY
@ CHECK_EMPTY
Definition: RangeUnload.h:22
SWC::Comm::Protocol::Rgr::Params::RangeUnloadRsp::internal_encode
void internal_encode(uint8_t **bufp) const override
Definition: RangeUnload.h:88
SWC::Comm::Protocol::Rgr::Params::RangeUnload::internal_encode
void internal_encode(uint8_t **bufp) const override
Definition: RangeUnload.h:47
SWC::Comm::Protocol::Rgr::Params::RangeUnloadRsp::RangeUnloadRsp
SWC_CAN_INLINE RangeUnloadRsp(int a_err) noexcept
Definition: RangeUnload.h:71
SWC::Serialization::encoded_length_vi32
constexpr SWC_CAN_INLINE uint8_t encoded_length_vi32(uint32_t val) noexcept
Definition: Serialization.h:234
SWC::Comm::Protocol::Rgr::Params::RangeUnload::flags
uint8_t flags
Definition: RangeUnload.h:37
SWC::Comm::Protocol::Rgr::Params::RangeUnload::cid
cid_t cid
Definition: RangeUnload.h:35
SWC::Comm::Protocol::Rgr::Params::RangeUnload::RangeUnload
SWC_CAN_INLINE RangeUnload() noexcept
Definition: RangeUnload.h:26
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::RangeUnloadRsp::set_empty
void set_empty()
Definition: RangeUnload.h:75
SWC::Comm::Protocol::Rgr::Params::RangeUnloadRsp::Flag
Flag
Definition: RangeUnload.h:65
SWC::Comm::Protocol::Rgr::Params::RangeUnload::rid
rid_t rid
Definition: RangeUnload.h:36
SWC_CAN_INLINE
#define SWC_CAN_INLINE
Definition: Compat.h:102
SWC::Comm::Protocol::Rgr::Params::RangeUnloadRsp::internal_encoded_length
size_t internal_encoded_length() const override
Definition: RangeUnload.h:84
SWC::Comm::Protocol::Rgr::Params::RangeUnload::internal_decode
void internal_decode(const uint8_t **bufp, size_t *remainp) override
Definition: RangeUnload.h:53
SWC::Comm::Protocol::Rgr::Params::RangeUnloadRsp::flags
uint8_t flags
Definition: RangeUnload.h:80
SWC
The SWC-DB C++ namespace 'SWC'.
Definition: main.cc:12
SWC::Comm::Protocol::Rgr::Params::RangeUnloadRsp::err
int err
Definition: RangeUnload.h:79
SWC::Comm::Serializable
Definition: Serializable.h:18
SWC::Comm::Protocol::Rgr::Params::RangeUnload
Definition: RangeUnload.h:17
SWC::Comm::Protocol::Rgr::Params::RangeUnload::internal_encoded_length
size_t internal_encoded_length() const override
Definition: RangeUnload.h:41
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::RangeUnloadRsp
Definition: RangeUnload.h:62
SWC::cid_t
uint64_t cid_t
Definition: Identifiers.h:16
SWC::Comm::Protocol::Rgr::Params::RangeUnload::RangeUnload
SWC_CAN_INLINE RangeUnload(cid_t a_cid, rid_t a_rid, uint8_t a_flags=NONE) noexcept
Definition: RangeUnload.h:29
SWC::Comm::Protocol::Rgr::Params::RangeUnloadRsp::internal_decode
void internal_decode(const uint8_t **bufp, size_t *remainp) override
Definition: RangeUnload.h:94
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::Comm::Protocol::Rgr::Params::RangeUnloadRsp::EMPTY
@ EMPTY
Definition: RangeUnload.h:67
SWC::Serialization::encode_vi64
constexpr SWC_CAN_INLINE void encode_vi64(uint8_t **bufp, uint64_t val)
Definition: Serialization.h:286
SWC::Comm::Protocol::Rgr::Params::RangeUnload::NONE
@ NONE
Definition: RangeUnload.h:21
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::RangeUnload::Flag
Flag
Definition: RangeUnload.h:20
SWC::Comm::Protocol::Rgr::Params::RangeUnloadRsp::NONE
@ NONE
Definition: RangeUnload.h:66
SWC::Serialization::decode_vi32
constexpr SWC_CAN_INLINE uint32_t decode_vi32(const uint8_t **bufp, size_t *remainp)
Definition: Serialization.h:254