#include <header_processor.hpp>
Граф наследования:header_processor_t:
За создание и удаление цепочек в основном файле хранилища отвечает std_chain_storage_t. Но такую часть своей работы, как работу с заголовками логических областей внутри файла, он делегирует вспомогательному объекту, реализующему данный интерфейс.
После завершения какой-либо операции (создания, загрузки, удаления, обновления объекта) необходимо вызвать метод operation_finished() для фиксации изменившихся заголовков на страницах хранилища (если были сделаны изменения) и для уменьшения объема занимаемой памяти (т.к. для повышения эффективности все десериализованные в процессе выполнения операции заголовки сохраняются в ОП).
Для создания штатной реализации header_processor_t необходимо использовать функцию create_std_header_processor().
Открытые члены | |
virtual chain_id_t | allocate_block ()=0 |
Выделить новый блок. | |
virtual void | deallocate_block (const chain_id_t &block)=0 |
Сделать блок свободным. | |
virtual chain_id_t | get_next (const chain_id_t &block)=0 |
Получить ссылку на следующий блок из указанного блока. | |
virtual void | change_next (const chain_id_t &block, const chain_id_t &next)=0 |
Установить ссылку на следующий блок для указаного блока. | |
virtual void | ensure_allocated (const chain_id_t &block_id)=0 |
Проверяет, что блок помечен, как занятый. | |
virtual void | operation_finished (bool is_read_only=false)=0 |
расход памяти. |
virtual chain_id_t allocate_block | ( | ) | [pure virtual] |
Выделить новый блок.
Для нового блока ссылка на следующий блок выставляется в invalid_chain_id.
Замещается в std_header_processor_t.
virtual void change_next | ( | const chain_id_t & | block, | |
const chain_id_t & | next | |||
) | [pure virtual] |
Установить ссылку на следующий блок для указаного блока.
block | Этот блок должен существовать. |
next | Предполагается, что этот блок так же существует. |
Замещается в std_header_processor_t.
virtual void deallocate_block | ( | const chain_id_t & | block | ) | [pure virtual] |
Сделать блок свободным.
block | Идентификатор освобождаемого блока. |
Замещается в std_header_processor_t.
virtual void ensure_allocated | ( | const chain_id_t & | block_id | ) | [pure virtual] |
Проверяет, что блок помечен, как занятый.
oess_1::logic_ex_t,если | block_id является свободным. |
block_id | Блок, для которого проверяется признак занятости. |
Замещается в std_header_processor_t.
virtual chain_id_t get_next | ( | const chain_id_t & | block | ) | [pure virtual] |
Получить ссылку на следующий блок из указанного блока.
block | Этот блок должен существовать. |
Замещается в std_header_processor_t.
virtual void operation_finished | ( | bool | is_read_only = false |
) | [pure virtual] |
расход памяти.
is_read_only | true, если выполнялась read-only операция (например, загрузка объекта в ОП). |
Замещается в std_header_processor_t.