|
SWC-DB
v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
|
Go to the documentation of this file.
7 #ifndef swcdb_db_cells_CellValueSerialField_h
8 #define swcdb_db_cells_CellValueSerialField_h
15 namespace SWC {
namespace DB {
namespace Cell {
81 Field(
const uint8_t** bufp,
size_t* remainp)
93 virtual void encode(uint8_t** bufp)
const = 0;
102 void decode(
const uint8_t** bufp,
size_t* remainp) {
106 virtual void print(std::ostream& out)
const = 0;
125 Field_INT64(
const uint8_t** bufp,
size_t* remainp);
133 void encode(uint8_t** bufp) const override;
135 void print(std::ostream& out) const override;
162 void encode(uint8_t** bufp) const override;
164 void print(std::ostream& out) const override;
178 bool take_ownership);
181 bool take_ownership);
189 void encode(uint8_t** bufp) const override;
192 void convert_to(
T& item)
const {
195 reinterpret_cast<const typename T::value_type*
>(base),
201 void print(std::ostream& out)
const override;
215 bool take_ownership);
217 Field_KEY(
const uint8_t** bufp,
size_t* remainp,
218 bool take_ownership);
226 void encode(uint8_t** bufp) const override;
228 void decode(const uint8_t** bufp,
size_t* remainp,
229 bool take_ownership);
231 void print(std::ostream& out) const override;
255 bool take_ownership);
263 void encode(uint8_t** bufp) const override;
266 void set_from(const
T& items) {
268 for(
const auto& v : items)
272 for(
const auto& v : items)
294 const uint8_t* ptr = base;
295 for(
size_t remain =
size; remain;)
303 const uint8_t* ptr = base;
304 for(
size_t remain =
size; remain; ++count) {
306 if(!amt || count < pos) {
315 void print(std::ostream& out)
const override;
337 bool take_ownership);
345 void encode(uint8_t** bufp) const override;
348 void set_from(const
T& items) {
376 const uint8_t* ptr = base;
377 for(
size_t remain =
size; remain;) {
379 auto cptr =
reinterpret_cast<
380 const typename T::value_type::value_type*
>(
382 items.insert(items.cend(),
typename T::value_type(cptr, len));
390 const uint8_t* ptr = base;
391 for(
size_t remain =
size; remain; ++count) {
393 auto cptr =
reinterpret_cast<
394 const typename T::value_type::value_type*
>(
396 if(!amt || count < pos) {
397 items.emplace_back(cptr, len);
405 void print(std::ostream& out)
const override;
414 #ifdef SWC_IMPL_SOURCE
418 #endif // swcdb_db_cells_CellValueSerialField_h
Type type() const noexcept override
virtual Type type() const noexcept=0
SWC_CAN_INLINE Field_LIST_BYTES() noexcept
constexpr SWC_CAN_INLINE void encode_vi24(uint8_t **bufp, uint24_t val)
SWC_CAN_INLINE Field_LIST_INT64(uint24_t a_fid) noexcept
constexpr SWC_CAN_INLINE uint8_t encoded_length_vi24(uint24_t val) noexcept
Type type() const noexcept override
constexpr SWC_CAN_INLINE size_t encoded_length_bytes(size_t len) noexcept
Type type() const noexcept override
SWC_CAN_INLINE Field_DOUBLE() noexcept
constexpr SWC_CAN_INLINE const uint8_t * decode_bytes(const uint8_t **bufp, size_t *remainp, size_t *lenp)
Field_LIST_BYTES(uint24_t a_fid, const T &items)
Type type() const noexcept override
constexpr SWC_CAN_INLINE Field_INT64(uint24_t a_fid, int64_t a_value) noexcept
virtual ~Field_KEY() noexcept
SWC_CAN_INLINE void ensure(size_t len)
SWC_CAN_INLINE Field_LIST_BYTES(uint24_t a_fid) noexcept
virtual ~Field_BYTES() noexcept
constexpr SWC_CAN_INLINE void encode_i8(uint8_t **bufp, uint8_t val) noexcept
Type type() const noexcept override
size_t SWC_PURE_FUNC encoded_length() const noexcept override
SWC_CAN_INLINE void encode_bytes(uint8_t **bufp, const void *data, size_t len)
uint32_t convert_less_to(T &items, uint32_t pos, uint32_t amt) const
void print(std::ostream &out) const override
virtual ~Field_INT64() noexcept
SWC_CAN_INLINE Field_LIST_INT64() noexcept
uint32_t convert_less_to(T &items, uint32_t pos, uint32_t amt) const
The SWC-DB C++ namespace 'SWC'.
constexpr SWC_CAN_INLINE uint24_t decode_vi24(const uint8_t **bufp, size_t *remainp)
void convert_to(T &items) const
virtual void print(std::ostream &out) const =0
Type type() const noexcept override
SWC_CAN_INLINE Field_INT64() noexcept
SWC_CAN_INLINE uint24_t read_field_id(const uint8_t **bufp, size_t *remainp)
SWC_CAN_INLINE void decode(const uint8_t **bufp, size_t *remainp)
virtual ~Field() noexcept
constexpr SWC_CAN_INLINE Field(uint24_t a_fid) noexcept
constexpr SWC_CAN_INLINE uint8_t encoded_length_vi64(uint64_t val) noexcept
void convert_to(T &items) const
virtual size_t encoded_length() const noexcept
constexpr SWC_CAN_INLINE Field_DOUBLE(uint24_t a_fid, const long double &a_value) noexcept
SWC_CAN_INLINE Type read_type(const uint8_t **bufp, size_t *remainp)
void encode(uint8_t **bufp) const override
virtual ~Field_LIST_INT64() noexcept
SWC_CAN_INLINE void skip_type_and_id(const uint8_t **bufp, size_t *remainp)
const char *SWC_CONST_FUNC to_string(Type typ) noexcept
constexpr SWC_CAN_INLINE uint64_t decode_vi64(const uint8_t **bufp, size_t *remainp)
virtual void encode(uint8_t **bufp) const =0
SWC_CAN_INLINE Field() noexcept
constexpr SWC_CAN_INLINE void encode_vi64(uint8_t **bufp, uint64_t val)
void write(DynamicBuffer *buff, const T &items)
virtual ~Field_LIST_BYTES() noexcept
Field_LIST_INT64(uint24_t a_fid, const T &items)
virtual ~Field_DOUBLE() noexcept
constexpr SWC_CAN_INLINE uint8_t decode_i8(const uint8_t **bufp, size_t *remainp)
SWC_CAN_INLINE Field_KEY() noexcept
SWC_CAN_INLINE Field_BYTES() noexcept
void write(DynamicBuffer *buff, const T &items)
SWC_CAN_INLINE Field(const uint8_t **bufp, size_t *remainp)
SWC_CAN_INLINE void encode(uint8_t **bufp, Type type) const