SWC-DB  v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
ColumnGet.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_ColumnGet_h
7 #define swcdb_db_protocol_mngr_params_ColumnGet_h
8 
9 
12 
13 
14 namespace SWC { namespace Comm { namespace Protocol {
15 namespace Mngr { namespace Params {
16 
17 
18 class ColumnGetReq final : public Serializable {
19  public:
20 
21  enum Flag : uint8_t {
22  SCHEMA_BY_ID = 0x0,
24  ID_BY_NAME = 0x2
25  };
26 
28  ColumnGetReq() noexcept : flag(), name(), cid() { }
29 
31  ColumnGetReq(Flag a_flag, const std::string& a_name)
32  : flag(a_flag), name(a_name), cid() {
33  }
34 
36  ColumnGetReq(Flag a_flag, cid_t a_cid) noexcept
37  : flag(a_flag), name(), cid(a_cid) {
38  }
39 
41  ~ColumnGetReq() noexcept { }
42 
44  std::string name;
46 
47  private:
48 
49  size_t SWC_PURE_FUNC internal_encoded_length() const override;
50 
51  void internal_encode(uint8_t** bufp) const override;
52 
53  void internal_decode(const uint8_t** bufp, size_t* remainp) override;
54 
55 };
56 
57 
58 
59 class ColumnGetRsp final : public Serializable {
60  public:
61 
63  ColumnGetRsp() noexcept: flag(), schema(), cid() { }
64 
67  noexcept : flag(a_flag), schema(a_schema), cid() {
68  }
69 
71  ~ColumnGetRsp() noexcept { }
72 
76 
77  private:
78 
79  size_t SWC_PURE_FUNC internal_encoded_length() const override;
80 
81  void internal_encode(uint8_t** bufp) const override;
82 
83  void internal_decode(const uint8_t** bufp, size_t* remainp) override;
84 
85 };
86 
87 }}}}}
88 
89 
90 
91 #ifdef SWC_IMPL_SOURCE
93 #endif
94 
95 #endif // swcdb_db_protocol_params_ColumnGetRsp_h
SWC::Comm::Protocol::Mngr::Params::ColumnGetReq
Definition: ColumnGet.h:18
Schema.h
SWC::Comm::Protocol::Mngr::Params::ColumnGetReq::cid
cid_t cid
Definition: ColumnGet.h:45
SWC::Comm::Protocol::Mngr::Params::ColumnGetReq::ColumnGetReq
SWC_CAN_INLINE ColumnGetReq(Flag a_flag, cid_t a_cid) noexcept
Definition: ColumnGet.h:36
SWC::Comm::Protocol::Mngr::Params::ColumnGetReq::ColumnGetReq
SWC_CAN_INLINE ColumnGetReq(Flag a_flag, const std::string &a_name)
Definition: ColumnGet.h:31
SWC::DB::Schema::Ptr
std::shared_ptr< Schema > Ptr
Definition: Schema.h:185
SWC::Comm::Protocol::Mngr::Params::ColumnGetReq::Flag
Flag
Definition: ColumnGet.h:21
ColumnGet.cc
SWC::Comm::Protocol::Mngr::Params::ColumnGetRsp::internal_encode
void internal_encode(uint8_t **bufp) const override
Definition: ColumnGet.cc:54
SWC_CAN_INLINE
#define SWC_CAN_INLINE
Definition: Compat.h:102
SWC::Comm::Protocol::Mngr::Params::ColumnGetRsp::cid
cid_t cid
Definition: ColumnGet.h:75
SWC
The SWC-DB C++ namespace 'SWC'.
Definition: main.cc:12
SWC::Comm::Protocol::Mngr::Params::ColumnGetRsp::internal_encoded_length
size_t SWC_PURE_FUNC internal_encoded_length() const override
Definition: ColumnGet.cc:45
SWC_PURE_FUNC
#define SWC_PURE_FUNC
Definition: Compat.h:108
SWC::Comm::Protocol::Mngr::Params::ColumnGetReq::name
std::string name
Definition: ColumnGet.h:44
SWC::Comm::Serializable
Definition: Serializable.h:18
SWC::Comm::Protocol::Mngr::Params::ColumnGetRsp::internal_decode
void internal_decode(const uint8_t **bufp, size_t *remainp) override
Definition: ColumnGet.cc:62
Serializable.h
SWC::Comm::Protocol::Mngr::Params::ColumnGetReq::ID_BY_NAME
@ ID_BY_NAME
Definition: ColumnGet.h:24
SWC::cid_t
uint64_t cid_t
Definition: Identifiers.h:16
SWC::Comm::Protocol::Mngr::Params::ColumnGetReq::~ColumnGetReq
SWC_CAN_INLINE ~ColumnGetReq() noexcept
Definition: ColumnGet.h:41
SWC::Comm::Protocol::Mngr::Params::ColumnGetReq::internal_encoded_length
size_t SWC_PURE_FUNC internal_encoded_length() const override
Definition: ColumnGet.cc:16
SWC::Comm::Protocol::Mngr::Params::ColumnGetRsp::ColumnGetRsp
SWC_CAN_INLINE ColumnGetRsp() noexcept
Definition: ColumnGet.h:63
SWC::Comm::Protocol::Mngr::Params::ColumnGetReq::ColumnGetReq
SWC_CAN_INLINE ColumnGetReq() noexcept
Definition: ColumnGet.h:28
SWC::Comm::Protocol::Mngr::Params::ColumnGetRsp
Definition: ColumnGet.h:59
SWC::Comm::Protocol::Mngr::Params::ColumnGetReq::internal_encode
void internal_encode(uint8_t **bufp) const override
Definition: ColumnGet.cc:23
SWC::Comm::Protocol::Mngr::Params::ColumnGetReq::internal_decode
void internal_decode(const uint8_t **bufp, size_t *remainp) override
Definition: ColumnGet.cc:32
SWC::Comm::Protocol::Mngr::Params::ColumnGetRsp::flag
ColumnGetReq::Flag flag
Definition: ColumnGet.h:73
SWC::Comm::Protocol::Mngr::Params::ColumnGetRsp::schema
DB::Schema::Ptr schema
Definition: ColumnGet.h:74
SWC::Comm::Protocol::Mngr::Params::ColumnGetReq::SCHEMA_BY_ID
@ SCHEMA_BY_ID
Definition: ColumnGet.h:22
SWC::Comm::Protocol::Mngr::Params::ColumnGetRsp::ColumnGetRsp
SWC_CAN_INLINE ColumnGetRsp(ColumnGetReq::Flag a_flag, const DB::Schema::Ptr &a_schema) noexcept
Definition: ColumnGet.h:66
SWC::Comm::Protocol::Mngr::Params::ColumnGetReq::SCHEMA_BY_NAME
@ SCHEMA_BY_NAME
Definition: ColumnGet.h:23
SWC::Comm::Protocol::Mngr::Params::ColumnGetReq::flag
Flag flag
Definition: ColumnGet.h:43
SWC::Comm::Protocol::Mngr::Params::ColumnGetRsp::~ColumnGetRsp
SWC_CAN_INLINE ~ColumnGetRsp() noexcept
Definition: ColumnGet.h:71