Класс std_header_processor_t

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

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

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

Штатная реализация интерфейса header_processor_t.

Начиная с:
v.1.4.0


Открытые члены

 std_header_processor_t (const config_t &config, page_accessor_t &accessor, bool is_read_only)
 Инициализирующий конструктор.
Реализация унаследованных методов.
chain_id_t allocate_block ()
 Выделить новый блок.
void deallocate_block (const chain_id_t &block)
 Сделать блок свободным.
chain_id_t get_next (const chain_id_t &block)
 Получить ссылку на следующий блок из указанного блока.
void change_next (const chain_id_t &block, const chain_id_t &next)
 Установить ссылку на следующий блок для указаного блока.
void ensure_allocated (const chain_id_t &block_id)
 Проверяет, что блок помечен, как занятый.
void operation_finished (bool is_read_only)
 расход памяти.

Закрытые типы

typedef std::map< oess_1::uint_t,
ref_area_header_t > 
area_header_map_t
 Тип карты заголовков областей.
typedef std::map< oess_1::uint_t,
ref_segment_header_t > 
segment_header_map_t
 Тип карты заголовков сегментов.
typedef std::map< oess_1::uint_t,
oess_1::uint_t
page_use_map_t
 Тип карты для отсчета времен доступа к страницам.

Закрытые члены

common_header_tget_common_header ()
 Получить общий заголовок.
area_header_tget_area_header (const area_ordinal_t &area)
 Получить заголовок указанной области.
segment_header_tget_segment_header (const area_ordinal_t &area, const segment_ordinal_t &segment)
 Получить заголовок указанного сегмента.
void commit_common_header (common_header_t &header)
 Зафиксировать в хранилище общий заголовок.
void commit_area_header (area_header_t &header)
 Зафиксировать в хранилище заголовок области.
void commit_segment_header (segment_header_t &header)
 Зафиксировать в хранилище заголовок сегмента.
void update_page_usage (oess_1::uint_t page)
 Обновить время использования для страницы.
void reduce_memory_use ()
 использовались.

Закрытые данные

const config_tm_config
 Конфигурация хранилища.
const page_index_calculator_t m_calculator
 Размеры хранилища.
page_accessor_tm_page_accessor
 Интерфейс для доступа к значениям страниц.
bool m_is_read_only
 true, если разрешены только read-only операции.
ref_common_header_t m_common_header
 Загруженное значение общего заголовка.
area_header_map_t m_areas
 Карта загруженных заголовков областей.
area_header_t::io_buffer_t m_area_header_io_buffer
 заголовков областей.
segment_header_map_t m_segments
 Карта загруженных заголовков сегментов.
segment_header_t::io_buffer_t m_segment_header_io_buffer
 заголовков сегментов.
oess_1::uint_t m_timer
 Таймер, который отсчитывает время доступа к страницам.
page_use_map_t m_page_usage
 Карта для отсчета времен доступа к страницам.


Определения типов

typedef std::map< oess_1::uint_t, ref_area_header_t > area_header_map_t [private]

Тип карты заголовков областей.

Ключем является номер страницы, на которой располагается заголовок области.

typedef std::map< oess_1::uint_t, oess_1::uint_t > page_use_map_t [private]

Тип карты для отсчета времен доступа к страницам.

Ключем является номер страницы, а значением -- время последнего доступа к странице.

typedef std::map< oess_1::uint_t, ref_segment_header_t > segment_header_map_t [private]

Тип карты заголовков сегментов.

Ключем является номер страницы, на которой располагается заголовок области.


Конструктор(ы)

std_header_processor_t ( const config_t config,
page_accessor_t accessor,
bool  is_read_only 
)

Инициализирующий конструктор.

Аргументы:
config  Конфигурация хранилища.
accessor  Интерфейс доступа к значениям страниц.
is_read_only  true, если должны использоваться только read-only операции.


Методы

chain_id_t allocate_block (  )  [virtual]

Выделить новый блок.

Для нового блока ссылка на следующий блок выставляется в invalid_chain_id.

Замещает header_processor_t.

void commit_area_header ( area_header_t header  )  [private]

Зафиксировать в хранилище заголовок области.

Так же сбрасывается признак модифицированности объекта.

void commit_common_header ( common_header_t header  )  [private]

Зафиксировать в хранилище общий заголовок.

Так же сбрасывается признак модифицированности объекта.

void commit_segment_header ( segment_header_t header  )  [private]

Зафиксировать в хранилище заголовок сегмента.

Так же сбрасывается признак модифицированности объекта.

void ensure_allocated ( const chain_id_t block_id  )  [virtual]

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

Начиная с:
v.1.4.b2-2
Исключения:
oess_1::logic_ex_t,если block_id является свободным.

Замещает header_processor_t.

area_header_t & get_area_header ( const area_ordinal_t area  )  [private]

Получить заголовок указанной области.

Если этот заголовок еще не загружен, то он загружается или создается, если его еще не было в хранилище.

common_header_t & get_common_header (  )  [private]

Получить общий заголовок.

Если общий заголовок еще не загружен, то он загружается (или создается в хранилище, если хранилище пусто).

segment_header_t & get_segment_header ( const area_ordinal_t area,
const segment_ordinal_t segment 
) [private]

Получить заголовок указанного сегмента.

Если этот заголовок еще не загружен, то он загружается или создается, если его еще не было в хранилище.

void reduce_memory_use (  )  [private]

использовались.

Если количество всех загруженных заголовков превышает 1/4 от размера кэша, то из памяти выгружаются все лишние давно не использовавшиеся страницы.


Данные класса

ref_common_header_t m_common_header [private]

Загруженное значение общего заголовка.

Содержит 0, если общий заголовок не был загружен.


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