|
CUBRID Engine
latest
|
#include <record_descriptor.hpp>


Public Member Functions | |
| record_descriptor (const cubmem::block_allocator &alloc=cubmem::PRIVATE_BLOCK_ALLOCATOR) | |
| ~record_descriptor (void) | |
| record_descriptor (const char *data, std::size_t size) | |
| record_descriptor (const recdes &rec, const cubmem::block_allocator &alloc=cubmem::PRIVATE_BLOCK_ALLOCATOR) | |
| record_descriptor (record_descriptor &&other) | |
| void | set_recdes (const recdes &rec) |
| int | peek (cubthread::entry *thread_p, PAGE_PTR page, PGSLOTID slotid) |
| int | copy (cubthread::entry *thread_p, PAGE_PTR page, PGSLOTID slotid) |
| int | get (cubthread::entry *thread_p, PAGE_PTR page, PGSLOTID slotid, record_get_mode mode) |
| const recdes & | get_recdes (void) const |
| const char * | get_data (void) const |
| std::size_t | get_size (void) const |
| char * | get_data_for_modify (void) |
| void | set_data (const char *data, std::size_t size) |
| template<typename T > | |
| void | set_data_to_object (const T &t) |
| void | set_record_length (std::size_t length) |
| void | set_type (std::int16_t type) |
| void | modify_data (std::size_t offset, std::size_t old_size, std::size_t new_size, const char *new_data) |
| void | delete_data (std::size_t offset, std::size_t data_size) |
| void | insert_data (std::size_t offset, std::size_t new_size, const char *new_data) |
| void | move_data (std::size_t dest_offset, std::size_t source_offset) |
| void | pack (cubpacking::packer &packer) const override |
| void | unpack (cubpacking::unpacker &unpacker) override |
| std::size_t | get_packed_size (cubpacking::packer &packer, std::size_t curr_offset) const override |
| void | resize_buffer (std::size_t size) |
| void | set_external_buffer (char *buf, std::size_t buf_size) |
| template<std::size_t S> | |
| void | set_external_buffer (cubmem::stack_block< S > &membuf) |
| void | release_buffer (char *&data, std::size_t &size) |
Public Member Functions inherited from cubpacking::packable_object | |
| virtual | ~packable_object () |
| virtual bool | is_equal (const packable_object *other) |
Private Types | |
| enum | data_source { data_source::INVALID, data_source::PEEKED, data_source::COPIED, data_source::NEW, data_source::IMMUTABLE } |
Private Member Functions | |
| void | check_changes_are_permitted (void) const |
| bool | is_mutable () const |
| void | update_source_after_get (record_get_mode mode) |
Private Attributes | |
| recdes | m_recdes |
| cubmem::extensible_block | m_own_data |
| data_source | m_data_source |
Definition at line 60 of file record_descriptor.hpp.
|
strongprivate |
| Enumerator | |
|---|---|
| INVALID | |
| PEEKED | |
| COPIED | |
| NEW | |
| IMMUTABLE | |
Definition at line 144 of file record_descriptor.hpp.
| record_descriptor::record_descriptor | ( | const cubmem::block_allocator & | alloc = cubmem::PRIVATE_BLOCK_ALLOCATOR | ) |
Definition at line 45 of file record_descriptor.cpp.
References recdes::area_size, recdes::data, recdes::length, m_recdes, NULL, REC_HOME, and recdes::type.
| record_descriptor::~record_descriptor | ( | void | ) |
Definition at line 80 of file record_descriptor.cpp.
| record_descriptor::record_descriptor | ( | const char * | data, |
| std::size_t | size | ||
| ) |
Definition at line 74 of file record_descriptor.cpp.
References set_data().
| record_descriptor::record_descriptor | ( | const recdes & | rec, |
| const cubmem::block_allocator & | alloc = cubmem::PRIVATE_BLOCK_ALLOCATOR |
||
| ) |
Definition at line 56 of file record_descriptor.cpp.
References set_recdes().
| record_descriptor::record_descriptor | ( | record_descriptor && | other | ) |
Definition at line 63 of file record_descriptor.cpp.
References INVALID, m_data_source, m_own_data, m_recdes, NULL, and REC_UNKNOWN.
|
private |
Definition at line 313 of file record_descriptor.cpp.
References assert, and is_mutable().
Referenced by delete_data(), get_data_for_modify(), modify_data(), move_data(), set_record_length(), and set_type().

| int record_descriptor::copy | ( | cubthread::entry * | thread_p, |
| PAGE_PTR | page, | ||
| PGSLOTID | slotid | ||
| ) |
Definition at line 110 of file record_descriptor.cpp.
References COPY_RECORD.
| void record_descriptor::delete_data | ( | std::size_t | offset, |
| std::size_t | data_size | ||
| ) |
Definition at line 298 of file record_descriptor.cpp.
References check_changes_are_permitted(), and move_data().
| int record_descriptor::get | ( | cubthread::entry * | thread_p, |
| PAGE_PTR | page, | ||
| PGSLOTID | slotid, | ||
| record_get_mode | mode | ||
| ) |
Definition at line 116 of file record_descriptor.cpp.
References assert, COPY_RECORD, ER_FAILED, recdes::length, m_recdes, mode, NO_ERROR, resize_buffer(), S_DOESNT_FIT, S_SUCCESS, spage_get_record(), and update_source_after_get().
| const char * record_descriptor::get_data | ( | void | ) | const |
Definition at line 196 of file record_descriptor.cpp.
References assert, recdes::data, INVALID, m_data_source, and m_recdes.
| char * record_descriptor::get_data_for_modify | ( | void | ) |
Definition at line 211 of file record_descriptor.cpp.
References check_changes_are_permitted(), recdes::data, and m_recdes.
Referenced by heap_attrinfo_transform_to_disk_internal().

|
overridevirtual |
Implements cubpacking::packable_object.
Definition at line 344 of file record_descriptor.cpp.
References recdes::data, cubpacking::packer::get_packed_buffer_size(), cubpacking::packer::get_packed_short_size(), recdes::length, and m_recdes.
Definition at line 189 of file record_descriptor.cpp.
References assert, INVALID, m_data_source, and m_recdes.
Referenced by locator_allocate_copy_area_by_attr_info(), and serial_update_serial_object().

| std::size_t record_descriptor::get_size | ( | void | ) | const |
Definition at line 203 of file record_descriptor.cpp.
References assert, INVALID, recdes::length, m_data_source, and m_recdes.
Referenced by locator_allocate_copy_area_by_attr_info(), move_data(), and serial_update_serial_object().

| void record_descriptor::insert_data | ( | std::size_t | offset, |
| std::size_t | new_size, | ||
| const char * | new_data | ||
| ) |
Definition at line 307 of file record_descriptor.cpp.
References modify_data().
|
private |
Definition at line 319 of file record_descriptor.cpp.
References COPIED, m_data_source, and NEW.
Referenced by check_changes_are_permitted(), and resize_buffer().

| void record_descriptor::modify_data | ( | std::size_t | offset, |
| std::size_t | old_size, | ||
| std::size_t | new_size, | ||
| const char * | new_data | ||
| ) |
Definition at line 285 of file record_descriptor.cpp.
References check_changes_are_permitted(), recdes::data, m_recdes, and move_data().
Referenced by insert_data().

| void record_descriptor::move_data | ( | std::size_t | dest_offset, |
| std::size_t | source_offset | ||
| ) |
Definition at line 252 of file record_descriptor.cpp.
References assert, check_changes_are_permitted(), recdes::data, get_size(), recdes::length, m_recdes, and resize_buffer().
Referenced by delete_data(), and modify_data().

|
overridevirtual |
Implements cubpacking::packable_object.
Definition at line 325 of file record_descriptor.cpp.
References recdes::data, recdes::length, m_recdes, cubpacking::packer::pack_buffer_with_length(), cubpacking::packer::pack_short(), and recdes::type.
| int record_descriptor::peek | ( | cubthread::entry * | thread_p, |
| PAGE_PTR | page, | ||
| PGSLOTID | slotid | ||
| ) |
Definition at line 104 of file record_descriptor.cpp.
References PEEK_RECORD.
| void record_descriptor::release_buffer | ( | char *& | data, |
| std::size_t & | size | ||
| ) |
Definition at line 353 of file record_descriptor.cpp.
References cubmem::extensible_block::get_size(), m_own_data, and cubmem::extensible_block::release_ptr().
Referenced by locator_allocate_copy_area_by_attr_info().

| void record_descriptor::resize_buffer | ( | std::size_t | size | ) |
Definition at line 149 of file record_descriptor.cpp.
References recdes::area_size, assert, recdes::data, cubmem::extensible_block::extend_to(), cubmem::extensible_block::get_ptr(), INVALID, is_mutable(), m_data_source, m_own_data, m_recdes, and NEW.
Referenced by get(), heap_attrinfo_transform_to_disk_internal(), move_data(), and unpack().

| void record_descriptor::set_data | ( | const char * | data, |
| std::size_t | size | ||
| ) |
Definition at line 219 of file record_descriptor.cpp.
References recdes::data, IMMUTABLE, recdes::length, m_data_source, and m_recdes.
Referenced by record_descriptor().

| void record_descriptor::set_data_to_object | ( | const T & | t | ) |
Definition at line 175 of file record_descriptor.hpp.
| void record_descriptor::set_external_buffer | ( | char * | buf, |
| std::size_t | buf_size | ||
| ) |
Definition at line 243 of file record_descriptor.cpp.
References recdes::area_size, recdes::data, cubmem::extensible_block::freemem(), m_data_source, m_own_data, m_recdes, and NEW.
Referenced by locator_allocate_copy_area_by_attr_info(), and serial_update_serial_object().

| void record_descriptor::set_external_buffer | ( | cubmem::stack_block< S > & | membuf | ) |
Definition at line 165 of file record_descriptor.hpp.
References cubmem::stack_block< S >::get_ptr(), and cubmem::stack_block< S >::SIZE.
Definition at line 85 of file record_descriptor.cpp.
References recdes::area_size, assert, COPIED, recdes::data, cubmem::extensible_block::extend_to(), cubmem::extensible_block::get_ptr(), INVALID, recdes::length, m_data_source, m_own_data, m_recdes, and recdes::type.
Referenced by record_descriptor().

| void record_descriptor::set_record_length | ( | std::size_t | length | ) |
Definition at line 228 of file record_descriptor.cpp.
References recdes::area_size, assert, check_changes_are_permitted(), recdes::length, and m_recdes.
Referenced by heap_attrinfo_transform_to_disk_internal().

| void record_descriptor::set_type | ( | std::int16_t | type | ) |
Definition at line 236 of file record_descriptor.cpp.
References check_changes_are_permitted(), m_recdes, and recdes::type.
Referenced by serial_update_serial_object().

|
overridevirtual |
Implements cubpacking::packable_object.
Definition at line 332 of file record_descriptor.cpp.
References COPIED, recdes::data, recdes::length, m_data_source, m_recdes, cubpacking::unpacker::peek_unpack_buffer_length(), resize_buffer(), recdes::type, cubpacking::unpacker::unpack_buffer_with_length(), and cubpacking::unpacker::unpack_short().
|
private |
Definition at line 171 of file record_descriptor.cpp.
References assert, COPIED, COPY_RECORD, INVALID, m_data_source, PEEK_RECORD, and PEEKED.
Referenced by get().

|
private |
Definition at line 156 of file record_descriptor.hpp.
Referenced by get_data(), get_recdes(), get_size(), is_mutable(), record_descriptor(), resize_buffer(), set_data(), set_external_buffer(), set_recdes(), unpack(), and update_source_after_get().
|
private |
Definition at line 154 of file record_descriptor.hpp.
Referenced by record_descriptor(), release_buffer(), resize_buffer(), set_external_buffer(), and set_recdes().
|
private |
Definition at line 153 of file record_descriptor.hpp.
Referenced by get(), get_data(), get_data_for_modify(), get_packed_size(), get_recdes(), get_size(), modify_data(), move_data(), pack(), record_descriptor(), resize_buffer(), set_data(), set_external_buffer(), set_recdes(), set_record_length(), set_type(), and unpack().