#include <cache.hpp>
Граф наследования:cache_t:
Открытые члены | |
virtual void | reinit (oess_1::uint_t cache_size, oess_1::uint_t page_size)=0 |
virtual void | cleanup ()=0 |
virtual const oess_1::char_t * | read_access (oess_1::uint_t ordinal)=0 |
virtual oess_1::char_t * | write_access (oess_1::uint_t ordinal)=0 |
virtual oess_1::char_t * | push (const ref_loaded_page_t &page, dirty_page_storage_t &storage, bool is_read_only_access)=0 |
virtual void | copy_all_dirties (dirty_page_storage_t &storage)=0 |
virtual void | clear_all_dirties ()=0 |
virtual void | throw_away_all_dirties ()=0 |
virtual void cleanup | ( | ) | [pure virtual] |
Очиска содержимого кэша и переход в неинициализированное состояние.
Для работы с таким кэшем необходимо заново вызвать метод reinit().
Замещается в std_cache_t.
virtual void clear_all_dirties | ( | ) | [pure virtual] |
Очистить все грязные страницы.
Вызывается после успешной фиксации транзакции. Для всех грязных страниц выставляется признак того, что они чистые. Текущее значение страницы становится исходным значением.
Замещается в std_cache_t.
virtual void copy_all_dirties | ( | dirty_page_storage_t & | storage | ) | [pure virtual] |
Скопировать все грязные страницы в указанное хранилище грязных страниц.
Должна вызываться в конце транзакции для того, чтобы собрать все грязные страницы в одном месте.
Грязные страницы остаются в кэше. Признак того, что они грязные, не сбрасывается.
Замещается в std_cache_t.
virtual oess_1::char_t* push | ( | const ref_loaded_page_t & | page, | |
dirty_page_storage_t & | storage, | |||
bool | is_read_only_access | |||
) | [pure virtual] |
Поместить страницу в кэш.
Если у страницы нет предыдущего значения, то она сразу помечается как грязная.
Если свободных элементов в кэше нет, и вытесняется грязная страница, то она вытесняется в хранилище storage.
page | Значение загруженной страницы. |
storage | Приемник для вытесняемой грязной страницы. |
is_read_only_access | Признак того, что первый раз страница будет использоваться для чтения. |
Замещается в std_cache_t.
virtual const oess_1::char_t* read_access | ( | oess_1::uint_t | ordinal | ) | [pure virtual] |
Получить содержимое страницы для чтения.
ordinal | Порядковый номер страницы в основном файле. |
Замещается в std_cache_t.
virtual void reinit | ( | oess_1::uint_t | cache_size, | |
oess_1::uint_t | page_size | |||
) | [pure virtual] |
Инициализация и переинициализация кэша.
cache_size | Количество страниц, которые могут одновременно находиться в кэше. |
page_size | Размер одной страницы в байтах. |
Замещается в std_cache_t.
virtual void throw_away_all_dirties | ( | ) | [pure virtual] |
Выбросить все грязные страницы из кэша.
Вызывается после отката транзакции. Все грязные страницы выбрасываются, как будто они и не загружались.
Замещается в std_cache_t.
virtual oess_1::char_t* write_access | ( | oess_1::uint_t | ordinal | ) | [pure virtual] |
Получить содержимое страницы для изменения.
Страница помечается как грязная.
ordinal | Порядковый номер страницы в основном файле. |
Замещается в std_cache_t.