00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef HK_MYSQLCONNECTION
00012 #define HK_MYSQLCONNECTION
00013 #include <mysql.h>
00014 #include "hk_connection.h"
00015 #include <list>
00016 #include <vector>
00017 #include <algorithm>
00018
00019
00020 #ifndef mysql_library_init
00021 #define mysql_library_init mysql_server_init
00022 #endif
00023
00024 #ifndef mysql_library_end
00025 #define mysql_library_end mysql_server_end
00026 #endif
00027
00028 class hk_drivermanager;
00029 extern "C"
00030 {
00031 hk_connection* create_connection(hk_drivermanager*);
00032 hk_string hk_classesversion(void);
00033 }
00034
00035
00036 class hk_mysqldatabase;
00037 class hk_mysqlconnection: public hk_connection
00038 {
00039 public:
00040 hk_mysqlconnection(hk_drivermanager* c);
00041 ~hk_mysqlconnection();
00042 MYSQL* dbhandler(void);
00043 void servermessage(void);
00044
00045 virtual bool server_supports(support_enum)const;
00046
00047 virtual bool server_needs(need_enum)const;
00048 virtual hk_string drivername(void) const;
00049 virtual unsigned int default_tcp_port(void) const;
00050
00051 protected:
00052 bool driver_specific_connect();
00053 bool driver_specific_disconnect();
00054 bool driver_specific_new_password(const hk_string&);
00055 vector<hk_string>* driver_specific_dblist(void);
00056 hk_database* driver_specific_new_database(void);
00057
00058 private:
00059
00060 MYSQL* p_SQL_Connection;
00061 static int p_reference;
00062
00063 } ;
00064 #endif