#include <std_db_content.hpp>
Граф наследования:std_db_content_t:
Открытые члены | |
Реализация унаследованных методов. | |
virtual void | open (const std::string &name, const oess_1::db::storage::config_t &config, bool is_read_only, bool is_auto_repair_enabled) |
Открыть указанную БД. | |
virtual void | client_attach (const std::string &client_id) |
Подключить еще одного клиента к БД. | |
virtual void | client_detach (const std::string &client_id) |
Отключить указанного агента от БД. | |
virtual oess_1::uint_t | client_count () const |
Определить количество подключенных клиентов. | |
virtual void | slice_create (const std::string &client_id, const std::string &name) |
Создание раздела в БД. | |
virtual void | slice_destroy (const std::string &client_id, const std::string &name) |
Удаление раздела в БД. | |
virtual bool | slice_is_exists (const std::string &client_id, const std::string &name) |
Проверка существования раздела в БД. | |
virtual std::set< std::string > | slice_names (const std::string &client_id) |
Получение имен всех существующих разделов в БД. | |
virtual oess_1::ent_id_t | ent_create (const std::string &client_id, const std::string &slice_name, oess_1::io::istream_t &ent_value, oess_1::uint_t ent_size) |
Создать сущность. | |
virtual void | ent_destroy (const std::string &client_id, const oess_1::ent_id_t &ent_id) |
Удалить сущность. | |
virtual void | ent_destroy_all (const std::string &client_id, const std::string &slice_name) |
Удалить все сущности в указанном разделе. | |
virtual void | ent_load (const std::string &client_id, const oess_1::ent_id_t &ent_id, oess_1::io::ostream_t &ent_value) |
Загрузить сущность. | |
virtual void | ent_update (const std::string &client_id, const oess_1::ent_id_t &ent_id, oess_1::io::istream_t &ent_value, oess_1::uint_t ent_size) |
Изменить значение сущности. | |
virtual oess_1::ent_id_t | ent_find_next (const std::string &client_id, const std::string &slice_name, const oess_1::ent_id_t &ent_id) |
Найти следующую существующую сущность. | |
virtual void | transaction_begin (const std::string &client_id) |
Начать транзакцию. | |
virtual void | transaction_commit (const std::string &client_id) |
Подтвердить транзакцию. | |
virtual void | transaction_rollback (const std::string &client_id) |
Откатить транзакцию. | |
Закрытые типы | |
connection_only = 0 | |
Проверка только открытия БД и подключения клиента. | |
must_be_transaction_owner = 1 | |
Клиент должен быть владельцем транзакции. | |
enum | { connection_only = 0, must_be_transaction_owner = 1 } |
Флаги для метода check_for_client(). Подробнее... | |
Закрытые члены | |
void | sys_trans_start () |
Начать системную транзакцию в хранилище. | |
void | sys_trans_finish () |
Завершить системную транзакцию. | |
void | careful_sys_trans_rollback () |
Попытаться осторожно откатить системную транзакцию. | |
void | cleanup () |
Очистка всех ресурсов без выпуска исключений наружу. | |
void | must_be_open () const |
Порождает исключение, если БД не открыта. | |
void | check_for_client (const std::string &client_id, unsigned int actions) const |
операции над БД. | |
oess_1::db::storage::entity_stream_t & | slice_for_entity_search (const std::string &slice_name, const oess_1::ent_id_t &ent_id) |
Найти раздел, в котором нужно искать следующую сущность. | |
Закрытые данные | |
auto_ptr_3::obj_ptr_t< oess_1::db::storage::stream_storage_t > | m_storage |
Физическое хранилище БД. | |
bool | m_is_open |
true, если БД открыта. | |
std::auto_ptr< client_map_t > | m_client_map_ptr |
Существует только если БД открыта. | |
trans_owner_info_t | m_transaction_owner |
Описание владельца транзакции. | |
unsigned int | m_trans_deep |
Счетчик начатых транзакций. |
anonymous enum [private] |
void careful_sys_trans_rollback | ( | ) | [private] |
Попытаться осторожно откатить системную транзакцию.
Данный метод предназначен для отката системной транзакции, в которой было поймано какое-нибудь исключение. Поэтом исключения из careful_sys_trans_rollback() не выпускаются.
void check_for_client | ( | const std::string & | client_id, | |
unsigned int | actions | |||
) | const [private] |
операции над БД.
v.1.1.0 Вызывает must_be_open(), затем проверяет подключен ли клиент к БД.
Если установлен флаг must_be_transaction_owner, то проверяется, является ли клиент владельцем транзакции.
oess_1::ex_t | если клиент не может работать с БД (БД не открыта, клиент не подключен, ...). |
client_id | Идентификатор проверяемого клиента. |
actions | Битовые флаги, определяющие набор выполняемых действий. |
void client_detach | ( | const std::string & | client_id | ) | [virtual] |
Отключить указанного агента от БД.
Если такой клиент к БД не подключен, то это ошибкой не считается.
Если клиент проводил транзакцию, то транзакция автоматически откатывается.
Замещает db_content_t.
oess_1::ent_id_t ent_find_next | ( | const std::string & | client_id, | |
const std::string & | slice_name, | |||
const oess_1::ent_id_t & | ent_id | |||
) | [virtual] |
Найти следующую существующую сущность.
Для поиска первой существующей сущности в разделе необходимо указать имя раздела и ent_id, эквивалентный NULL. Если ent_id не равен NULL, то считается, что поиск продолжается и имя раздела игнорируется. Если существующих сущностей больше нет, то возвращается эквивалентное NULL значение.
Замещает db_content_t.
void slice_destroy | ( | const std::string & | client_id, | |
const std::string & | name | |||
) | [virtual] |
oess_1::db::storage::entity_stream_t & slice_for_entity_search | ( | const std::string & | slice_name, | |
const oess_1::ent_id_t & | ent_id | |||
) | [private] |
Найти раздел, в котором нужно искать следующую сущность.
Если ищется первая сущность, то должен быть определен параметр slice_name. Если первая сущность уже была найдена, то должен быть передан корректный ent_id -- в этом случае раздел берется по идентификатору ent_id_t::m_slice_id.
bool slice_is_exists | ( | const std::string & | client_id, | |
const std::string & | name | |||
) | [virtual] |
Проверка существования раздела в БД.
Замещает db_content_t.
std::set< std::string > slice_names | ( | const std::string & | client_id | ) | [virtual] |
void sys_trans_finish | ( | ) | [private] |
Завершить системную транзакцию.
void sys_trans_start | ( | ) | [private] |
Начать системную транзакцию в хранилище.
void transaction_begin | ( | const std::string & | client_id | ) | [virtual] |
void transaction_commit | ( | const std::string & | client_id | ) | [virtual] |
void transaction_rollback | ( | const std::string & | client_id | ) | [virtual] |
auto_ptr_3::obj_ptr_t< oess_1::db::storage::stream_storage_t > m_storage [private] |
Физическое хранилище БД.
Существует только, если БД открыта.
unsigned int m_trans_deep [private] |
Счетчик начатых транзакций.
trans_owner_info_t m_transaction_owner [private] |
Описание владельца транзакции.