#include <std_cache.hpp>
Граф наследования:std_cache_t:
Открытые типы | |
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_t * | read_access (oess_1::uint_t ordinal) |
virtual oess_1::char_t * | write_access (oess_1::uint_t ordinal) |
virtual oess_1::char_t * | push (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_t * | m_last_accessed_page |
Сама страница, к которой в последний раз осуществлялся доступ. | |
Классы | |
struct | page_t |
void cleanup | ( | ) | [virtual] |
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] |
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] |
Получить содержимое страницы для изменения.
Страница помечается как грязная.
Замещает cache_t.