CUBRID Engine
latest
|
#include <packer.hpp>
Public Member Functions | |
unpacker ()=default | |
unpacker (const char *storage, const size_t amount) | |
void | set_buffer (const char *storage, const size_t amount) |
void | unpack_int (int &value) |
void | unpack_overloaded (int &value) |
void | peek_unpack_int (int &value) |
void | unpack_int_array (int *array, int &count) |
void | unpack_int_vector (std::vector< int > &array) |
void | unpack_bool (bool &value) |
void | unpack_overloaded (bool &value) |
void | unpack_short (short &value) |
void | unpack_overloaded (short &value) |
void | unpack_bigint (std::int64_t &value) |
void | unpack_bigint (std::uint64_t &value) |
void | unpack_overloaded (std::int64_t &value) |
void | unpack_overloaded (std::uint64_t &value) |
void | unpack_small_string (char *string, const size_t max_size) |
void | unpack_large_string (std::string &str) |
void | unpack_string (std::string &str) |
void | unpack_overloaded (std::string &str) |
void | unpack_c_string (char *str, const size_t max_str_size) |
void | unpack_string_to_memblock (cubmem::extensible_block &blk) |
void | unpack_db_value (db_value &value) |
void | unpack_overloaded (db_value &value) |
void | unpack_overloaded (packable_object &po) |
void | peek_unpack_buffer_length (int &value) |
void | unpack_buffer_with_length (char *stream, const std::size_t max_length) |
void | unpack_oid (OID &oid) |
void | unpack_overloaded (OID &oid) |
const char * | get_curr_ptr (void) |
void | align (const size_t req_alignment) |
size_t | get_current_size (void) |
const char * | get_buffer_start (void) |
const char * | get_buffer_end (void) |
bool | is_ended (void) |
void | delegate_to_or_buf (const size_t size, or_buf &buf) |
template<typename T > | |
void | unpack_from_int (T &t) |
template<typename... Args> | |
void | unpack_all (Args &&...args) |
Private Member Functions | |
void | unpack_string_size (size_t &len) |
template<typename T , typename... Args> | |
void | unpack_all_recursive (T &&t, Args &&...args) |
template<typename T > | |
void | unpack_all_recursive (T &&t) |
Private Attributes | |
const char * | m_start_ptr |
const char * | m_end_ptr |
const char * | m_ptr |
Definition at line 181 of file packer.hpp.
|
default |
Definition at line 81 of file packer.cpp.
References cubpacking::packer::set_buffer().
void cubpacking::unpacker::align | ( | const size_t | req_alignment | ) |
Definition at line 821 of file packer.cpp.
References cubpacking::packer::m_ptr, and PTR_ALIGN.
Definition at line 966 of file packer.cpp.
References cubpacking::check_range(), cubpacking::packer::m_end_ptr, cubpacking::packer::m_ptr, and OR_BUF_INIT.
const char * cubpacking::unpacker::get_buffer_end | ( | void | ) |
Definition at line 839 of file packer.cpp.
References cubpacking::packer::m_end_ptr.
const char * cubpacking::unpacker::get_buffer_start | ( | void | ) |
Definition at line 833 of file packer.cpp.
References cubpacking::packer::m_start_ptr.
const char * cubpacking::unpacker::get_curr_ptr | ( | void | ) |
Definition at line 815 of file packer.cpp.
References cubpacking::packer::m_ptr.
size_t cubpacking::unpacker::get_current_size | ( | void | ) |
Definition at line 827 of file packer.cpp.
References cubpacking::packer::get_buffer_start(), and cubpacking::packer::get_curr_ptr().
bool cubpacking::unpacker::is_ended | ( | void | ) |
Definition at line 845 of file packer.cpp.
References cubpacking::packer::get_buffer_end(), and cubpacking::packer::get_curr_ptr().
void cubpacking::unpacker::peek_unpack_buffer_length | ( | int & | value | ) |
Definition at line 884 of file packer.cpp.
Referenced by record_descriptor::unpack().
void cubpacking::unpacker::peek_unpack_int | ( | int & | value | ) |
Definition at line 139 of file packer.cpp.
References cubpacking::packer::align(), cubpacking::check_range(), INT_ALIGNMENT, cubpacking::packer::m_end_ptr, cubpacking::packer::m_ptr, OR_GET_INT, and OR_INT_SIZE.
Definition at line 87 of file packer.cpp.
References cubpacking::packer::m_end_ptr, cubpacking::packer::m_ptr, and cubpacking::packer::m_start_ptr.
Referenced by sboot_register_client().
void cubpacking::unpacker::unpack_all | ( | Args &&... | args | ) |
Definition at line 397 of file packer.hpp.
Referenced by sboot_register_client(), clientids::unpack(), and boot_client_credential::unpack().
|
private |
Definition at line 404 of file packer.hpp.
|
private |
Definition at line 412 of file packer.hpp.
void cubpacking::unpacker::unpack_bigint | ( | std::int64_t & | value | ) |
Definition at line 247 of file packer.cpp.
References cubpacking::packer::align(), cubpacking::check_range(), cubpacking::packer::m_end_ptr, cubpacking::packer::m_ptr, MAX_ALIGNMENT, OR_BIGINT_SIZE, and OR_GET_INT64.
Referenced by cubload::batch::unpack(), cubload::load_args::unpack(), cubload::stats::unpack(), and cubload::load_status::unpack().
void cubpacking::unpacker::unpack_bigint | ( | std::uint64_t & | value | ) |
Definition at line 291 of file packer.cpp.
References cubpacking::packer::align(), cubpacking::check_range(), cubpacking::packer::m_end_ptr, cubpacking::packer::m_ptr, MAX_ALIGNMENT, OR_BIGINT_SIZE, and OR_GET_INT64.
void cubpacking::unpacker::unpack_bool | ( | bool & | value | ) |
Definition at line 172 of file packer.cpp.
References assert.
Referenced by sloaddb_load_batch(), cubload::load_args::unpack(), and cubload::load_status::unpack().
void cubpacking::unpacker::unpack_buffer_with_length | ( | char * | stream, |
const std::size_t | max_length | ||
) |
Definition at line 897 of file packer.cpp.
References cubpacking::packer::align(), assert, cubpacking::check_range(), INT_ALIGNMENT, cubpacking::packer::m_end_ptr, cubpacking::packer::m_ptr, min, OR_GET_INT, and OR_INT_SIZE.
Referenced by record_descriptor::unpack().
void cubpacking::unpacker::unpack_c_string | ( | char * | str, |
const size_t | max_str_size | ||
) |
Definition at line 709 of file packer.cpp.
References cubpacking::packer::align(), assert, INT_ALIGNMENT, and cubpacking::packer::m_ptr.
void cubpacking::unpacker::unpack_db_value | ( | db_value & | value | ) |
Definition at line 432 of file packer.cpp.
References cubpacking::packer::align(), assert, cubpacking::check_range(), cubpacking::packer::m_end_ptr, cubpacking::packer::m_ptr, MAX_ALIGNMENT, or_packed_value_size(), and or_unpack_value().
void cubpacking::unpacker::unpack_from_int | ( | T & | t | ) |
Definition at line 388 of file packer.hpp.
void cubpacking::unpacker::unpack_int | ( | int & | value | ) |
Definition at line 123 of file packer.cpp.
References cubpacking::packer::align(), cubpacking::check_range(), INT_ALIGNMENT, cubpacking::packer::m_end_ptr, cubpacking::packer::m_ptr, OR_GET_INT, and OR_INT_SIZE.
Referenced by cubload::batch::unpack(), cubload::load_args::unpack(), and cubload::stats::unpack().
void cubpacking::unpacker::unpack_int_array | ( | int * | array, |
int & | count | ||
) |
Definition at line 328 of file packer.cpp.
References cubpacking::packer::align(), cubpacking::check_range(), cubregex::count(), i, INT_ALIGNMENT, cubpacking::packer::m_end_ptr, cubpacking::packer::m_ptr, OR_GET_INT, and OR_INT_SIZE.
void cubpacking::unpacker::unpack_int_vector | ( | std::vector< int > & | array | ) |
Definition at line 374 of file packer.cpp.
References cubpacking::packer::align(), cubpacking::check_range(), cubregex::count(), i, INT_ALIGNMENT, cubpacking::packer::m_end_ptr, cubpacking::packer::m_ptr, OR_GET_INT, and OR_INT_SIZE.
void cubpacking::unpacker::unpack_large_string | ( | std::string & | str | ) |
Definition at line 571 of file packer.cpp.
References cubpacking::packer::align(), cubpacking::check_range(), INT_ALIGNMENT, cubpacking::packer::m_end_ptr, cubpacking::packer::m_ptr, OR_GET_INT, and OR_INT_SIZE.
void cubpacking::unpacker::unpack_oid | ( | OID & | oid | ) |
Definition at line 799 of file packer.cpp.
References cubpacking::packer::align(), cubpacking::check_range(), INT_ALIGNMENT, cubpacking::packer::m_end_ptr, cubpacking::packer::m_ptr, OR_GET_OID, and OR_OID_SIZE.
void cubpacking::unpacker::unpack_overloaded | ( | int & | value | ) |
Definition at line 133 of file packer.cpp.
void cubpacking::unpacker::unpack_overloaded | ( | bool & | value | ) |
Definition at line 181 of file packer.cpp.
void cubpacking::unpacker::unpack_overloaded | ( | short & | value | ) |
Definition at line 225 of file packer.cpp.
void cubpacking::unpacker::unpack_overloaded | ( | std::int64_t & | value | ) |
Definition at line 301 of file packer.cpp.
void cubpacking::unpacker::unpack_overloaded | ( | std::uint64_t & | value | ) |
Definition at line 307 of file packer.cpp.
void cubpacking::unpacker::unpack_overloaded | ( | std::string & | str | ) |
Definition at line 644 of file packer.cpp.
void cubpacking::unpacker::unpack_overloaded | ( | db_value & | value | ) |
Definition at line 447 of file packer.cpp.
void cubpacking::unpacker::unpack_overloaded | ( | packable_object & | po | ) |
Definition at line 765 of file packer.cpp.
References cubpacking::packable_object::unpack().
void cubpacking::unpacker::unpack_overloaded | ( | OID & | oid | ) |
Definition at line 809 of file packer.cpp.
void cubpacking::unpacker::unpack_short | ( | short & | value | ) |
Definition at line 215 of file packer.cpp.
References cubpacking::packer::align(), cubpacking::check_range(), cubpacking::packer::m_end_ptr, cubpacking::packer::m_ptr, OR_GET_SHORT, OR_SHORT_SIZE, and SHORT_ALIGNMENT.
Referenced by record_descriptor::unpack().
void cubpacking::unpacker::unpack_small_string | ( | char * | string, |
const size_t | max_size | ||
) |
Definition at line 497 of file packer.cpp.
References cubpacking::packer::align(), assert, cubpacking::check_range(), INT_ALIGNMENT, cubpacking::packer::m_end_ptr, cubpacking::packer::m_ptr, OR_BYTE_SIZE, and OR_GET_BYTE.
void cubpacking::unpacker::unpack_string | ( | std::string & | str | ) |
Definition at line 619 of file packer.cpp.
References cubpacking::packer::align(), cubpacking::check_range(), INT_ALIGNMENT, LARGE_STRING_CODE, cubpacking::packer::m_end_ptr, cubpacking::packer::m_ptr, and OR_GET_BYTE.
Referenced by cubload::batch::unpack(), cubload::load_args::unpack(), and cubload::stats::unpack().
|
private |
Definition at line 685 of file packer.cpp.
References cubpacking::packer::align(), cubpacking::check_range(), LARGE_STRING_CODE, cubpacking::packer::m_end_ptr, cubpacking::packer::m_ptr, OR_GET_BYTE, OR_GET_INT, and OR_INT_SIZE.
void cubpacking::unpacker::unpack_string_to_memblock | ( | cubmem::extensible_block & | blk | ) |
Definition at line 732 of file packer.cpp.
References cubpacking::packer::align(), cubmem::extensible_block::extend_to(), cubmem::extensible_block::get_ptr(), INT_ALIGNMENT, and cubpacking::packer::m_ptr.
|
private |
Definition at line 260 of file packer.hpp.
|
private |
Definition at line 261 of file packer.hpp.
|
private |
Definition at line 259 of file packer.hpp.