ComSDK
|
Интерфейс менеджера баз данных Подробнее...
#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 от пользователя по умолчанию (ответ возвращается в виде таблицы с одним элементом)