1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-23 05:07:46 +00:00
sapphire/deps/mysqlConnector/Connection.h

84 lines
2.1 KiB
C
Raw Normal View History

#ifndef SAPPHIRE_CONNECTION_H
#define SAPPHIRE_CONNECTION_H
#include <string>
#include <memory>
#include <map>
2018-10-26 23:07:55 +02:00
#include "MysqlCommon.h"
2018-10-26 19:12:55 +02:00
typedef struct st_mysql MYSQL;
namespace Mysql
{
2018-10-26 23:07:55 +02:00
using optionMap = std::map< enum mysqlOption, std::string >;
class MySqlBase;
class Statement;
class PreparedStatement;
class Connection : public std::enable_shared_from_this< Connection >
{
public:
Connection( std::shared_ptr< MySqlBase > pBase, const std::string& hostName, const std::string& userName,
const std::string& password, uint16_t port = 3306 );
Connection( std::shared_ptr< MySqlBase > pBase, const std::string& hostName, const std::string& userName,
const std::string& password, const optionMap& options, uint16_t port = 3306 );
virtual ~Connection();
void close();
bool isClosed() const;
bool ping();
2018-10-26 23:07:55 +02:00
void setOption( enum mysqlOption option, const void* arg );
void setOption( enum mysqlOption option, uint32_t arg );
void setOption( enum mysqlOption option, const std::string& arg );
std::shared_ptr< MySqlBase > getMySqlBase() const;
void setAutoCommit( bool autoCommit );
bool getAutoCommit();
std::string escapeString( const std::string& inData );
void setSchema( const std::string& catalog );
std::shared_ptr< Statement > createStatement();
void beginTransaction();
void commitTransaction();
void rollbackTransaction();
std::string getSchema();
std::string getError();
uint32_t getErrorNo();
bool isReadOnly();
void setReadOnly( bool readOnly );
bool isValid();
bool reconnect();
std::shared_ptr< Mysql::PreparedStatement > prepareStatement( const std::string& sql );
std::string getLastStatementInfo();
MYSQL* getRawCon();
private:
std::shared_ptr< MySqlBase > m_pBase;
MYSQL* m_pRawCon;
bool m_bConnected{};
Connection( const Connection& );
void operator=( Connection& );
};
}
#endif //SAPPHIRE_CONNECTION_H