SWC-DB  v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
MngrState.cc
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 
8 
9 namespace SWC { namespace Comm { namespace Protocol {
10 namespace Mngr { namespace Params {
11 
12 
13 
15  size_t len = 12 + Serialization::encoded_length(mngr_host);
16  for(auto& h : states)
17  len += h->encoded_length();
18  return len;
19 }
20 
21 void MngrState::internal_encode(uint8_t** bufp) const {
25  for(auto& h : states)
26  h->encode(bufp);
27 }
28 
29 void MngrState::internal_decode(const uint8_t** bufp, size_t* remainp) {
30  size_t len = Serialization::decode_i32(bufp, remainp);
31  token = Serialization::decode_i64(bufp, remainp);
32  mngr_host = Serialization::decode(bufp, remainp);
33  states.clear();
34  states.reserve(len);
35  for(size_t i=0; i<len; ++i)
36  states.emplace_back(new Manager::MngrStatus(bufp, remainp));
37 }
38 
39 
40 }}}}}
MngrState.h
SWC::Serialization::encode_i64
SWC_CAN_INLINE void encode_i64(uint8_t **bufp, uint64_t val) noexcept
Definition: Serialization.h:151
SWC::Core::Vector::clear
SWC_CAN_INLINE void clear() noexcept(_NoExceptDestructor)
Definition: Vector.h:120
SWC::Serialization::encode_i32
SWC_CAN_INLINE void encode_i32(uint8_t **bufp, uint32_t val) noexcept
Definition: Serialization.h:138
SWC::Comm::Protocol::Mngr::Params::MngrState::internal_encoded_length
size_t SWC_PURE_FUNC internal_encoded_length() const override
Definition: MngrState.cc:14
SWC::Serialization::encoded_length
SWC_CAN_INLINE uint8_t encoded_length(const Comm::EndPoint &endpoint) noexcept
Definition: Resolver.h:63
SWC::Serialization::encode
void encode(uint8_t **bufp, const Comm::EndPoint &endpoint)
Definition: Resolver.cc:22
SWC::Comm::Protocol::Mngr::Params::MngrState::mngr_host
EndPoint mngr_host
Definition: MngrState.h:42
SWC
The SWC-DB C++ namespace 'SWC'.
Definition: main.cc:12
SWC::Comm::Protocol::Mngr::Params::MngrState::states
Manager::MngrsStatus states
Definition: MngrState.h:40
SWC::Comm::Protocol::Mngr::Params::MngrState::internal_encode
void internal_encode(uint8_t **bufp) const override
Definition: MngrState.cc:21
SWC::Manager::MngrStatus
Definition: MngrStatus.h:18
SWC::Serialization::decode
Comm::EndPoint decode(const uint8_t **bufp, size_t *remainp)
Definition: Resolver.cc:35
SWC::Comm::Protocol::Mngr::Params::MngrState::internal_decode
void internal_decode(const uint8_t **bufp, size_t *remainp) override
Definition: MngrState.cc:29
SWC::Comm::Protocol::Mngr::Params::MngrState::token
uint64_t token
Definition: MngrState.h:41
SWC::Serialization::decode_i64
SWC_CAN_INLINE uint64_t decode_i64(const uint8_t **bufp, size_t *remainp)
Definition: Serialization.h:156
SWC::Core::Vector::size
constexpr SWC_CAN_INLINE size_type size() const noexcept
Definition: Vector.h:189
SWC::Core::Vector::emplace_back
SWC_CAN_INLINE reference emplace_back(ArgsT &&... args)
Definition: Vector.h:349
SWC::Serialization::decode_i32
SWC_CAN_INLINE uint32_t decode_i32(const uint8_t **bufp, size_t *remainp)
Definition: Serialization.h:143
SWC::Core::Vector::reserve
SWC_CAN_INLINE void reserve(size_type cap)
Definition: Vector.h:288