Класс std_stream_storage_t

#include <std_stream_storage.hpp>

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

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

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

Штатная реализация интерфейса stream_storage_t.


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

 std_stream_storage_t (const std::string &physic_name, std::auto_ptr< chain_storage_t > storage, const chain_id_t &meta_info_id, oess_1::io::istream_t &meta_info_stream)
 Инициализирующий конструктор.
Реализация унаследованных методов.
virtual void trans_start ()
 Начать транзакцию.
virtual void trans_commit ()
virtual void trans_rollback ()
virtual void stream_create (const std::string &name)
 Создать поток.
virtual bool stream_is_exists (const std::string &name) const
 Проверить существование потока по имени.
virtual void stream_destroy (const std::string &name)
 Уничтожить поток.
virtual std::set< std::string > stream_names () const
 Получить имена всех существующих потоков.
virtual entity_stream_tstream_get (const std::string &name)
 Получить доступ к потоку по имени.
virtual entity_stream_tstream_get (const oess_1::uint_t &id)
 Получить доступ к потоку по идентификатору.
virtual chain_storage_tchain_storage ()
 Получение доступа к chain_storage_t поверх которого работает данный stream_storage_t.

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

typedef std::map< oess_1::uint_t,
ref_entity_stream_t > 
entity_stream_map_t
 Тип карты созданных entity_stream.

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

void ensure_all_right () const
 Убедиться в том, что хранилище находится в нормальном состоянии.
void parse_meta_info (oess_1::io::istream_t &meta_info_stream)
 хранилища все необходимые описания.
void create_entity_stream_objects ()
 описанных в оглавлении хранилища.
void reload_meta_info_on_rollback ()
 отката транзакции.
void save_meta_info ()
 Сохранение текущего значения m_dir в хранилище.
Реализация public-методов.
void lo_stream_create (const std::string &name)
void lo_stream_destroy (const std::string &name)
entity_stream_tlo_stream_get (const oess_1::uint_t &id)

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

const std::string m_physic_name
 описаний ошибок.
std::auto_ptr< chain_storage_tm_storage
 Используемое хранилище.
chain_id_t m_meta_info_id
 Идентификатор мета-информации в хранилище.
stream_storage_dir_t m_dir
 Метаинформация хранилища.
bool m_is_ok
 Признак того, что хранилище находится в нормальном состоянии.
entity_stream_map_t m_streams
 Карта созданных entity_stream.


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

std_stream_storage_t ( const std::string &  physic_name,
std::auto_ptr< chain_storage_t storage,
const chain_id_t meta_info_id,
oess_1::io::istream_t meta_info_stream 
)

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

Аргументы:
physic_name  Физическое имя хранилища. Используется для детализации описаний ошибок.
storage  Хранилище, которое должно использоваться. Это указатель на динамически созданный объект, ответственность за уничтожение которого лежит на данном экземпляре std_stream_storage_t.
meta_info_id  Идентификатор мета-информации в хранилище.
meta_info_stream  Поток, из которого нужно извлечь мета-информацию.


Методы

chain_storage_t & chain_storage (  )  [virtual]

Получение доступа к chain_storage_t поверх которого работает данный stream_storage_t.

Начиная с:
v.1.4.0-b2.2
Заметки:
Предназначен для выполнения действий по проверке корректности и восстановлению БД.

Замещает stream_storage_t.

void ensure_all_right (  )  const [private]

Убедиться в том, что хранилище находится в нормальном состоянии.

Исключения:
oess_1::physic_ex_t,если true != m_is_ok.

void parse_meta_info ( oess_1::io::istream_t meta_info_stream  )  [private]

хранилища все необходимые описания.

Инициирует создание объектов entity_stream_t для всех описанных в хранилище потоков.

Аргументы:
meta_info_stream  Входной поток с сериализованным представлением stream_storage_dir_t.

void stream_create ( const std::string &  name  )  [virtual]

Создать поток.

Имя потока должно быть уникальным.

Замещает stream_storage_t.

void stream_destroy ( const std::string &  name  )  [virtual]

Уничтожить поток.

Если для этого потока ранее был получен объект entity_stream_t, то этот объект будет уничтожен и указатель на него окажется недействительным.

Замещает stream_storage_t.

entity_stream_t & stream_get ( const oess_1::uint_t id  )  [virtual]

Получить доступ к потоку по идентификатору.

Заметки:
Возвращаемая ссылка остается корректной только в рамках одной транзакции. Ссылка может стать некорректной в результате отката транзакции или обращания к методу stream_destroy. Поэтому рекомендуется получать доступ к потоку только для выполнения необходимых операций без сохранения возвращенной ссылки на длительное время.
Исключения:
oess_1::logic_ex_t,если потока не существует.

Замещает stream_storage_t.

entity_stream_t & stream_get ( const std::string &  name  )  [virtual]

Получить доступ к потоку по имени.

Заметки:
Возвращаемая ссылка остается корректной только в рамках одной транзакции. Ссылка может стать некорректной в результате отката транзакции или обращания к методу stream_destroy. Поэтому рекомендуется получать доступ к потоку только для выполнения необходимых операций без сохранения возвращенной ссылки на длительное время.
Исключения:
oess_1::logic_ex_t,если потока не существует.

Замещает stream_storage_t.

bool stream_is_exists ( const std::string &  name  )  const [virtual]

Проверить существование потока по имени.

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

Замещает stream_storage_t.

void trans_commit (  )  [virtual]

Зафиксировать изменения транзакции в БД.

Замещает stream_storage_t.

void trans_rollback (  )  [virtual]

Начиная с:
v.1.3.1
Откатить транзакцию.

Замещает stream_storage_t.


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