Пространство имен oess_1::db::storage::impl


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

Детали реализации.


Классы

class  tag_hard_config_t
 Класс тега {hard_config} конфигурации БД. Подробнее...
class  tag_config_t
 Класс тега {storage-config} конфигурации БД. Подробнее...
class  cache_t
 Интерфейс кэша основного файла хранилища. Подробнее...
class  header_processor_t
 Интерфейс объекта, отвечающего за работу с заголовками различных областей основного файла хранилища. Подробнее...
class  common_header_t
 Тип общего заголовка всего файла. Подробнее...
class  area_header_t
 Тип общего заголовка всего файла. Подробнее...
class  segment_header_t
 Заголовок логического сегмента. Подробнее...
class  mem_dirty_page_storage_t
 Хранилище грязных страниц в оперативной памяти. Подробнее...
class  page_accessor_t
 Интерфейс объекта, отвечающего за доступ к страницам хранилища. Подробнее...
class  segment_header_item_t
 Тип одного элемента заголовка логического сегмента. Подробнее...
class  std_cache_t
 Реализация интерфейса кэша основного файла хранилища. Подробнее...
class  std_chain_storage_t
 Штатная реализация интерфейса chain_storage_t. Подробнее...
class  stream_desc_t
 Описатель потока хранилища. Подробнее...
class  stream_item_t
 Один элемент потока сущностей. Подробнее...
class  std_entity_stream_t
 Штатная реализация интерфейса entity_stream_t. Подробнее...
class  std_stream_storage_t
 Штатная реализация интерфейса stream_storage_t. Подробнее...
class  stream_storage_dir_item_t
 Элемент оглавления хранилища потоков. Подробнее...
class  stream_storage_dir_t
 Оглавление хранилища потоков. Подробнее...
struct  page_use_timer_t
 Счетчик использования страницы хранилища. Подробнее...
class  std_header_processor_t
 Штатная реализация интерфейса header_processor_t. Подробнее...
class  std_page_accessor_t
 Штатная реализация интерфейса page_accessor_t. Подробнее...
class  page_to_main_file_actor_t

Пространства имен

namespace  std_cache_aux
 Вспомогательное пространство имен.

Функции

std::auto_ptr< cache_tcreate_std_cache ()
std::auto_ptr< header_processor_tcreate_std_header_processor (const config_t &config, page_accessor_t &accessor, bool is_read_only)
 Создать штатную реализацию интерфейса header_processor_t.
oess_1::io::obinstream_toperator<< (oess_1::io::obinstream_t &to, const common_header_t &what)
 Сохранить в указанный поток.
oess_1::io::ibinstream_toperator>> (oess_1::io::ibinstream_t &from, common_header_t &what)
 Прочитать из указанного потока.
std::auto_ptr< page_accessor_tcreate_std_page_accessor (const config_t &config, oess_1::file::file_t &main_file, oess_1::uint_t &main_file_logic_length, cache_t &cache, dirty_page_storage_t &dirty_pages, bool is_read_only)
 Создать штатную реализацию интерфейса page_accessor_t.
oess_1::uint_toperator<< (oess_1::uint_t *to, const segment_header_item_t &what)
 Сохранить в указанный поток.
const oess_1::uint_toperator>> (const oess_1::uint_t *from, segment_header_item_t &what)
 Прочитать из указанного потока.
static std::vector< oess_1::uint_tdetect_pages_to_throw_out (const std::map< oess_1::uint_t, oess_1::uint_t > &statistics, oess_1::uint_t pages_to_throw)
static bool is_must_be_throw_out (const std::vector< oess_1::uint_t > &pages_to_throw, oess_1::uint_t page)
oess_1::err_code_t make_outer_err_code (const std::string &physic_name, const std::string &method_name, const oess_1::err_code_t &nested)
chain_id_t first_chain_id (const config_t &config)


Функции

std::auto_ptr< cache_t > create_std_cache (  ) 

Начиная с:
v.1.4.0
Создать стандартную реализацию интерфейса cache_t.

std::auto_ptr< header_processor_t > create_std_header_processor ( const config_t &  config,
page_accessor_t &  accessor,
bool  is_read_only 
)

Создать штатную реализацию интерфейса header_processor_t.

Начиная с:
v.1.4.0
Возвращает:
указатель на динамически созданный объект, ответственность за уничтожение которого лежит на вызывающей стороне.
Аргументы:
config  Конфигурация для хранилища.
accessor  Объект для доступа к страницам хранилища.
is_read_only  true, если объект должен создаваться только для чтения.

std::auto_ptr< page_accessor_t > create_std_page_accessor ( const config_t &  config,
oess_1::file::file_t main_file,
oess_1::uint_t main_file_logic_length,
cache_t &  cache,
dirty_page_storage_t &  dirty_pages,
bool  is_read_only 
)

Создать штатную реализацию интерфейса page_accessor_t.

Начиная с:
v.1.4.0
Возвращает:
указатель на динамически созданный объект, ответственность за уничтожение которого лежит на вызывающей стороне.
Аргументы:
config  Конфигурация для хранилища.
main_file  Основной файл БД.
main_file_logic_length  Логическая длина основного файла. Будет изменяться по мере создания новых страниц.
cache  Кэш хранилища.
dirty_pages  Хранилище грязных страниц.
is_read_only  true, если допускается только чтение страниц хранилища.

static std::vector< oess_1::uint_t > oess_1::db::storage::impl::detect_pages_to_throw_out ( const std::map< oess_1::uint_t, oess_1::uint_t > &  statistics,
oess_1::uint_t  pages_to_throw 
) [static]

Вычислить номера страниц, которые подлежат изъятию.

Возвращает:
вектор номеров страниц, упорядоченный по возрастанию.

Для вычисления просто формируем вектор структур

page_use_timer_t и сортируем его. Затем берем

pages_to_throw первых элементов и переносим их

в результирующий вектор. Затем результирующий

вектор сортируется.

Аргументы:
statistics  Статистика использования страниц.
pages_to_throw  Количество страниц для изъятия.

static bool oess_1::db::storage::impl::is_must_be_throw_out ( const std::vector< oess_1::uint_t > &  pages_to_throw,
oess_1::uint_t  page 
) [static]

Возвращает:
true, если страница входит в число подлежащих изъятию страниц.
Аргументы:
pages_to_throw  Результат работы функции detect_pages_to_throw_out().
page  Страница, которую нужно вычеркнуть.

chain_id_t oess_1::db::storage::impl::first_chain_id ( const config_t &  config  ) 

Возвращает:
идентификатор первой цепочки, которая будет создана в новой, пустой БД.


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