Класс header_processor_t

#include <header_processor.hpp>

Граф наследования:header_processor_t:

std_header_processor_t Полный список членов класса

Подробное описание

Интерфейс объекта, отвечающего за работу с заголовками различных областей основного файла хранилища.

Начиная с:
v.1.4.0
Основной файл имеет строгую логическую структуру -- он разбит на сегменты и сектора. Сам файл, каждый из сегментов и каждый из секторов имеет заголовки -- страницы основного файла, которые содержат информацию у свободных участках файла в соответствующей области (сегменте или секторе). Заголовки секторов так же хранят информацию о цепочках блоков (т.е. какой блок идет следующим за определенным блоком).

За создание и удаление цепочек в основном файле хранилища отвечает 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]

Проверяет, что блок помечен, как занятый.

Начиная с:
v.1.4.b2-2
Исключения:
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.


Объявления и описания членов классов находятся в файлах:
Документация по ObjESSty. Последние изменения: Fri Oct 13 18:35:38 2006. Создано системой  doxygen 1.4.7
Hosted by uCoz