Класс area_header_t

#include <headers.hpp>

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


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

Тип общего заголовка всего файла.

Начиная с:
v.1.4.0
Для объекта поддерживается понятие "модифицированности". Объект считается модифицированным, если для него были вызваны методы: init_new(), remove_free_segment(), return_free_segment(). Сделано это для того, чтобы просле проведения операций над заголовком можно было определить, следует ли записывать новое значение заголовка в файл.


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

 area_header_t (const page_index_calculator_t &calculator, const area_ordinal_t &ordinal)
 Инициализирующий конструктор.
const area_ordinal_tarea_ordinal () const
 Порядковый номер этой области.
segment_ordinal_t get_free_segment () const
 свободные блоки.
void remove_free_segment (const segment_ordinal_t &segment)
 есть свободные блоки.
void return_free_segment (const segment_ordinal_t &segment)
 имеют свободные блоки.
void init_new ()
 Проинициализировать заголовок для нового файла хранилища.
oess_1::io::ibinstream_tread_from (oess_1::io::ibinstream_t &from, io_buffer_t &io_buffer)
 Прочитать значение заголовка из указанного потока.
oess_1::io::obinstream_twrite_to (oess_1::io::obinstream_t &to, io_buffer_t &io_buffer) const
 Записать значение заголовка в указанный поток.
bool is_changed () const
 Был ли объект модифицирован?
void force_not_changed ()
 Сбросить флаг модифицированности объекта.
bool has_free_segments () const
 Есть ли еще свободные сегменты?

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

typedef std::set< segment_ordinal_tsegment_ordinal_set_t
 Тип множества номеров сегментов со свободными блоками.

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

page_index_calculator_t m_calculator
 Параметры хранилища.
area_ordinal_t m_area_ordinal
 Порядковый номер этой области.
segment_ordinal_set_t m_free_segments
 Множество номеров сегментов во свободными блоками.
bool m_is_changed
 true, если объект был модифицирован.
segment_ordinal_t m_first_free_segment
 Идентификатор первого сегмента, в котором есть свободные блоки.

Классы

class  io_buffer_t
 Вспомогательный буфер для выполнения операций ввода-вывода. Подробнее...


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

area_header_t ( const page_index_calculator_t calculator,
const area_ordinal_t ordinal 
)

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

Аргументы:
calculator  Параметры хранилища.
ordinal  Номер данной области.


Методы

segment_ordinal_t get_free_segment (  )  const

свободные блоки.

Исключения:
oess_1::logic_ex_t,если больше нет сегментов со свободными блоками.

bool has_free_segments (  )  const

Есть ли еще свободные сегменты?

Возвращает:
true, если есть.

void init_new (  ) 

Проинициализировать заголовок для нового файла хранилища.

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

oess_1::io::ibinstream_t & read_from ( oess_1::io::ibinstream_t from,
io_buffer_t io_buffer 
)

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

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

void remove_free_segment ( const segment_ordinal_t segment  ) 

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

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

void return_free_segment ( const segment_ordinal_t segment  ) 

имеют свободные блоки.

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

oess_1::io::obinstream_t & write_to ( oess_1::io::obinstream_t to,
io_buffer_t io_buffer 
) const

Записать значение заголовка в указанный поток.

Признак модификации объекта не изменяется.


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

segment_ordinal_t m_first_free_segment [private]

Идентификатор первого сегмента, в котором есть свободные блоки.

Значение определено только, если есть свободные сегменты в m_free_segments.

Заметки:
Для оптимизации метода get_free_segment.


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