20 #ifndef _ANCH_SQL_CON_FACT_H_ 21 #define _ANCH_SQL_CON_FACT_H_ 23 #include "sql/connection.hpp" 24 #include "sql/sqlException.hpp" 27 #include "sql/mysqlConnection.hpp" 28 #endif // ANCH_SQL_MYSQL 30 #ifdef ANCH_SQL_POSTGRESQL 31 #include "sql/postgresqlConnection.hpp" 32 #endif // ANCH_SQL_POSTGRESQL 34 #ifdef ANCH_SQL_SQLITE3 35 #include "sql/sqlite3Connection.hpp" 36 #endif // ANCH_SQL_SQLITE3 38 #include "resourcePool.hpp" 39 #include "singleton.hpp" 57 std::shared_ptr<Connection>
59 std::shared_ptr<Connection> conn;
61 if(config.driver ==
"MySQL") {
62 conn = std::make_shared<MySQLConnection>(config);
64 #endif // ANCH_SQL_MYSQL 65 #ifdef ANCH_SQL_POSTGRESQL 66 if(config.driver ==
"PostgreSQL") {
67 conn = std::make_shared<PostgreSQLConnection>(config);
69 #endif // ANCH_SQL_POSTGRESQL 70 #ifdef ANCH_SQL_SQLITE3 71 if(config.driver ==
"SQLite3") {
72 conn = std::make_shared<SQLite3Connection>(config);
74 #endif // ANCH_SQL_SQLITE3 75 if(conn.get() == NULL) {
76 std::ostringstream out;
77 out <<
"Can not create connection from configuration: driver " 78 << config.driver <<
" is not taken into account." << std::endl;
100 std::map<std::string, SqlConnectionConfiguration> _configs;
103 std::map<std::string, SqlConnectionPool* > _pools;
156 #endif // _ANCH_SQL_CON_FACT_H_ SQL database connection configuration.
Definition: connection.hpp:41
SQL connection factory.
Definition: sqlConnectionFactory.hpp:94
SQL exception.
Definition: sqlException.hpp:39
Connection * createConnection(const std::string &name)
Definition: sqlConnectionFactory.cpp:124
AnCH framework base namespace.
Definition: base64.hpp:28
SQL connection virtual class.
Definition: connection.hpp:73
std::shared_ptr< Connection > make_shared_connection(const SqlConnectionConfiguration &config)
Definition: sqlConnectionFactory.hpp:58
SqlConnectionPool & getPool(const std::string &name)
Definition: sqlConnectionFactory.cpp:158
Generic resource pool utility class.
Definition: resourcePool.hpp:117
Meyers' singleton implemtation.
Definition: singleton.hpp:35