SWC-DB  v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
RangeCreate.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_mngr_params_RangeCreate_h
7 #define swcdb_db_protocol_mngr_params_RangeCreate_h
8 
10 
11 
12 namespace SWC { namespace Comm { namespace Protocol {
13 namespace Mngr { namespace Params {
14 
15 
16 class RangeCreateReq final : public Serializable {
17  public:
18 
20  RangeCreateReq(cid_t a_cid=0, rgrid_t a_rgrid=0) noexcept
21  : cid(a_cid), rgrid(a_rgrid) {
22  }
23 
24  //~RangeCreateReq() { }
25 
28 
29  std::string to_string() const {
30  std::string s("RangeCreateReq(");
31  s.append("cid=");
32  s.append(std::to_string(cid));
33  s.append(" rgrid=");
34  s.append(std::to_string(rgrid));
35  return s;
36  }
37 
38  private:
39 
40  size_t internal_encoded_length() const override {
43  }
44 
45  void internal_encode(uint8_t** bufp) const override {
48  }
49 
50  void internal_decode(const uint8_t** bufp, size_t* remainp) override {
51  cid = Serialization::decode_vi64(bufp, remainp);
52  rgrid = Serialization::decode_vi64(bufp, remainp);
53  }
54 
55 };
56 
57 
58 
59 class RangeCreateRsp final : public Serializable {
60  public:
61 
63  RangeCreateRsp(int a_err = Error::OK) noexcept : err(a_err), rid(0) { }
64 
65  RangeCreateRsp(int a_err, const uint8_t* ptr, size_t remain) noexcept
66  : err(a_err), rid() {
67  if(!err) try {
68  decode(&ptr, &remain);
69  } catch(...) {
71  err = e.code();
73  }
74  }
75 
76  //~RangeCreateRsp() { }
77 
78  int err;
80 
81  std::string to_string() const {
82  std::string s("RangeCreateRsp(");
83  s.append("err=");
84  s.append(std::to_string(err));
85  if(!err) {
86  s.append(" rid=");
87  s.append(std::to_string(rid));
88  } else {
89  s.append("(");
90  s.append(Error::get_text(err));
91  s.append(")");
92  }
93  s.append(")");
94  return s;
95  }
96 
97  private:
98 
99  size_t internal_encoded_length() const override {
102  }
103 
104  void internal_encode(uint8_t** bufp) const override {
106  if(!err)
108  }
109 
110  void internal_decode(const uint8_t** bufp, size_t* remainp) override {
111  err = Serialization::decode_vi32(bufp, remainp);
112  if(!err)
113  rid = Serialization::decode_vi64(bufp, remainp);
114  }
115 
116 };
117 
118 
119 }}}}}
120 
121 #endif // swcdb_db_protocol_mngr_params_RangeCreate_h
SWC::Comm::Protocol::Mngr::Params::RangeCreateReq::rgrid
rgrid_t rgrid
Definition: RangeCreate.h:27
SWC::Error::Exception::code
constexpr SWC_CAN_INLINE int code() const noexcept
Definition: Exception.h:51
SWC_LOG_OSTREAM
#define SWC_LOG_OSTREAM
Definition: Logger.h:44
SWC_LOG_OUT
#define SWC_LOG_OUT(pr, _code_)
Definition: Logger.h:178
SWC::Error::get_text
const char * get_text(const int err) noexcept
Definition: Error.cc:173
SWC::Comm::Protocol::Mngr::Params::RangeCreateReq
Definition: RangeCreate.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::Comm::Protocol::Mngr::Params::RangeCreateRsp::internal_encode
void internal_encode(uint8_t **bufp) const override
Definition: RangeCreate.h:104
SWC::Comm::Protocol::Mngr::Params::RangeCreateReq::internal_decode
void internal_decode(const uint8_t **bufp, size_t *remainp) override
Definition: RangeCreate.h:50
SWC::Comm::Protocol::Mngr::Params::RangeCreateRsp
Definition: RangeCreate.h:59
SWC::Comm::Protocol::Mngr::Params::RangeCreateReq::internal_encoded_length
size_t internal_encoded_length() const override
Definition: RangeCreate.h:40
SWC::Error::OK
@ OK
Definition: Error.h:45
SWC::Comm::Protocol::Mngr::Params::RangeCreateRsp::RangeCreateRsp
SWC_CAN_INLINE RangeCreateRsp(int a_err=Error::OK) noexcept
Definition: RangeCreate.h:63
SWC_CAN_INLINE
#define SWC_CAN_INLINE
Definition: Compat.h:102
SWC::Comm::Protocol::Mngr::Params::RangeCreateReq::internal_encode
void internal_encode(uint8_t **bufp) const override
Definition: RangeCreate.h:45
SWC_CURRENT_EXCEPTION
#define SWC_CURRENT_EXCEPTION(_msg_)
Definition: Exception.h:119
SWC
The SWC-DB C++ namespace 'SWC'.
Definition: main.cc:12
SWC::Comm::Protocol::Mngr::Params::RangeCreateReq::RangeCreateReq
SWC_CAN_INLINE RangeCreateReq(cid_t a_cid=0, rgrid_t a_rgrid=0) noexcept
Definition: RangeCreate.h:20
SWC::Comm::Protocol::Mngr::Params::RangeCreateRsp::RangeCreateRsp
RangeCreateRsp(int a_err, const uint8_t *ptr, size_t remain) noexcept
Definition: RangeCreate.h:65
SWC::Comm::Serializable
Definition: Serializable.h:18
SWC::rgrid_t
uint64_t rgrid_t
Definition: Identifiers.h:18
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::Mngr::Params::RangeCreateRsp::internal_encoded_length
size_t internal_encoded_length() const override
Definition: RangeCreate.h:99
SWC::LOG_ERROR
@ LOG_ERROR
Definition: Logger.h:32
Serializable.h
SWC::cid_t
uint64_t cid_t
Definition: Identifiers.h:16
SWC::Comm::Protocol::Mngr::Params::RangeCreateReq::to_string
std::string to_string() const
Definition: RangeCreate.h:29
SWC::Comm::Protocol::Mngr::Params::RangeCreateRsp::err
int err
Definition: RangeCreate.h:78
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::Serializable::decode
void decode(const uint8_t **bufp, size_t *remainp)
Definition: Serializable.h:59
SWC::Comm::Protocol::Mngr::Params::RangeCreateRsp::to_string
std::string to_string() const
Definition: RangeCreate.h:81
SWC::Serialization::encode_vi64
constexpr SWC_CAN_INLINE void encode_vi64(uint8_t **bufp, uint64_t val)
Definition: Serialization.h:286
SWC::Comm::Protocol::Mngr::Params::RangeCreateReq::cid
cid_t cid
Definition: RangeCreate.h:26
SWC::Comm::Protocol::Mngr::Params::RangeCreateRsp::internal_decode
void internal_decode(const uint8_t **bufp, size_t *remainp) override
Definition: RangeCreate.h:110
SWC::Core::to_string
SWC_CAN_INLINE std::string to_string(const BitFieldInt< T, SZ > &v)
Definition: BitFieldInt.h:263
SWC::Error::Exception
Definition: Exception.h:21
SWC::Comm::Protocol::Mngr::Params::RangeCreateRsp::rid
rid_t rid
Definition: RangeCreate.h:79
SWC::Serialization::decode_vi32
constexpr SWC_CAN_INLINE uint32_t decode_vi32(const uint8_t **bufp, size_t *remainp)
Definition: Serialization.h:254