|
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.