SWC-DB  v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
RangeQuerySelect.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_RangeQuerySelect_h
7 #define swcdb_db_protocol_rgr_params_RangeQuerySelect_h
8 
9 #include "swcdb/core/Buffer.h"
12 
13 
14 namespace SWC { namespace Comm { namespace Protocol {
15 namespace Rgr { namespace Params {
16 
17 
18 class RangeQuerySelectReq final : public Serializable {
19  public:
20 
22  RangeQuerySelectReq() noexcept : cid(), rid(), interval() { }
23 
26  const DB::Specs::Interval& a_interval)
27  : cid(a_cid), rid(a_rid), interval(a_interval) {
28  }
29 
31  ~RangeQuerySelectReq() noexcept { }
32 
33  void print(std::ostream& out) const;
34 
38 
39  private:
40 
41  size_t SWC_PURE_FUNC internal_encoded_length() const override;
42 
43  void internal_encode(uint8_t** bufp) const override;
44 
45  void internal_decode(const uint8_t** bufp, size_t* remainp) override;
46 
47 };
48 
49 
50 
51 class RangeQuerySelectReqRef final : public Serializable {
52  public:
53 
56  const DB::Specs::Interval& a_interval) noexcept
57  : cid(a_cid), rid(a_rid), interval(a_interval) {
58  }
59 
60  //~RangeQuerySelectReqRef() { }
61 
62  void print(std::ostream& out) const;
63 
67 
68  private:
69 
70  size_t SWC_PURE_FUNC internal_encoded_length() const override;
71 
72  void internal_encode(uint8_t** bufp) const override;
73 
74  // not-optional/available
75  void internal_decode(const uint8_t**, size_t*) override { }
76 
77 };
78 
79 
80 
81 class RangeQuerySelectRsp final : public Serializable {
82  public:
83 
85  RangeQuerySelectRsp(int a_err = Error::OK, bool a_reached_limit=false,
86  uint64_t a_offset=0) noexcept
87  : err(a_err), reached_limit(a_reached_limit),
88  offset(a_offset), data() {
89  }
90 
92  RangeQuerySelectRsp(int a_err, StaticBuffer& a_data) noexcept
93  : err(a_err), reached_limit(false),
94  offset(0), data(a_data) {
95  }
96 
97  RangeQuerySelectRsp(int err, const uint8_t *ptr, size_t remain,
98  StaticBuffer& data) noexcept;
99 
101  ~RangeQuerySelectRsp() noexcept { }
102 
103  void print(std::ostream& out) const;
104 
105  int32_t err;
107  uint64_t offset;
109 
110  private:
111 
112  size_t SWC_PURE_FUNC internal_encoded_length() const override;
113 
114  void internal_encode(uint8_t** bufp) const override;
115 
116  void internal_decode(const uint8_t** bufp, size_t* remainp) override;
117 
118 };
119 
120 
121 }}}}}
122 
123 
124 #ifdef SWC_IMPL_SOURCE
126 #endif
127 
128 #endif // swcdb_db_protocol_rgr_params_RangeQuerySelect_h
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectRsp::err
int32_t err
Definition: RangeQuerySelect.h:105
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectRsp::internal_encoded_length
size_t SWC_PURE_FUNC internal_encoded_length() const override
Definition: RangeQuerySelect.cc:87
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectReqRef::interval
const DB::Specs::Interval & interval
Definition: RangeQuerySelect.h:66
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectReqRef::internal_decode
void internal_decode(const uint8_t **, size_t *) override
Definition: RangeQuerySelect.h:75
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectReq::internal_decode
void internal_decode(const uint8_t **bufp, size_t *remainp) override
Definition: RangeQuerySelect.cc:33
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectRsp::RangeQuerySelectRsp
SWC_CAN_INLINE RangeQuerySelectRsp(int a_err=Error::OK, bool a_reached_limit=false, uint64_t a_offset=0) noexcept
Definition: RangeQuerySelect.h:85
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectReqRef::internal_encoded_length
size_t SWC_PURE_FUNC internal_encoded_length() const override
Definition: RangeQuerySelect.cc:50
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectRsp::offset
uint64_t offset
Definition: RangeQuerySelect.h:107
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectReq::interval
DB::Specs::Interval interval
Definition: RangeQuerySelect.h:37
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectReq::RangeQuerySelectReq
SWC_CAN_INLINE RangeQuerySelectReq() noexcept
Definition: RangeQuerySelect.h:22
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectReqRef::print
void print(std::ostream &out) const
Definition: RangeQuerySelect.cc:44
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectReqRef::internal_encode
void internal_encode(uint8_t **bufp) const override
Definition: RangeQuerySelect.cc:56
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectReq::internal_encoded_length
size_t SWC_PURE_FUNC internal_encoded_length() const override
Definition: RangeQuerySelect.cc:21
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectRsp::reached_limit
bool reached_limit
Definition: RangeQuerySelect.h:106
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectReqRef
Definition: RangeQuerySelect.h:51
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectReq::print
void print(std::ostream &out) const
Definition: RangeQuerySelect.cc:15
SWC::Error::OK
@ OK
Definition: Error.h:45
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectReq::internal_encode
void internal_encode(uint8_t **bufp) const override
Definition: RangeQuerySelect.cc:27
SWC_CAN_INLINE
#define SWC_CAN_INLINE
Definition: Compat.h:102
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectRsp::data
StaticBuffer data
Definition: RangeQuerySelect.h:108
SWC
The SWC-DB C++ namespace 'SWC'.
Definition: main.cc:12
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectReq::rid
rid_t rid
Definition: RangeQuerySelect.h:36
SWC::Core::Buffer
Definition: Buffer.h:18
SWC_PURE_FUNC
#define SWC_PURE_FUNC
Definition: Compat.h:108
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectRsp::~RangeQuerySelectRsp
SWC_CAN_INLINE ~RangeQuerySelectRsp() noexcept
Definition: RangeQuerySelect.h:101
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectReq::cid
cid_t cid
Definition: RangeQuerySelect.h:35
SWC::Comm::Serializable
Definition: Serializable.h:18
Buffer.h
Serializable.h
SWC::cid_t
uint64_t cid_t
Definition: Identifiers.h:16
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectReqRef::rid
rid_t rid
Definition: RangeQuerySelect.h:65
SpecsInterval.h
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectRsp::internal_encode
void internal_encode(uint8_t **bufp) const override
Definition: RangeQuerySelect.cc:93
SWC::DB::Specs::Interval
Definition: SpecsInterval.h:25
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectRsp::print
void print(std::ostream &out) const
Definition: RangeQuerySelect.cc:79
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectReq::~RangeQuerySelectReq
SWC_CAN_INLINE ~RangeQuerySelectReq() noexcept
Definition: RangeQuerySelect.h:31
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectReq
Definition: RangeQuerySelect.h:18
RangeQuerySelect.cc
SWC::rid_t
uint64_t rid_t
Definition: Identifiers.h:17
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectRsp::internal_decode
void internal_decode(const uint8_t **bufp, size_t *remainp) override
Definition: RangeQuerySelect.cc:99
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectReq::RangeQuerySelectReq
SWC_CAN_INLINE RangeQuerySelectReq(cid_t a_cid, rid_t a_rid, const DB::Specs::Interval &a_interval)
Definition: RangeQuerySelect.h:25
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectReqRef::RangeQuerySelectReqRef
SWC_CAN_INLINE RangeQuerySelectReqRef(cid_t a_cid, rid_t a_rid, const DB::Specs::Interval &a_interval) noexcept
Definition: RangeQuerySelect.h:55
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectRsp
Definition: RangeQuerySelect.h:81
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectRsp::RangeQuerySelectRsp
SWC_CAN_INLINE RangeQuerySelectRsp(int a_err, StaticBuffer &a_data) noexcept
Definition: RangeQuerySelect.h:92
SWC::Comm::Protocol::Rgr::Params::RangeQuerySelectReqRef::cid
cid_t cid
Definition: RangeQuerySelect.h:64