00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef RESOURCEPOOL_MYSQL_FACTORY_HH
00026 #define RESOURCEPOOL_MYSQL_FACTORY_HH
00027
00028 #ifndef RESOURCEPOOL_MYSQL_RESOURCE_HH
00029 #include "Resource.hh"
00030 #endif
00031
00032 #include "ResourcePool/SQL/SQLFactoryInterface.hh"
00033 #include "ResourcePool/ResourcePoolStreamLogger.hh"
00034
00035 #include <string>
00036
00037 namespace fatalmind {
00038
00050 class mysqlFactory : public SQL::SQLFactoryInterface {
00051 typedef SQL::SQLFactoryInterface super;
00052 public:
00053 mysqlFactory(const std::string& host
00054 , const std::string& user
00055 , const std::string& pass
00056 , const std::string& db
00057 , unsigned int port = 3306
00058 , const std::string& sock = ""
00059 , ResourcePoolEventObserver& e = ResourcePoolStreamLogger::defaultLogger
00060 );
00061 mysqlFactory(const std::string& connect, ResourcePoolEventObserver& e = ResourcePoolStreamLogger::defaultLogger);
00062
00063 using super::databaseType_t;
00064 databaseType_t getDatabaseType() const {
00065 #ifdef RESOURCEPOOL_HAVE_MYSQL_TRANSACTIONS
00066 return MYSQLTX;
00067 #else
00068 return MYSQL;
00069 #endif
00070 };
00071
00072 mysqlResource* create_resource() const;
00073
00074 protected:
00075 virtual Clone* DoClone() const;
00076
00077 private:
00078 std::string _host;
00079 std::string _user;
00080 std::string _pass;
00081 std::string _db;
00082 unsigned int _port;
00083 const std::string _sock;
00084 };
00085
00086 }
00087 #endif