ComSDK
 Указатель Классы Пространства имен Функции Переменные Определения типов Перечисления Элементы перечислений Друзья Группы Страницы
Открытые типы | Открытые члены | Защищенные члены | Защищенные данные | Полный список членов класса
Класс com::sys::DatabaseManager

Интерфейс менеджера баз данных Подробнее...

#include <database_manager.h>

Открытые типы

typedef std::function< void(std::shared_ptr
< com::sql::SqlTable >) > 
OnTableReceivedClb
 Тип коллбэка на получение таблицы
 
typedef std::function< void(bool) > OnCacheReadyClb
 Тип коллбэка на готовность кэширования
 

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

 DatabaseManager (const std::string &defaultDD, std::unique_ptr< DatabaseAccess > defaultDbAccess, const std::string &user, const std::string &psw, boost::asio::io_service &ioservice)
 
void requestTable (const std::string &table, OnTableReceivedClb clb, bool isCached=false)
 Асинхронно возвращает таблицу по полному названию от пользователя по умолчанию
 
void executeSqlRequest (const std::string &request, OnTableReceivedClb clb, const std::string &db="")
 
std::shared_ptr
< com::sql::SqlTable
getTable (const std::string &table)
 Возвращает кэшированную таблицу
 
virtual void cacheTables (const std::vector< std::string > &tables, DatabaseManager::OnCacheReadyClb clb)
 Кэширует указанные таблицы (точнее, те таблицы из списка, которые еще не были закэшированны)
 
void addDatabase (const std::string &dd, std::unique_ptr< DatabaseAccess > dbAccess)
 Добавляет базу данных с дескриптором dd.
 
void setDefaultAuth (const std::string &user, const std::string &psw)
 Обновляет логин и пароль по умолчанию
 

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

virtual void processReceivedTable (std::shared_ptr< com::sql::SqlTable > table)
 
virtual void checkCache (DatabaseManager::OnCacheReadyClb clb, const std::vector< std::string > &checkList, std::shared_ptr< com::sql::SqlTable > table)
 
std::tuple< std::string,
std::string, std::string > 
parseTableName (const std::string &table)
 
std::string getFullTableName (const std::string &table)
 

Защищенные данные

std::map< std::string,
std::unique_ptr
< DatabaseAccess > > 
m_databases
 
std::map< std::string,
std::shared_ptr
< com::sql::SqlTable > > 
m_cachedTables
 
boost::asio::io_service & m_ioservice
 
std::string m_defaultUser
 
std::string m_defaultPassword
 
std::string m_defaultDD
 

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

Интерфейс менеджера баз данных

Менеджер баз данных организует доступ к базам данных, которые могут быть как в разных СУБД, так и на разных машинах. Практически все методы менеджера асинхронные.

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

com::sys::DatabaseManager::DatabaseManager ( const std::string &  defaultDD,
std::unique_ptr< DatabaseAccess defaultDbAccess,
const std::string &  user,
const std::string &  psw,
boost::asio::io_service &  ioservice 
)

Конструктор менеджера баз данных с базой по умолчанию с именем p_defaultDD. DD означает database descriptor, то есть уникальное имя базы данных в пределах приложения. Это то имя, которое используется в методах класса для получения таблиц и выполнения sql-запросов. Имя реальной базы данных задается в DatabaseAccess

Методы

void com::sys::DatabaseManager::executeSqlRequest ( const std::string &  request,
OnTableReceivedClb  clb,
const std::string &  db = "" 
)

Асинхронно выполняет sql-запрос в базу данных p_db от пользователя по умолчанию (ответ возвращается в виде таблицы с одним элементом)

Необходимо сделать:
переделать на RawTable

Объявления и описания членов классов находятся в файлах: