DBServer_MySQL.h
См. документацию.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00023
00024 #ifndef DBServer_MySQL_H_
00025 #define DBServer_MySQL_H_
00026
00027 #include <map>
00028 #include <queue>
00029 #include "UniSetTypes.h"
00030 #include "DBInterface.h"
00031 #include "DBServer.h"
00032
00134 class DBServer_MySQL:
00135 public DBServer
00136 {
00137 public:
00138 DBServer_MySQL( UniSetTypes::ObjectId id );
00139 DBServer_MySQL();
00140 ~DBServer_MySQL();
00141
00142 static const Debug::type DBLogInfoLevel = Debug::LEVEL9;
00143
00144 protected:
00145 typedef std::map<int, std::string> DBTableMap;
00146
00147 virtual void initDB(DBInterface *db){};
00148 virtual void initDBTableMap(DBTableMap& tblMap){};
00149
00150 virtual void processingMessage( UniSetTypes::VoidMessage *msg );
00151 virtual void timerInfo( UniSetTypes::TimerMessage* tm );
00152 virtual void sysCommand( UniSetTypes::SystemMessage* sm );
00153
00154
00155 virtual void parse( UniSetTypes::SensorMessage* sm );
00156 virtual void parse( UniSetTypes::DBMessage* dbmsg );
00157 virtual void parse( UniSetTypes::ConfirmMessage* cmsg );
00158
00159 bool writeToBase( const string& query );
00160 virtual void init_dbserver();
00161 void createTables( DBInterface* db );
00162
00163 inline const char* tblName(int key)
00164 {
00165 return tblMap[key].c_str();
00166 }
00167
00168 enum Timers
00169 {
00170 PingTimer,
00171 ReconnectTimer,
00172 lastNumberOfTimer
00173 };
00174
00175
00176 DBInterface *db;
00177 int PingTime;
00178 int ReconnectTime;
00179 bool connect_ok;
00181 bool activate;
00182
00183 typedef std::queue<std::string> QueryBuffer;
00184
00185 QueryBuffer qbuf;
00186 unsigned int qbufSize;
00187 bool lastRemove;
00188
00189 void flushBuffer();
00190 UniSetTypes::uniset_mutex mqbuf;
00191
00192 private:
00193 DBTableMap tblMap;
00194
00195 };
00196
00197 #endif