Класс page_index_calculator_t

#include <page_index_calculator.hpp>

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


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

Объект для вычисления номеров страниц/блоков исходя из размера одной страницы и одного блока.

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


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

 page_index_calculator_t (oess_1::uint_t page_size, oess_1::uint_t chain_link_size)
 Инициализирующий конструктор.
oess_1::uint_t common_header_page () const
 Получить номер страницы общего заголовка.
area_ordinal_t area_count () const
 Получить общее количество областей файла.
segment_ordinal_t area_segment_count (const area_ordinal_t &area) const
 Получить количество целых сегментов в указанной области.
oess_1::uint_t area_header_page (const area_ordinal_t &area) const
 Получить порядковый номер страницы заголовка указанной области.
oess_1::uint_t segment_header_page (const area_ordinal_t &area, const segment_ordinal_t &segment) const
 Получить номер страницы заголовка указанного сегмента.
oess_1::uint_t segment_page_count () const
 Получить количество страниц в сегменте с учетом заголовка сегмента.
oess_1::uint_t chain_link_on_page_count () const
 Количество блоков на одной странице.
chain_id_t first_chain_link_on_page (oess_1::uint_t page_ordinal) const
 Идентификатор первого блока на указанной странице.
area_ordinal_t chain_link_area (const chain_id_t &block) const
 Получить номер области, в которой находится указанный блок.
segment_ordinal_t chain_link_segment (const chain_id_t &block) const
 Получить номер сегмента, в котором находится указанный блок.
oess_1::uint_t chain_link_page (const chain_id_t &block) const
 Получить номер страницы, на которой находится указанный блок.
oess_1::uint_t chain_link_page_offset (const chain_id_t &block) const
 Получить смещение на странице для указанного блока.
chain_id_t first_chain_id () const
 занят первым.

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

oess_1::uint_t m_page_size
 Размер страницы в байтах.
oess_1::uint_t m_chain_link_size
 Размер блока на странице в байтах.
oess_1::uint_t m_page_chain_links
 Количество блоков на странице.
oess_1::uint_t m_areas
 Количество доступных областей в файле.
oess_1::uint_t m_area_segments
 Размер одной полной области в сегментах.
oess_1::uint_t m_last_area_segments
 Размер последней области в сегментах.
oess_1::uint_t m_area_pages
 Размер области в страницах.
oess_1::uint_t m_segment_pages
 Размер сегмента в страницах.


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

page_index_calculator_t ( oess_1::uint_t  page_size,
oess_1::uint_t  chain_link_size 
)

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

Аргументы:
page_size  Размер одной страницы в байтах.
chain_link_size  Размер одного блока цепочки (блока на странице).


Методы

chain_id_t first_chain_id (  )  const

занят первым.

Это первый блок первого сегмента первой области.

chain_id_t first_chain_link_on_page ( oess_1::uint_t  page_ordinal  )  const

Идентификатор первого блока на указанной странице.

Аргументы:
page_ordinal  Порядковый номер страницы.

oess_1::uint_t segment_header_page ( const area_ordinal_t area,
const segment_ordinal_t segment 
) const

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

Аргументы:
area  Область, к которой относится сегмент.


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