fhq-server  v0.2.33
Documentation for fhq-server. FreeHackQuest is an open source platform for competitions of computer security.
mysql_storage.h
Go to the documentation of this file.
1 #ifndef MYSQL_STORAGE_H
2 #define MYSQL_STORAGE_H
3 
4 #include <wsjcpp_storages.h>
5 #include <map>
6 #include <mysql/mysql.h>
7 #include <mutex>
8 
10  public:
11  MySqlStorageConnection(MYSQL *pConn, WsjcppStorage *pStorage);
12  virtual ~MySqlStorageConnection();
13  virtual bool executeQuery(const std::string &sQuery);
14  virtual std::string lastDatabaseVersion();
15  virtual std::vector<std::string> getInstalledVersions() override;
16  virtual bool insertUpdateInfo(const std::string &sVersion, const std::string &sDescription);
17  private:
18  MYSQL *m_pConnection;
19  std::mutex m_mtxConn;
21 };
22 
23 class MySqlStorage : public WsjcppStorage {
24  public:
25  MySqlStorage();
26  static std::string type() { return "mysql"; };
27  virtual bool applyConfigFromFile(const std::string &sFilePath);
28  virtual WsjcppStorageConnection *connect();
29  virtual void clean();
30  virtual std::vector<std::string> prepareSqlQueries(const WsjcppStorageInsert &storageInsert);
31  virtual std::vector<std::string> prepareSqlQueries(const WsjcppStorageCreateTable &storageCreateTable);
32  virtual std::vector<std::string> prepareSqlQueries(const WsjcppStorageModifyTable &storageModifyTable);
33  virtual std::vector<std::string> prepareSqlQueries(const WsjcppStorageDropTable &storageDropTable);
34  virtual std::string prepareStringValue(const std::string &sValue);
35 
36  private:
37  std::string generateLineColumnForSql(WsjcppStorageColumnDef &c);
38  std::string TAG;
39  std::string m_sDatabaseHost;
40  std::string m_sDatabaseName;
41  std::string m_sDatabaseUser;
42  std::string m_sDatabasePass;
44 };
45 
46 #endif // MYSQL_STORAGE_H
MYSQL * m_pConnection
Definition: mysql_storage.h:18
std::string TAG
Definition: mysql_storage.h:38
Definition: wsjcpp_storages.h:110
Definition: wsjcpp_storages.h:271
virtual ~MySqlStorageConnection()
Definition: mysql_storage.cpp:15
Definition: mysql_storage.h:9
WsjcppStorage * m_pStorage
Definition: mysql_storage.h:20
std::string m_sDatabaseName
Definition: mysql_storage.h:40
static std::string type()
Definition: mysql_storage.h:26
int m_nDatabasePort
Definition: mysql_storage.h:43
virtual bool insertUpdateInfo(const std::string &sVersion, const std::string &sDescription)
Definition: mysql_storage.cpp:126
Definition: wsjcpp_storages.h:153
std::string m_sDatabaseHost
Definition: mysql_storage.h:39
Definition: wsjcpp_storages.h:206
MySqlStorageConnection(MYSQL *pConn, WsjcppStorage *pStorage)
Definition: mysql_storage.cpp:7
Definition: mysql_storage.h:23
Definition: wsjcpp_storages.h:128
std::mutex m_mtxConn
Definition: mysql_storage.h:19
Definition: wsjcpp_storages.h:250
std::string m_sDatabasePass
Definition: mysql_storage.h:42
virtual std::string lastDatabaseVersion()
Definition: mysql_storage.cpp:39
Definition: wsjcpp_storages.h:26
virtual std::vector< std::string > getInstalledVersions() override
Definition: mysql_storage.cpp:84
std::string m_sDatabaseUser
Definition: mysql_storage.h:41
virtual bool executeQuery(const std::string &sQuery)
Definition: mysql_storage.cpp:22