Shadowrun: Awakened 29 September 2011 - Build 871
main.cpp
Go to the documentation of this file.
00001 /*
00002 * WorldServer Entry
00003 *
00004 * @Author Michael <Tharbas> Matzen
00005 *
00006 * This program is free software; you can redistribute it and/or modify it
00007 * under the terms of the GNU General Public License as published by the Free
00008 * Software Foundation; either version 2 of the License, or (at your option)
00009 * any later version.
00010 *
00011 * This program is distributed in the hope that it will be useful, but WITHOUT
00012 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00013 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
00014 * more details.
00015 *
00016 * You should have received a copy of the GNU General Public License along with
00017 * this program; if not, write to the Free Software Foundation, Inc., 51
00018 * Franklin St, Fifth Floor, Boston, MA 02110, USA
00019 * 
00020 */
00021 
00022 //#include <iostream>
00023 //#include <sstream>
00024 //#include <memory>
00025 //#include <string>
00026 //#include <stdexcept>
00027 //
00028 // SQL includes:
00029 //#include <mysql_driver.h>
00030 //#include <cppconn/driver.h>
00031 //#include <cppconn/exception.h>
00032 //#include <cppconn/resultset.h>
00033 //#include <cppconn/statement.h>
00034 //#include "mysql.h"
00035 //using namespace std;
00036 //#include "DbConnectionFactory.h"
00037 //#include "DbProcedures.h";
00038 //#include "boost\bind.hpp";
00039 //#include "SraPacket.h"
00040 //#include "SraNetworkShared.h"
00041 //#include "NetworkHelper.h"
00042 
00043 // Debugging / Testing
00044 //#include "GetServerListPacket.h"
00045 //#include "ConnectToServerPacket.h"
00046 //#include "GetClientCharactersPacket.h"
00047 #include "WindowsIncludes.h"
00048 #include "WorldServer.h"
00049 #include "MessagePump.h"
00050 
00051 int main() 
00052 {
00053     /* Get client characters: 
00054     SraNetwork::GetClientCharactersPacket packet;
00055     packet.charId = 1234;
00056     packet.charLevel = 5;
00057     packet.charName = "Tharbas";
00058     packet.charRace = "Human";
00059 
00060     char* buffer = new char[SraNetwork::ConnectToServerPacket::PACKAGE_SIZE];   
00061     ZeroMemory( buffer, sizeof(buffer));
00062 
00063     packet.Serialize(buffer);
00064 
00065     SraNetwork::GetClientCharactersPacket clientPacket;
00066     clientPacket.Deserialize(buffer);
00067     */
00068 
00069     /* Connect to server flow:
00070     SraNetwork::ConnectToServerPacket pack;
00071     char* buffer = new char[SraNetwork::ConnectToServerPacket::PACKAGE_SIZE];
00072     pack.zoneID = 15;
00073     ZeroMemory( &pack.info, sizeof(SraNetwork::SraServerInfo));
00074     pack.Serialize(buffer);
00075 
00076     SraNetwork::ConnectToServerPacket rec;
00077     rec.Deserialize(buffer);
00078 
00079     rec.info.currentNumberOfPlayers = 15;
00080     rec.info.ip = "127.0.0.1:4821";
00081     rec.info.name = "Debug Server Instance";
00082     char* buffer2 = new char[SraNetwork::ConnectToServerPacket::PACKAGE_SIZE];
00083     rec.Serialize(buffer2);
00084 
00085     pack.Deserialize(buffer2);
00086 
00087     delete buffer;
00088     delete buffer2;
00089     */
00090 
00091     //pack.Deserialize(buffer);
00092     //wchar_t* user = L"Test";
00093     //wchar_t* pw = L"Password";
00094 
00095     //char* dat = new char[SraNetwork::PACKAGE_DATA_SIZE];
00096 
00097     //memset(dat, 0, SraNetwork::PACKAGE_DATA_SIZE);
00098 
00099 
00100     //dat[0] = SraNetwork::ID_LOGIN_REQ;
00101     //dat[1] = wcslen(user);
00102     //dat[2] = wcslen(pw);
00103 
00104     //size_t sizeofUser = wcslen(user) * sizeof(wchar_t*);
00105     //size_t sizeofPw = wcslen(pw) * sizeof(wchar_t*);
00106     //
00108     //memcpy_s( dat + 3 + sizeofUser, sizeofPw, pw, sizeofPw);*/
00109 
00110     //SraNetwork::Helpers::StoreWStringInBuffer( user, dat+3);
00111     //SraNetwork::Helpers::StoreWStringInBuffer( pw, dat+3+wcslen(user));
00112 
00113 
00114     //SraNetwork::SraPacket::GetPacketFromData(dat);
00115     
00116     //delete dat;
00117     /*SraNetwork::WorldServer server;
00118     if (!server.Initialize()) 
00119     {
00120         printf("World failed to initialize correctly ... terminating\n");
00121         return -1;
00122     }
00123     */
00124     tbb::tbb_thread clientThread( &SraNetwork::WorldServer::ClientConnectionThread );
00125     tbb::tbb_thread zoneThread( &SraNetwork::WorldServer::ZoneServerConnectionThread );
00126     tbb::tbb_thread chatThread( &SraNetwork::WorldServer::ChatServerConnectionThread );
00127     tbb::tbb_thread messageThread( &SraNetwork::MessagePump::Run );
00128     zoneThread.join();
00129     clientThread.join();
00130     chatThread.join();
00131     messageThread.join();
00132 
00133     //boost::thread workerThread ( boost::bind(&SraNetwork::WorldServer::Work,server) );
00134     //boost::thread clientConnectionThread ( boost::bind(&SraNetwork::WorldServer::ClientConnectionThread,server) );
00136 
00137     //workerThread.join();
00138     //clientConnectionThread.join();
00139     //return 0;
00140 }
00141 
00142 #pragma region DB-Test Code
00143 
00144     //SraData::DbConnectionFactory factory("tcp://127.0.0.1:3306", "root", "SRA_Dev", "sra_dev");
00146     //int pID;
00147     //const std::string& name = "abc";
00148     //const std::string& pw = "def";
00149     //int zid;
00150     //int pd;
00151     //try
00152     //{
00153     //SraData::DbProcedures::createPlayer(name, pw, &pID);
00154     //SraData::DbProcedures::getPcZone(1, &zid, &pd);
00155 
00156     //}
00157     //catch (sql::SQLException e)
00158     //{
00159     //  cout << "Error message: " << e.what() << endl;
00160     //  system("pause");
00161     //  exit(1);
00162     //}
00163     //
00164     //cout << "PC zone : " << zid << " query : " << pd << endl;
00165     //system("Pause");
00166     //exit(1);
00167     /*const std::string dbname = "tcp://127.0.0.1";
00168         const std::string user = "root";
00169         const std::string pw = "SRA_Dev";
00170     
00171     MYSQL sql;
00172     mysql_init(&sql);
00173     if (!mysql_real_connect(&sql, "127.0.0.1", "root", "SRA_Dev", "sra_dev", 3306, NULL, 0))
00174     {
00175         cout << "Connection failed";
00176     }
00177     else 
00178     {
00179         cout << "Connected !!";
00180     }*/
00181     /*sql::mysql::MySQL_Driver* driver;
00182     driver = (sql::mysql::MySQL_Driver*)malloc( sizeof(sql::mysql::MySQL_Driver));
00183     sql::Connection *con;
00184     con = (sql::Connection*)malloc(sizeof(sql::Connection));
00185     driver = sql::mysql::get_mysql_driver_instance();
00186         
00187     con = driver->connect(dbname, user, pw);*/
00188         //auto_ptr<sql::Connection>  con (driver -> connect(dbname, user, pw));
00189 //delete con;
00190     
00191 //  try
00192 //  {
00193 //      //_driver = sql::mysql::MySQL_Driver::Instance();
00194 //  }
00195 //  catch (sql::SQLException e)
00196 //  {
00197 //      cout << "Could not get a database driver. Error message: " << e.what() << endl;
00198 //      system("pause");
00199 //      exit(1);
00200 //  }
00201 //
00202 //  //SraData::DbProcedures::createPlayer("lala", "lili", &pID);
00203 //  try
00204 //  {
00205 //      const std::string dbname = "localhost";
00206 //      const std::string user = "root";
00207 //      const std::string pw = "SRA_Dev";
00208 //      
00209 //      //sql::Connection *con = _driver->connect("localhost", "root", "SRA_Dev");
00210 //      //con->setSchema("sra_dev");
00211 //  }
00212 //  catch (sql::SQLException e)
00213 //  {
00214 //      cout << "Could not get a database driver. Error message: " << e.what() << endl;
00215 //      system("pause");
00216 //      exit(1);
00217 //  }
00218 #pragma endregion

Copyright © 2007-2010 by The Shadowrun: Awakened Team. This work is licensed under the GNU Lesser General Public License 3.

GNU Lesser General Public License 3 Sourceforge.net