implementing first function in new log.cpp
This commit is contained in:
@@ -17,8 +17,134 @@
|
|||||||
* Free Software Foundation, Inc., *
|
* Free Software Foundation, Inc., *
|
||||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
|
|
||||||
Log::Log()
|
using namespace std;
|
||||||
|
|
||||||
|
Log::Log(ConfigFile *c) : myConfig(c)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if(SQLITE_LOG) {
|
||||||
|
|
||||||
|
// logging activated
|
||||||
|
if(myConfig->readConfigInt("LogOnOff")) {
|
||||||
|
|
||||||
|
DIR *logDir;
|
||||||
|
logDir = opendir(myConfig->readConfigString("LogDir").c_str());
|
||||||
|
|
||||||
|
// check if logging path exist
|
||||||
|
if(myConfig->readConfigString("LogDir") != "" && logDir) {
|
||||||
|
|
||||||
|
int i;
|
||||||
|
string sql;
|
||||||
|
char *errmsg;
|
||||||
|
|
||||||
|
// detect current time
|
||||||
|
char curDateTime[20];
|
||||||
|
char curDate[11];
|
||||||
|
char curTime[9];
|
||||||
|
time_t now = time(NULL);
|
||||||
|
tm *z = localtime(&now);
|
||||||
|
strftime(curDateTime,20,"%Y-%m-%d_%H.%M.%S",z);
|
||||||
|
strftime(curDate,11,"%Y-%m-%d",z);
|
||||||
|
strftime(curTime,9,"%H:%M:%S",z);
|
||||||
|
|
||||||
|
string mySqliteLogFileName = boost::lexical_cast<string>(myConfig->readConfigString("LogDir").c_str());
|
||||||
|
mySqliteLogFileName += "pokerth-log-" + boost::lexical_cast<string>(curDateTime) + ".pdb";
|
||||||
|
|
||||||
|
// open sqlite-db
|
||||||
|
sqlite3_open(mySqliteLogFileName.data(), &mySqliteLogDb);
|
||||||
|
if( mySqliteLogDb != 0 ) {
|
||||||
|
|
||||||
|
// create session table
|
||||||
|
sql = "CREATE TABLE Session (";
|
||||||
|
sql += "PokerTH_Version TEXT NOT NULL";
|
||||||
|
sql += ",Date TEXT NOT NULL";
|
||||||
|
sql += ",Time TEXT NOT NULL";
|
||||||
|
sql += ", PRIMARY KEY(Date,Time))";
|
||||||
|
if(sqlite3_exec(mySqliteLogDb, sql.data(), 0, 0, &errmsg) != SQLITE_OK) {
|
||||||
|
cout << "Error in statement: " << sql.data() << "[" << errmsg << "]." << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
sql = "INSERT INTO Session (";
|
||||||
|
sql += "PokerTH_Version";
|
||||||
|
sql += ",Date";
|
||||||
|
sql += ",Time";
|
||||||
|
sql += ") VALUES (";
|
||||||
|
sql += "\"" + boost::lexical_cast<string>(POKERTH_BETA_RELEASE_STRING) + "\",";
|
||||||
|
sql += "\"" + boost::lexical_cast<string>(curDate) + "\",";
|
||||||
|
sql += "\"" + boost::lexical_cast<string>(curTime) + "\")";
|
||||||
|
if(sqlite3_exec(mySqliteLogDb, sql.data(), 0, 0, &errmsg) != SQLITE_OK) {
|
||||||
|
cout << "Error in statement: " << sql.data() << "[" << errmsg << "]." << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
// create game table
|
||||||
|
sql = "CREATE TABLE Game (";
|
||||||
|
sql += "GameID INTEGER NOT NULL PRIMARY KEY";
|
||||||
|
sql += ",Startmoney INTEGER NOT NULL";
|
||||||
|
sql += ",StartSb INTEGER NOT NULL";
|
||||||
|
sql += ",DealerPos INTEGER NOT NULL";
|
||||||
|
for(i=1; i<=MAX_NUMBER_OF_PLAYERS; i++) {
|
||||||
|
sql += ",Seat_" + boost::lexical_cast<std::string>(i) + " TEXT";
|
||||||
|
}
|
||||||
|
sql += ",Winner_Seat INTEGER";
|
||||||
|
sql += ")";
|
||||||
|
if(sqlite3_exec(mySqliteLogDb, sql.data(), 0, 0, &errmsg) != SQLITE_OK) {
|
||||||
|
cout << "Error in statement: " << sql.data() << "[" << errmsg << "]." << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
// create hand table
|
||||||
|
sql = "CREATE TABLE Hand (";
|
||||||
|
sql += "HandID INTEGER NOT NULL";
|
||||||
|
sql += ",GameID INTEGER NOT NULL";
|
||||||
|
sql += ",Dealer_Seat INTEGER";
|
||||||
|
sql += ",Sb_Amount INTEGER NOT NULL";
|
||||||
|
sql += ",Sb_Seat INTEGER NOT NULL";
|
||||||
|
sql += ",Bb_Amount INTEGER NOT NULL";
|
||||||
|
sql += ",Bb_Seat INTEGER NOT NULL";
|
||||||
|
for(i=1; i<=MAX_NUMBER_OF_PLAYERS; i++) {
|
||||||
|
sql += ",Seat_" + boost::lexical_cast<std::string>(i) + "_Cash INTEGER";
|
||||||
|
sql += ",Seat_" + boost::lexical_cast<std::string>(i) + "_Card_1 INTEGER";
|
||||||
|
sql += ",Seat_" + boost::lexical_cast<std::string>(i) + "_Card_2 INTEGER";
|
||||||
|
sql += ",Seat_" + boost::lexical_cast<std::string>(i) + "_Hand_text TEXT";
|
||||||
|
sql += ",Seat_" + boost::lexical_cast<std::string>(i) + "_Hand_int INTEGER";
|
||||||
|
}
|
||||||
|
for(i=1; i<=5; i++) {
|
||||||
|
sql += ",BoardCard_" + boost::lexical_cast<std::string>(i) + " INTEGER";
|
||||||
|
}
|
||||||
|
sql += ",PRIMARY KEY(HandID,GameID))";
|
||||||
|
if(sqlite3_exec(mySqliteLogDb, sql.data(), 0, 0, &errmsg) != SQLITE_OK) {
|
||||||
|
cout << "Error in statement: " << sql.data() << "[" << errmsg << "]." << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
// create action table
|
||||||
|
sql = "CREATE TABLE Action (";
|
||||||
|
sql += "ActionID INTEGER PRIMARY KEY AUTOINCREMENT";
|
||||||
|
sql += ",HandID INTEGER NOT NULL";
|
||||||
|
sql += ",GameID INTEGER NOT NULL";
|
||||||
|
sql += ",BeRo INTEGER NOT NULL";
|
||||||
|
sql += ",Player INTEGER NOT NULL";
|
||||||
|
sql += ",Action TEXT NOT NULL";
|
||||||
|
sql += ",Amount INTEGER";
|
||||||
|
sql += ")";
|
||||||
|
if(sqlite3_exec(mySqliteLogDb, sql.data(), 0, 0, &errmsg) != SQLITE_OK) {
|
||||||
|
cout << "Error in statement: " << sql.data() << "[" << errmsg << "]." << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Log::~Log()
|
||||||
|
{
|
||||||
|
if(SQLITE_LOG) {
|
||||||
|
sqlite3_close(mySqliteLogDb);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,10 +20,24 @@
|
|||||||
#ifndef LOG_H
|
#ifndef LOG_H
|
||||||
#define LOG_H
|
#define LOG_H
|
||||||
|
|
||||||
|
#include <sqlite3.h>
|
||||||
|
#include <dirent.h>
|
||||||
|
|
||||||
|
#include "configfile.h"
|
||||||
|
#include "game_defs.h"
|
||||||
|
|
||||||
class Log
|
class Log
|
||||||
{
|
{
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Log();
|
Log(ConfigFile *c);
|
||||||
|
|
||||||
|
~Log();
|
||||||
|
|
||||||
|
private:
|
||||||
|
ConfigFile *myConfig;
|
||||||
|
sqlite3 *mySqliteLogDb;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // LOG_H
|
#endif // LOG_H
|
||||||
|
|||||||
@@ -28,6 +28,7 @@
|
|||||||
#include <boost/shared_ptr.hpp>
|
#include <boost/shared_ptr.hpp>
|
||||||
|
|
||||||
class guiLog;
|
class guiLog;
|
||||||
|
class Log;
|
||||||
class Session;
|
class Session;
|
||||||
class gameTableImpl;
|
class gameTableImpl;
|
||||||
|
|
||||||
|
|||||||
@@ -88,109 +88,6 @@ guiLog::guiLog(gameTableImpl* w, ConfigFile *c) : myW(w), myConfig(c), myLogDir(
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(SQLITE_LOG) {
|
|
||||||
|
|
||||||
string sql;
|
|
||||||
char *errmsg;
|
|
||||||
|
|
||||||
// detect current time
|
|
||||||
char curDateTime[20];
|
|
||||||
char curDate[11];
|
|
||||||
char curTime[9];
|
|
||||||
time_t now = time(NULL);
|
|
||||||
tm *z = localtime(&now);
|
|
||||||
strftime(curDateTime,20,"%Y-%m-%d_%H.%M.%S",z);
|
|
||||||
strftime(curDate,11,"%Y-%m-%d",z);
|
|
||||||
strftime(curTime,9,"%H:%M:%S",z);
|
|
||||||
|
|
||||||
string mySqliteLogFileName = boost::lexical_cast<string>(myConfig->readConfigString("LogDir").c_str());
|
|
||||||
mySqliteLogFileName += "pokerth-log-" + boost::lexical_cast<string>(curDateTime) + ".pdb";
|
|
||||||
|
|
||||||
// open sqlite-db
|
|
||||||
sqlite3_open(mySqliteLogFileName.data(), &mySqliteLogDb);
|
|
||||||
if( mySqliteLogDb != 0 ) {
|
|
||||||
|
|
||||||
// create session table
|
|
||||||
sql = "CREATE TABLE Session (";
|
|
||||||
sql += "PokerTH_Version TEXT NOT NULL";
|
|
||||||
sql += ",Date TEXT NOT NULL";
|
|
||||||
sql += ",Time TEXT NOT NULL";
|
|
||||||
sql += ", PRIMARY KEY(Date,Time))";
|
|
||||||
if(sqlite3_exec(mySqliteLogDb, sql.data(), 0, 0, &errmsg) != SQLITE_OK) {
|
|
||||||
cout << "Error in statement: " << sql.data() << "[" << errmsg << "]." << endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
sql = "INSERT INTO Session (";
|
|
||||||
sql += "PokerTH_Version";
|
|
||||||
sql += ",Date";
|
|
||||||
sql += ",Time";
|
|
||||||
sql += ") VALUES (";
|
|
||||||
sql += "\"" + boost::lexical_cast<string>(POKERTH_BETA_RELEASE_STRING) + "\",";
|
|
||||||
sql += "\"" + boost::lexical_cast<string>(curDate) + "\",";
|
|
||||||
sql += "\"" + boost::lexical_cast<string>(curTime) + "\")";
|
|
||||||
if(sqlite3_exec(mySqliteLogDb, sql.data(), 0, 0, &errmsg) != SQLITE_OK) {
|
|
||||||
cout << "Error in statement: " << sql.data() << "[" << errmsg << "]." << endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
// create game table
|
|
||||||
sql = "CREATE TABLE Game (";
|
|
||||||
sql += "GameID INTEGER NOT NULL PRIMARY KEY";
|
|
||||||
sql += ",Startmoney INTEGER NOT NULL";
|
|
||||||
sql += ",StartSb INTEGER NOT NULL";
|
|
||||||
sql += ",DealerPos INTEGER NOT NULL";
|
|
||||||
for(i=1; i<=MAX_NUMBER_OF_PLAYERS; i++) {
|
|
||||||
sql += ",Seat_" + boost::lexical_cast<std::string>(i) + " TEXT";
|
|
||||||
}
|
|
||||||
sql += ",Winner_Seat INTEGER";
|
|
||||||
sql += ")";
|
|
||||||
if(sqlite3_exec(mySqliteLogDb, sql.data(), 0, 0, &errmsg) != SQLITE_OK) {
|
|
||||||
cout << "Error in statement: " << sql.data() << "[" << errmsg << "]." << endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
// create hand table
|
|
||||||
sql = "CREATE TABLE Hand (";
|
|
||||||
sql += "HandID INTEGER NOT NULL";
|
|
||||||
sql += ",GameID INTEGER NOT NULL";
|
|
||||||
sql += ",Dealer_Seat INTEGER";
|
|
||||||
sql += ",Sb_Amount INTEGER NOT NULL";
|
|
||||||
sql += ",Sb_Seat INTEGER NOT NULL";
|
|
||||||
sql += ",Bb_Amount INTEGER NOT NULL";
|
|
||||||
sql += ",Bb_Seat INTEGER NOT NULL";
|
|
||||||
for(i=1; i<=MAX_NUMBER_OF_PLAYERS; i++) {
|
|
||||||
sql += ",Seat_" + boost::lexical_cast<std::string>(i) + "_Cash INTEGER";
|
|
||||||
sql += ",Seat_" + boost::lexical_cast<std::string>(i) + "_Card_1 INTEGER";
|
|
||||||
sql += ",Seat_" + boost::lexical_cast<std::string>(i) + "_Card_2 INTEGER";
|
|
||||||
sql += ",Seat_" + boost::lexical_cast<std::string>(i) + "_Hand_text TEXT";
|
|
||||||
sql += ",Seat_" + boost::lexical_cast<std::string>(i) + "_Hand_int INTEGER";
|
|
||||||
}
|
|
||||||
for(i=1; i<=5; i++) {
|
|
||||||
sql += ",BoardCard_" + boost::lexical_cast<std::string>(i) + " INTEGER";
|
|
||||||
}
|
|
||||||
sql += ",PRIMARY KEY(HandID,GameID))";
|
|
||||||
if(sqlite3_exec(mySqliteLogDb, sql.data(), 0, 0, &errmsg) != SQLITE_OK) {
|
|
||||||
cout << "Error in statement: " << sql.data() << "[" << errmsg << "]." << endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
// create action table
|
|
||||||
sql = "CREATE TABLE Action (";
|
|
||||||
sql += "ActionID INTEGER PRIMARY KEY AUTOINCREMENT";
|
|
||||||
sql += ",HandID INTEGER NOT NULL";
|
|
||||||
sql += ",GameID INTEGER NOT NULL";
|
|
||||||
sql += ",BeRo INTEGER NOT NULL";
|
|
||||||
sql += ",Player INTEGER NOT NULL";
|
|
||||||
sql += ",Action TEXT NOT NULL";
|
|
||||||
sql += ",Amount INTEGER";
|
|
||||||
sql += ")";
|
|
||||||
if(sqlite3_exec(mySqliteLogDb, sql.data(), 0, 0, &errmsg) != SQLITE_OK) {
|
|
||||||
cout << "Error in statement: " << sql.data() << "[" << errmsg << "]." << endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// delete old log files
|
// delete old log files
|
||||||
int daysUntilWaste = myConfig->readConfigInt("LogStoreDuration");
|
int daysUntilWaste = myConfig->readConfigInt("LogStoreDuration");
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
#include "guiwrapper.h"
|
#include "guiwrapper.h"
|
||||||
#include "session.h"
|
#include "session.h"
|
||||||
#include "guilog.h"
|
#include "guilog.h"
|
||||||
|
#include "log.h"
|
||||||
#include "gametableimpl.h"
|
#include "gametableimpl.h"
|
||||||
#include "startwindowimpl.h"
|
#include "startwindowimpl.h"
|
||||||
#include "configfile.h"
|
#include "configfile.h"
|
||||||
@@ -30,12 +31,13 @@
|
|||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
|
||||||
GuiWrapper::GuiWrapper(ConfigFile *c, startWindowImpl *s) : myGuiLog(NULL), myW(NULL), myConfig(c), myStartWindow(s)
|
GuiWrapper::GuiWrapper(ConfigFile *c, startWindowImpl *s) : myGuiLog(NULL), myLog(NULL), myW(NULL), myConfig(c), myStartWindow(s)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
myW = new gameTableImpl(myConfig);
|
myW = new gameTableImpl(myConfig);
|
||||||
myGuiLog = new guiLog(myW, myConfig);
|
myGuiLog = new guiLog(myW, myConfig);
|
||||||
|
myLog = new Log(myConfig);
|
||||||
|
|
||||||
myW->setStartWindow(myStartWindow);
|
myW->setStartWindow(myStartWindow);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ class Session;
|
|||||||
class gameTableImpl;
|
class gameTableImpl;
|
||||||
class startWindowImpl;
|
class startWindowImpl;
|
||||||
class guiLog;
|
class guiLog;
|
||||||
|
class Log;
|
||||||
class ConfigFile;
|
class ConfigFile;
|
||||||
|
|
||||||
|
|
||||||
@@ -168,6 +169,7 @@ public:
|
|||||||
private:
|
private:
|
||||||
|
|
||||||
guiLog *myGuiLog;
|
guiLog *myGuiLog;
|
||||||
|
Log *myLog;
|
||||||
gameTableImpl *myW;
|
gameTableImpl *myW;
|
||||||
ConfigFile *myConfig;
|
ConfigFile *myConfig;
|
||||||
startWindowImpl *myStartWindow;
|
startWindowImpl *myStartWindow;
|
||||||
|
|||||||
Reference in New Issue
Block a user