Класс std_db_t

#include <std_db.hpp>

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

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

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

Стандартная реализация интерфейса db_t.


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

 std_db_t (oess_1::db::site::abstract_connector_t *connector)
 Инициализирующий конструктор.
Реализация унаследованных методов
virtual void attach (const std::string &logic_name)
 Подключиться к указанной БД на стороне сервера.
virtual void detach ()
 Отключиться от БД.
virtual void slice_create (const std::string &name)
 Создать раздел в БД.
virtual void slice_destroy (const std::string &name)
 Удалить раздел в БД.
virtual bool slice_is_exists (const std::string &name)
 Проверить существование раздела в БД.
virtual std::set< std::string > slice_names ()
 Получить имена существующих разделов в БД.
virtual oess_1::ent_id_t ent_create (const std::string &slice_name, const oess_1::stdsn::serializable_t &ent)
 Создать сущность.
virtual void ent_destroy (const oess_1::ent_id_t &ent_id)
 Удалить сущность.
virtual void ent_destroy_all (const std::string &slice_name)
 Удалить все сущности в указанном разделе.
virtual void ent_load (const oess_1::ent_id_t &ent_id, oess_1::stdsn::serializable_t &ent)
 Загрузить сущность.
virtual void ent_update (const oess_1::ent_id_t &ent_id, const oess_1::stdsn::serializable_t &ent)
 Изменить значение сущности.
virtual oess_1::ent_id_t ent_find_next (const std::string &slice_name, const oess_1::ent_id_t &ent_id)
 сущности.
virtual oess_1::ent_id_t ent_raw_create (const std::string &slice_name, oess_1::io::ibinstream_t &image, oess_1::uint_t image_size)
 Создать сущность.
virtual oess_1::uint_t ent_raw_load (const oess_1::ent_id_t &ent_id, oess_1::io::obinstream_t &to, oess_1::uint_t length_limit)
 Загрузить двоичный образ сущности.
virtual void ent_raw_update (const oess_1::ent_id_t &ent_id, oess_1::io::ibinstream_t &image, oess_1::uint_t image_size)
 Изменить значение сущности.

Защищенные члены

Реализация унаследованных методов для работы с транзакциями
virtual void transaction_begin ()
 Начать транзакцию.
virtual void transaction_commit ()
 Подтвердить транзакцию.
virtual void transaction_rollback ()
 Откатить транзакцию.

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

void cleanup ()
 Очищает все ресурсы без выпуска наружу исключений.
void must_be_attached () const
 Порождает исключение, если нет подключения к БД.
oess_1::ent_id_t do_ent_create_actions (const std::string &slice_name, const ent_packer_base_t &packer)
 Выполнение операций ent_create и ent_raw_create.
void do_ent_load_actions (const oess_1::ent_id_t &ent, ent_unpacker_base_t &packer)
 Выполнение операций ent_load и ent_raw_load.
void do_ent_update_actions (const oess_1::ent_id_t &ent, const ent_packer_base_t &packer)
 Выполнение операций ent_update и ent_raw_update.
void transmit (oess_1::db::site::impl::request_t *req, oess_1::db::site::impl::resp_wrapper_t &resp_wrapper, oess_1::uint_t awaiting_resp_id)
 Передает запрос на сервер через объект-коннектор.

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

bool m_is_attached
std::string m_logic_name
 Логическое имя БД к которой мы подключены.


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

std_db_t ( oess_1::db::site::abstract_connector_t connector  ) 

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

Аргументы:
connector  Объект для связи с сервером БД.


Методы

oess_1::ent_id_t do_ent_create_actions ( const std::string &  slice_name,
const ent_packer_base_t packer 
) [private]

Выполнение операций ent_create и ent_raw_create.

Начиная с:
v.1.4.0
Оба эти операции используют одни и те же действия по общению с сервером. Различия состоят только в способе упаковки представления объекта. Для того, чтобы не дублировать основной код операций ent_*_create все основные операции реализованы в данном методе, а упаковка образа объекта выполняется объектом, реализующим интерфейс ent_packer_base_t.

Возвращает:
идентификатор созданной сущности.
Аргументы:
slice_name  Имя раздела, в котором создается сущность.
packer  Объект, который знает, как упаковать значение сущности.

void do_ent_load_actions ( const oess_1::ent_id_t ent,
ent_unpacker_base_t packer 
) [private]

Выполнение операций ent_load и ent_raw_load.

Начиная с:
v.1.4.0
Оба эти операции используют одни и те же действия по общению с сервером. Различия состоят только в способе распаковки представления объекта. Для того, чтобы не дублировать основной код операций ent_*_load все основные операции реализованы в данном методе, а распаковка образа объекта выполняется объектом, реализующим интерфейс ent_unpacker_base_t.
Аргументы:
ent  Идентификатор загружаемой сущности.
packer  Объект, который знает, как распаковать значение сущности.

void do_ent_update_actions ( const oess_1::ent_id_t ent,
const ent_packer_base_t packer 
) [private]

Выполнение операций ent_update и ent_raw_update.

Начиная с:
v.1.4.0
Оба эти операции используют одни и те же действия по общению с сервером. Различия состоят только в способе упаковки представления объекта. Для того, чтобы не дублировать основной код операций ent_*_update все основные операции реализованы в данном методе, а упаковка образа объекта выполняется объектом, реализующим интерфейс ent_packer_base_t.
Аргументы:
ent  Идентификатор обновляемой сущности.
packer  Объект, который знает, как упаковать значение сущности.

oess_1::ent_id_t ent_create ( const std::string &  slice_name,
const oess_1::stdsn::serializable_t ent 
) [virtual]

Создать сущность.

Возвращает:
идентификатор созданной сущности.

Замещает db_t.

void ent_destroy_all ( const std::string &  slice_name  )  [virtual]

Удалить все сущности в указанном разделе.

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

Замещает db_t.

oess_1::ent_id_t ent_find_next ( const std::string &  slice_name,
const oess_1::ent_id_t ent_id 
) [virtual]

сущности.

Для поиска первой существующей сущности в разделе необходимо указать имя раздела и ent_id, эквивалентный NULL.

Если ent_id не равен NULL, то считается, что поиск продолжается и имя раздела игнорируется. Если существующих сущностей больше нет, то возвращается эквивалентное NULL значение.

Замещает db_t.

void ent_load ( const oess_1::ent_id_t ent_id,
oess_1::stdsn::serializable_t ent 
) [virtual]

Загрузить сущность.

Заметки:
Объект ent должен быть того же типа, что и сущность в БД.

Замещает db_t.

oess_1::ent_id_t ent_raw_create ( const std::string &  slice_name,
oess_1::io::ibinstream_t image,
oess_1::uint_t  image_size 
) [virtual]

Создать сущность.

Начиная с:
v.1.4.0
Возвращает:
идентификатор созданной сущности.

Замещает db_t.

oess_1::uint_t ent_raw_load ( const oess_1::ent_id_t ent_id,
oess_1::io::obinstream_t to,
oess_1::uint_t  length_limit 
) [virtual]

Загрузить двоичный образ сущности.

Начиная с:
v.1.4.0
Возвращает:
размер двоичного образа сущности.

Замещает db_t.

void ent_raw_update ( const oess_1::ent_id_t ent_id,
oess_1::io::ibinstream_t image,
oess_1::uint_t  image_size 
) [virtual]

Изменить значение сущности.

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

Замещает db_t.

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

Создать раздел в БД.

Начиная с:
v.1.1.0
Попытка создания уже существующего раздела ошибкой не считается. Содержимое раздела в этом случае не удаляется.

Замещает db_t.

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

Удалить раздел в БД.

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

Замещает db_t.

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

Проверить существование раздела в БД.

Начиная с:
v.1.4.0
Возвращает:
true, если раздел существует.

Замещает db_t.

std::set< std::string > slice_names (  )  [virtual]

Получить имена существующих разделов в БД.

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

Замещает db_t.

void transaction_begin (  )  [protected, virtual]

Начать транзакцию.

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

Замещает db_t.

void transaction_commit (  )  [protected, virtual]

Подтвердить транзакцию.

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

Замещает db_t.

void transaction_rollback (  )  [protected, virtual]

Откатить транзакцию.

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

Замещает db_t.

void transmit ( oess_1::db::site::impl::request_t req,
oess_1::db::site::impl::resp_wrapper_t resp_wrapper,
oess_1::uint_t  awaiting_resp_id 
) [private]

Передает запрос на сервер через объект-коннектор.

Контролирует код ошибки в ответе -- если ответ пришел с ошибкой, то порождается исключение.

Аргументы:
req  Указатель на динамически-созданный объект!


Данные класса

bool m_is_attached [private]

Содержит true, если подключение к серверу выполнено.

std::string m_logic_name [private]

Логическое имя БД к которой мы подключены.

Определено только, если есть подключение.


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