Класс std_cache_t

#include <std_cache.hpp>

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

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

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

Реализация интерфейса кэша основного файла хранилища.

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


Открытые типы

typedef std::map< oess_1::uint_t,
page_t
page_map_t
 Тип карты страниц в кэше.

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

Реализация унаследованных методов.
virtual void reinit (oess_1::uint_t cache_size, oess_1::uint_t page_size)
virtual void cleanup ()
virtual const oess_1::char_tread_access (oess_1::uint_t ordinal)
virtual oess_1::char_twrite_access (oess_1::uint_t ordinal)
virtual oess_1::char_tpush (const ref_loaded_page_t &page, dirty_page_storage_t &storage, bool is_read_only_access)
virtual void copy_all_dirties (dirty_page_storage_t &storage)
virtual void clear_all_dirties ()
virtual void throw_away_all_dirties ()

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

void push_out_some_page (dirty_page_storage_t &storage)
 освободить место для новой страницы.

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

oess_1::uint_t m_max_size
 Максимальный размер кэша.
oess_1::uint_t m_page_size
 Размер одной страницы.
unsigned int m_timer
 Счетчик времени доступа к страницам.
page_map_t m_pages
 Содержимое кэша.
Средства для оптимизации работы кэша.
oess_1::uint_t m_last_accessed_page_index
 Номер страницы, к которой осуществлялся доступ в последний раз.
page_tm_last_accessed_page
 Сама страница, к которой в последний раз осуществлялся доступ.

Классы

struct  page_t


Методы

void cleanup (  )  [virtual]

Очиска содержимого кэша и переход в неинициализированное состояние.

Для работы с таким кэшем необходимо заново вызвать метод reinit().

Замещает cache_t.

void clear_all_dirties (  )  [virtual]

Очистить все грязные страницы.

Вызывается после успешной фиксации транзакции. Для всех грязных страниц выставляется признак того, что они чистые. Текущее значение страницы становится исходным значением.

Замещает cache_t.

void copy_all_dirties ( dirty_page_storage_t storage  )  [virtual]

Скопировать все грязные страницы в указанное хранилище грязных страниц.

Должна вызываться в конце транзакции для того, чтобы собрать все грязные страницы в одном месте.

Грязные страницы остаются в кэше. Признак того, что они грязные, не сбрасывается.

Замещает cache_t.

oess_1::char_t * push ( const ref_loaded_page_t &  page,
dirty_page_storage_t storage,
bool  is_read_only_access 
) [virtual]

Поместить страницу в кэш.

Если у страницы нет предыдущего значения, то она сразу помечается как грязная.

Если свободных элементов в кэше нет, и вытесняется грязная страница, то она вытесняется в хранилище storage.

Замещает cache_t.

void push_out_some_page ( dirty_page_storage_t storage  )  [private]

освободить место для новой страницы.

Аргументы:
storage  Приемник грязных страниц.

const oess_1::char_t * read_access ( oess_1::uint_t  ordinal  )  [virtual]

Получить содержимое страницы для чтения.

Возвращает:
0, если страницы в кэше нет.

Замещает cache_t.

void reinit ( oess_1::uint_t  cache_size,
oess_1::uint_t  page_size 
) [virtual]

Инициализация и переинициализация кэша.

Замещает cache_t.

void throw_away_all_dirties (  )  [virtual]

Выбросить все грязные страницы из кэша.

Вызывается после отката транзакции. Все грязные страницы выбрасываются, как будто они и не загружались.

Замещает cache_t.

oess_1::char_t * write_access ( oess_1::uint_t  ordinal  )  [virtual]

Получить содержимое страницы для изменения.

Страница помечается как грязная.

Возвращает:
0, если страницы в кэше нет.

Замещает cache_t.


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