From 4f89969bd3522dcdc6e67968d0563ae57f946ec6 Mon Sep 17 00:00:00 2001 From: floty Date: Fri, 17 Dec 2010 23:18:30 +0000 Subject: [PATCH] implementing first function in new log.cpp --- src/engine/local_engine/log.cpp | 128 +++++++++++++++++++++++++++- src/engine/local_engine/log.h | 16 +++- src/gui/guiinterface.h | 1 + src/gui/qt/gametable/log/guilog.cpp | 103 ---------------------- src/gui/qt/guiwrapper.cpp | 4 +- src/gui/qt/guiwrapper.h | 2 + 6 files changed, 148 insertions(+), 106 deletions(-) diff --git a/src/engine/local_engine/log.cpp b/src/engine/local_engine/log.cpp index b0a568cf..72d66055 100644 --- a/src/engine/local_engine/log.cpp +++ b/src/engine/local_engine/log.cpp @@ -17,8 +17,134 @@ * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ + #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(myConfig->readConfigString("LogDir").c_str()); + mySqliteLogFileName += "pokerth-log-" + boost::lexical_cast(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(POKERTH_BETA_RELEASE_STRING) + "\","; + sql += "\"" + boost::lexical_cast(curDate) + "\","; + sql += "\"" + boost::lexical_cast(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(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(i) + "_Cash INTEGER"; + sql += ",Seat_" + boost::lexical_cast(i) + "_Card_1 INTEGER"; + sql += ",Seat_" + boost::lexical_cast(i) + "_Card_2 INTEGER"; + sql += ",Seat_" + boost::lexical_cast(i) + "_Hand_text TEXT"; + sql += ",Seat_" + boost::lexical_cast(i) + "_Hand_int INTEGER"; + } + for(i=1; i<=5; i++) { + sql += ",BoardCard_" + boost::lexical_cast(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); + } } diff --git a/src/engine/local_engine/log.h b/src/engine/local_engine/log.h index 5b73a15d..612463ac 100644 --- a/src/engine/local_engine/log.h +++ b/src/engine/local_engine/log.h @@ -20,10 +20,24 @@ #ifndef LOG_H #define LOG_H +#include +#include + +#include "configfile.h" +#include "game_defs.h" + class Log { + public: - Log(); + Log(ConfigFile *c); + + ~Log(); + +private: + ConfigFile *myConfig; + sqlite3 *mySqliteLogDb; + }; #endif // LOG_H diff --git a/src/gui/guiinterface.h b/src/gui/guiinterface.h index 6944663f..7ec0d03f 100644 --- a/src/gui/guiinterface.h +++ b/src/gui/guiinterface.h @@ -28,6 +28,7 @@ #include class guiLog; +class Log; class Session; class gameTableImpl; diff --git a/src/gui/qt/gametable/log/guilog.cpp b/src/gui/qt/gametable/log/guilog.cpp index f1a2d846..136c7c8f 100644 --- a/src/gui/qt/gametable/log/guilog.cpp +++ b/src/gui/qt/gametable/log/guilog.cpp @@ -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(myConfig->readConfigString("LogDir").c_str()); - mySqliteLogFileName += "pokerth-log-" + boost::lexical_cast(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(POKERTH_BETA_RELEASE_STRING) + "\","; - sql += "\"" + boost::lexical_cast(curDate) + "\","; - sql += "\"" + boost::lexical_cast(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(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(i) + "_Cash INTEGER"; - sql += ",Seat_" + boost::lexical_cast(i) + "_Card_1 INTEGER"; - sql += ",Seat_" + boost::lexical_cast(i) + "_Card_2 INTEGER"; - sql += ",Seat_" + boost::lexical_cast(i) + "_Hand_text TEXT"; - sql += ",Seat_" + boost::lexical_cast(i) + "_Hand_int INTEGER"; - } - for(i=1; i<=5; i++) { - sql += ",BoardCard_" + boost::lexical_cast(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 int daysUntilWaste = myConfig->readConfigInt("LogStoreDuration"); diff --git a/src/gui/qt/guiwrapper.cpp b/src/gui/qt/guiwrapper.cpp index 10b1ee1d..d7f938e6 100644 --- a/src/gui/qt/guiwrapper.cpp +++ b/src/gui/qt/guiwrapper.cpp @@ -21,6 +21,7 @@ #include "guiwrapper.h" #include "session.h" #include "guilog.h" +#include "log.h" #include "gametableimpl.h" #include "startwindowimpl.h" #include "configfile.h" @@ -30,12 +31,13 @@ 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); myGuiLog = new guiLog(myW, myConfig); + myLog = new Log(myConfig); myW->setStartWindow(myStartWindow); } diff --git a/src/gui/qt/guiwrapper.h b/src/gui/qt/guiwrapper.h index ead7d2c5..9463c14f 100644 --- a/src/gui/qt/guiwrapper.h +++ b/src/gui/qt/guiwrapper.h @@ -28,6 +28,7 @@ class Session; class gameTableImpl; class startWindowImpl; class guiLog; +class Log; class ConfigFile; @@ -168,6 +169,7 @@ public: private: guiLog *myGuiLog; + Log *myLog; gameTableImpl *myW; ConfigFile *myConfig; startWindowImpl *myStartWindow;