SWC-DB  v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
CombiPread.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_fs_Broker_Protocol_params_CombiPread_h
7 #define swcdb_fs_Broker_Protocol_params_CombiPread_h
8 
9 
11 
12 
13 namespace SWC { namespace Comm { namespace Protocol {
14 namespace FsBroker { namespace Params {
15 
16 
17 class CombiPreadReq final : public Serializable {
18  public:
19 
21  CombiPreadReq() noexcept : smartfd(nullptr), offset(), amount() { }
22 
24  CombiPreadReq(const FS::SmartFd::Ptr& a_smartfd,
25  uint64_t a_offset, uint32_t a_amount) noexcept
26  : smartfd(a_smartfd), offset(a_offset), amount(a_amount) { }
27 
28  ~CombiPreadReq() noexcept { }
29 
31  uint64_t offset;
32  uint32_t amount;
33 
34  private:
35 
36  size_t SWC_PURE_FUNC internal_encoded_length() const override;
37 
38  void internal_encode(uint8_t** bufp) const override;
39 
40  void internal_decode(const uint8_t** bufp, size_t* remainp) override;
41 
42 };
43 
44 
45 
46 }}}}}
47 
48 
49 #if defined(SWC_IMPL_SOURCE) or \
50  (defined(FS_BROKER_APP) and !defined(BUILTIN_FS_BROKER))
52 #endif
53 
54 
55 #endif // swcdb_fs_Broker_Protocol_params_CombiPread_h
SWC::Comm::Protocol::FsBroker::Params::CombiPreadReq::~CombiPreadReq
~CombiPreadReq() noexcept
Definition: CombiPread.h:28
SWC::Comm::Protocol::FsBroker::Params::CombiPreadReq
Definition: CombiPread.h:17
SWC::Comm::Protocol::FsBroker::Params::CombiPreadReq::amount
uint32_t amount
Definition: CombiPread.h:32
SWC::Comm::Protocol::FsBroker::Params::CombiPreadReq::internal_encoded_length
size_t SWC_PURE_FUNC internal_encoded_length() const override
Definition: CombiPread.cc:15
SWC_CAN_INLINE
#define SWC_CAN_INLINE
Definition: Compat.h:102
SWC::Comm::Protocol::FsBroker::Params::CombiPreadReq::smartfd
FS::SmartFd::Ptr smartfd
Definition: CombiPread.h:30
SWC
The SWC-DB C++ namespace 'SWC'.
Definition: main.cc:12
SWC::Comm::Protocol::FsBroker::Params::CombiPreadReq::CombiPreadReq
SWC_CAN_INLINE CombiPreadReq(const FS::SmartFd::Ptr &a_smartfd, uint64_t a_offset, uint32_t a_amount) noexcept
Definition: CombiPread.h:24
SWC_PURE_FUNC
#define SWC_PURE_FUNC
Definition: Compat.h:108
SWC::Comm::Serializable
Definition: Serializable.h:18
SWC::Comm::Protocol::FsBroker::Params::CombiPreadReq::offset
uint64_t offset
Definition: CombiPread.h:31
Serializable.h
CombiPread.cc
SWC::Comm::Protocol::FsBroker::Params::CombiPreadReq::internal_decode
void internal_decode(const uint8_t **bufp, size_t *remainp) override
Definition: CombiPread.cc:28
SWC::FS::SmartFd::Ptr
std::shared_ptr< SmartFd > Ptr
Definition: SmartFd.h:37
SWC::Comm::Protocol::FsBroker::Params::CombiPreadReq::internal_encode
void internal_encode(uint8_t **bufp) const override
Definition: CombiPread.cc:21
SWC::Comm::Protocol::FsBroker::Params::CombiPreadReq::CombiPreadReq
SWC_CAN_INLINE CombiPreadReq() noexcept
Definition: CombiPread.h:21