![]() |
Shadowrun: Awakened 29 September 2011 - Build 871
|
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.