You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
1.6 KiB
95 lines
1.6 KiB
6 years ago
|
//
|
||
|
// Created by mwo on 9/12/16.
|
||
|
//
|
||
|
|
||
|
#ifndef RESTBED_XMR_MYSQLCONNECTOR_H
|
||
|
#define RESTBED_XMR_MYSQLCONNECTOR_H
|
||
|
|
||
|
//#include "tools.h"
|
||
|
|
||
|
#include <mysql++/mysql++.h>
|
||
|
#include <mysql++/ssqls.h>
|
||
|
|
||
|
|
||
|
#include <iostream>
|
||
|
|
||
|
namespace xmreg
|
||
|
{
|
||
|
|
||
|
using namespace mysqlpp;
|
||
|
using namespace std;
|
||
|
|
||
|
#define MYSQL_EXCEPTION_MSG(sql_excetption) cerr << "# ERR: SQLException in " << __FILE__ \
|
||
|
<< "(" << __FUNCTION__ << ") on line " << __LINE__ << endl \
|
||
|
<< "# ERR: " << sql_excetption.what() \
|
||
|
<< endl;
|
||
|
|
||
|
|
||
|
/*
|
||
|
* This is that creates connections
|
||
|
* our mysql database.
|
||
|
*
|
||
|
* Each thread has its own connection.
|
||
|
* This way when something breaks in one thread,
|
||
|
* other threads can still operate on the mysql.
|
||
|
*
|
||
|
*/
|
||
|
class MySqlConnector
|
||
|
{
|
||
|
|
||
|
Connection conn;
|
||
|
|
||
|
public:
|
||
|
|
||
|
static string url;
|
||
|
static size_t port;
|
||
|
static string username;
|
||
|
static string password;
|
||
|
static string dbname;
|
||
|
|
||
|
MySqlConnector();
|
||
|
|
||
|
MySqlConnector(Option* _option);
|
||
|
|
||
|
// dont want any copies of connection object.
|
||
|
// pass it around through shared or unique pointer
|
||
|
MySqlConnector (const MySqlConnector&) = delete;
|
||
|
MySqlConnector& operator= (const MySqlConnector&) = delete;
|
||
|
|
||
|
Query
|
||
|
query(const char* qstr = 0);
|
||
|
|
||
|
Query
|
||
|
query(const std::string& qstr);
|
||
|
|
||
|
virtual bool
|
||
|
connect();
|
||
|
|
||
|
bool
|
||
|
ping();
|
||
|
|
||
|
Connection&
|
||
|
get_connection();
|
||
|
|
||
|
// this throws exception if not connected
|
||
|
inline void
|
||
|
check_if_connected()
|
||
|
{
|
||
|
if (!conn.connected())
|
||
|
throw std::runtime_error("No connection to the mysqldb");
|
||
|
}
|
||
|
|
||
|
virtual ~MySqlConnector();
|
||
|
|
||
|
protected:
|
||
|
|
||
|
void _init();
|
||
|
|
||
|
};
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
#endif //RESTBED_XMR_MYSQLCONNECTOR_H
|