70 other.m_recdes.data =
NULL;
118 int mode_to_int =
static_cast<int> (
mode);
132 std::size_t required_size =
static_cast<std::size_t
> (-
m_recdes.
length);
257 if (dest_offset == source_offset)
266 assert (rec_size >= source_offset);
268 std::size_t memmove_size = rec_size - source_offset;
269 std::size_t new_size = rec_size + dest_offset - source_offset;
271 if (dest_offset > source_offset)
277 if (memmove_size > 0)
290 move_data (offset + new_size, offset + old_size);
293 std::memcpy (
m_recdes.
data + offset, new_data, new_size);
const char * get_data(void) const
char * get_data_for_modify(void)
void set_external_buffer(char *buf, std::size_t buf_size)
void set_recdes(const recdes &rec)
void delete_data(std::size_t offset, std::size_t data_size)
void set_record_length(std::size_t length)
void pack_buffer_with_length(const char *stream, const std::size_t length)
void pack_short(const short value)
void check_changes_are_permitted(void) const
void insert_data(std::size_t offset, std::size_t new_size, const char *new_data)
void unpack(cubpacking::unpacker &unpacker) override
void set_data(const char *data, std::size_t size)
std::size_t get_size() const
SCAN_CODE spage_get_record(THREAD_ENTRY *thread_p, PAGE_PTR page_p, PGSLOTID slot_id, RECDES *record_descriptor_p, int is_peeking)
std::size_t get_size(void) const
void update_source_after_get(record_get_mode mode)
void modify_data(std::size_t offset, std::size_t old_size, std::size_t new_size, const char *new_data)
std::size_t get_packed_buffer_size(const char *stream, const std::size_t length, const std::size_t curr_offset) const
void release_buffer(char *&data, std::size_t &size)
cubmem::extensible_block m_own_data
static enum scanner_mode mode
record_descriptor(const cubmem::block_allocator &alloc=cubmem::PRIVATE_BLOCK_ALLOCATOR)
int copy(cubthread::entry *thread_p, PAGE_PTR page, PGSLOTID slotid)
int peek(cubthread::entry *thread_p, PAGE_PTR page, PGSLOTID slotid)
data_source m_data_source
void unpack_short(short &value)
size_t get_packed_short_size(size_t curr_offset)
void peek_unpack_buffer_length(int &value)
const recdes & get_recdes(void) const
void move_data(std::size_t dest_offset, std::size_t source_offset)
void pack(cubpacking::packer &packer) const override
void resize_buffer(std::size_t size)
void extend_to(size_t total_bytes)
std::size_t get_packed_size(cubpacking::packer &packer, std::size_t curr_offset) const override
int get(cubthread::entry *thread_p, PAGE_PTR page, PGSLOTID slotid, record_get_mode mode)
void set_type(std::int16_t type)
void unpack_buffer_with_length(char *stream, const std::size_t max_length)