diff options
author | Nay <dnpd.dd@gmail.com> | 2013-07-28 16:59:07 +0100 |
---|---|---|
committer | Nay <dnpd.dd@gmail.com> | 2013-07-28 16:59:07 +0100 |
commit | f71d894a215ed7cd9052913c9b07c8f62f0e99ca (patch) | |
tree | d1253ba869f0195c23d05630cbd7315dd07e1421 /src/server/worldserver/Master.cpp | |
parent | 62918e92d0493978e16f5fb1365818e9efa8461b (diff) |
Servers: Fix some code style issues in world and authserver
Diffstat (limited to 'src/server/worldserver/Master.cpp')
-rw-r--r-- | src/server/worldserver/Master.cpp | 192 |
1 files changed, 89 insertions, 103 deletions
diff --git a/src/server/worldserver/Master.cpp b/src/server/worldserver/Master.cpp index 69b163b4a4b..c65fc903ffc 100644 --- a/src/server/worldserver/Master.cpp +++ b/src/server/worldserver/Master.cpp @@ -54,18 +54,18 @@ extern int m_ServiceStatus; class WorldServerSignalHandler : public Trinity::SignalHandler { public: - virtual void HandleSignal(int SigNum) + virtual void HandleSignal(int sigNum) { - switch (SigNum) + switch (sigNum) { case SIGINT: World::StopNow(RESTART_EXIT_CODE); break; case SIGTERM: - #ifdef _WIN32 +#ifdef _WIN32 case SIGBREAK: if (m_ServiceStatus != 1) - #endif /* _WIN32 */ +#endif World::StopNow(SHUTDOWN_EXIT_CODE); break; } @@ -74,33 +74,35 @@ class WorldServerSignalHandler : public Trinity::SignalHandler class FreezeDetectorRunnable : public ACE_Based::Runnable { +private: + uint32 _loops; + uint32 _lastChange; + uint32 _delaytime; public: FreezeDetectorRunnable() { _delaytime = 0; } - uint32 m_loops, m_lastchange; - uint32 w_loops, w_lastchange; - uint32 _delaytime; + void SetDelayTime(uint32 t) { _delaytime = t; } - void run(void) + + void run() OVERRIDE { if (!_delaytime) return; + TC_LOG_INFO(LOG_FILTER_WORLDSERVER, "Starting up anti-freeze thread (%u seconds max stuck time)...", _delaytime/1000); - m_loops = 0; - w_loops = 0; - m_lastchange = 0; - w_lastchange = 0; + _loops = 0; + _lastChange = 0; while (!World::IsStopped()) { ACE_Based::Thread::Sleep(1000); uint32 curtime = getMSTime(); // normal work - if (w_loops != World::m_worldLoopCounter) + if (_loops != World::m_worldLoopCounter) { - w_lastchange = curtime; - w_loops = World::m_worldLoopCounter; + _lastChange = curtime; + _loops = World::m_worldLoopCounter; } // possible freeze - else if (getMSTimeDiff(w_lastchange, curtime) > _delaytime) + else if (getMSTimeDiff(_lastChange, curtime) > _delaytime) { TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "World Thread hangs, kicking out server!"); ASSERT(false); @@ -110,14 +112,6 @@ public: } }; -Master::Master() -{ -} - -Master::~Master() -{ -} - /// Main function int Master::Run() { @@ -138,17 +132,16 @@ int Master::Run() TC_LOG_INFO(LOG_FILTER_WORLDSERVER, "http://TrinityCore.org \\/__/\n"); /// worldserver PID file creation - std::string pidfile = sConfigMgr->GetStringDefault("PidFile", ""); - if (!pidfile.empty()) + std::string pidFile = sConfigMgr->GetStringDefault("PidFile", ""); + if (!pidFile.empty()) { - uint32 pid = CreatePIDFile(pidfile); - if (!pid) + if (uint32 pid = CreatePIDFile(pidFile)) + TC_LOG_INFO(LOG_FILTER_WORLDSERVER, "Daemon PID: %u\n", pid); + else { - TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Cannot create PID file %s.\n", pidfile.c_str()); + TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Cannot create PID file %s.\n", pidFile.c_str()); return 1; } - - TC_LOG_INFO(LOG_FILTER_WORLDSERVER, "Daemon PID: %u\n", pid); } ///- Start the databases @@ -162,22 +155,22 @@ int Master::Run() sWorld->SetInitialWorldSettings(); ///- Initialize the signal handlers - WorldServerSignalHandler SignalINT, SignalTERM; + WorldServerSignalHandler signalINT, signalTERM; #ifdef _WIN32 - WorldServerSignalHandler SignalBREAK; + WorldServerSignalHandler signalBREAK; #endif /* _WIN32 */ ///- Register worldserver's signal handlers - ACE_Sig_Handler Handler; - Handler.register_handler(SIGINT, &SignalINT); - Handler.register_handler(SIGTERM, &SignalTERM); - #ifdef _WIN32 - Handler.register_handler(SIGBREAK, &SignalBREAK); - #endif /* _WIN32 */ + ACE_Sig_Handler handle; + handle.register_handler(SIGINT, &signalINT); + handle.register_handler(SIGTERM, &signalTERM); +#ifdef _WIN32 + handle.register_handler(SIGBREAK, &signalBREAK); +#endif ///- Launch WorldRunnable thread - ACE_Based::Thread world_thread(new WorldRunnable); - world_thread.setPriority(ACE_Based::Highest); + ACE_Based::Thread worldThread(new WorldRunnable); + worldThread.setPriority(ACE_Based::Highest); ACE_Based::Thread* cliThread = NULL; @@ -191,41 +184,33 @@ int Master::Run() cliThread = new ACE_Based::Thread(new CliRunnable); } - ACE_Based::Thread rar_thread(new RARunnable); + ACE_Based::Thread rarThread(new RARunnable); ///- Handle affinity for multiple processors and process priority on Windows - #ifdef _WIN32 +#ifdef _WIN32 { HANDLE hProcess = GetCurrentProcess(); - uint32 Aff = sConfigMgr->GetIntDefault("UseProcessors", 0); - if (Aff > 0) + uint32 affinity = sConfigMgr->GetIntDefault("UseProcessors", 0); + if (affinity > 0) { ULONG_PTR appAff; ULONG_PTR sysAff; if (GetProcessAffinityMask(hProcess, &appAff, &sysAff)) { - ULONG_PTR curAff = Aff & appAff; // remove non accessible processors + ULONG_PTR currentAffinity = affinity & appAff; // remove non accessible processors - if (!curAff) - { - TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Processors marked in UseProcessors bitmask (hex) %x are not accessible for the worldserver. Accessible processors bitmask (hex): %x", Aff, appAff); - } + if (!currentAffinity) + TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Processors marked in UseProcessors bitmask (hex) %x are not accessible for the worldserver. Accessible processors bitmask (hex): %x", affinity, appAff); + else if (SetProcessAffinityMask(hProcess, currentAffinity)) + TC_LOG_INFO(LOG_FILTER_WORLDSERVER, "Using processors (bitmask, hex): %x", currentAffinity); else - { - if (SetProcessAffinityMask(hProcess, curAff)) - TC_LOG_INFO(LOG_FILTER_WORLDSERVER, "Using processors (bitmask, hex): %x", curAff); - else - TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Can't set used processors (hex): %x", curAff); - } + TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Can't set used processors (hex): %x", currentAffinity); } } - bool Prio = sConfigMgr->GetBoolDefault("ProcessPriority", false); - - //if (Prio && (m_ServiceStatus == -1) /* need set to default process priority class in service mode*/) - if (Prio) + if (bool priority = sConfigMgr->GetBoolDefault("ProcessPriority", false)) { if (SetPriorityClass(hProcess, HIGH_PRIORITY_CLASS)) TC_LOG_INFO(LOG_FILTER_WORLDSERVER, "worldserver process priority class set to HIGH"); @@ -233,31 +218,32 @@ int Master::Run() TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Can't set worldserver process priority class."); } } - #endif +#endif + //Start soap serving thread - ACE_Based::Thread* soap_thread = NULL; + ACE_Based::Thread* soapThread = NULL; if (sConfigMgr->GetBoolDefault("SOAP.Enabled", false)) { TCSoapRunnable* runnable = new TCSoapRunnable(); - runnable->setListenArguments(sConfigMgr->GetStringDefault("SOAP.IP", "127.0.0.1"), uint16(sConfigMgr->GetIntDefault("SOAP.Port", 7878))); - soap_thread = new ACE_Based::Thread(runnable); + runnable->SetListenArguments(sConfigMgr->GetStringDefault("SOAP.IP", "127.0.0.1"), uint16(sConfigMgr->GetIntDefault("SOAP.Port", 7878))); + soapThread = new ACE_Based::Thread(runnable); } ///- Start up freeze catcher thread - if (uint32 freeze_delay = sConfigMgr->GetIntDefault("MaxCoreStuckTime", 0)) + if (uint32 freezeDelay = sConfigMgr->GetIntDefault("MaxCoreStuckTime", 0)) { FreezeDetectorRunnable* fdr = new FreezeDetectorRunnable(); - fdr->SetDelayTime(freeze_delay * 1000); - ACE_Based::Thread freeze_thread(fdr); - freeze_thread.setPriority(ACE_Based::Highest); + fdr->SetDelayTime(freezeDelay * 1000); + ACE_Based::Thread freezeThread(fdr); + freezeThread.setPriority(ACE_Based::Highest); } ///- Launch the world listener socket - uint16 wsport = uint16(sWorld->getIntConfig(CONFIG_PORT_WORLD)); - std::string bind_ip = sConfigMgr->GetStringDefault("BindIP", "0.0.0.0"); + uint16 worldPort = uint16(sWorld->getIntConfig(CONFIG_PORT_WORLD)); + std::string bindIp = sConfigMgr->GetStringDefault("BindIP", "0.0.0.0"); - if (sWorldSocketMgr->StartNetwork(wsport, bind_ip.c_str()) == -1) + if (sWorldSocketMgr->StartNetwork(worldPort, bindIp.c_str()) == -1) { TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Failed to start network"); World::StopNow(ERROR_EXIT_CODE); @@ -271,14 +257,14 @@ int Master::Run() // when the main thread closes the singletons get unloaded // since worldrunnable uses them, it will crash if unloaded after master - world_thread.wait(); - rar_thread.wait(); + worldThread.wait(); + rarThread.wait(); - if (soap_thread) + if (soapThread) { - soap_thread->wait(); - soap_thread->destroy(); - delete soap_thread; + soapThread->wait(); + soapThread->destroy(); + delete soapThread; } // set server offline @@ -298,7 +284,7 @@ int Master::Run() // this only way to terminate CLI thread exist at Win32 (alt. way exist only in Windows Vista API) //_exit(1); // send keyboard input to safely unblock the CLI thread - INPUT_RECORD b[5]; + INPUT_RECORD b[4]; HANDLE hStdIn = GetStdHandle(STD_INPUT_HANDLE); b[0].EventType = KEY_EVENT; b[0].Event.KeyEvent.bKeyDown = TRUE; @@ -354,78 +340,78 @@ bool Master::_StartDB() { MySQL::Library_Init(); - std::string dbstring; - uint8 async_threads, synch_threads; + std::string dbString; + uint8 asyncThreads, synchThreads; - dbstring = sConfigMgr->GetStringDefault("WorldDatabaseInfo", ""); - if (dbstring.empty()) + dbString = sConfigMgr->GetStringDefault("WorldDatabaseInfo", ""); + if (dbString.empty()) { TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "World database not specified in configuration file"); return false; } - async_threads = uint8(sConfigMgr->GetIntDefault("WorldDatabase.WorkerThreads", 1)); - if (async_threads < 1 || async_threads > 32) + asyncThreads = uint8(sConfigMgr->GetIntDefault("WorldDatabase.WorkerThreads", 1)); + if (asyncThreads < 1 || asyncThreads > 32) { TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "World database: invalid number of worker threads specified. " "Please pick a value between 1 and 32."); return false; } - synch_threads = uint8(sConfigMgr->GetIntDefault("WorldDatabase.SynchThreads", 1)); - ///- Initialise the world database - if (!WorldDatabase.Open(dbstring, async_threads, synch_threads)) + synchThreads = uint8(sConfigMgr->GetIntDefault("WorldDatabase.SynchThreads", 1)); + ///- Initialize the world database + if (!WorldDatabase.Open(dbString, asyncThreads, synchThreads)) { - TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Cannot connect to world database %s", dbstring.c_str()); + TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Cannot connect to world database %s", dbString.c_str()); return false; } ///- Get character database info from configuration file - dbstring = sConfigMgr->GetStringDefault("CharacterDatabaseInfo", ""); - if (dbstring.empty()) + dbString = sConfigMgr->GetStringDefault("CharacterDatabaseInfo", ""); + if (dbString.empty()) { TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Character database not specified in configuration file"); return false; } - async_threads = uint8(sConfigMgr->GetIntDefault("CharacterDatabase.WorkerThreads", 1)); - if (async_threads < 1 || async_threads > 32) + asyncThreads = uint8(sConfigMgr->GetIntDefault("CharacterDatabase.WorkerThreads", 1)); + if (asyncThreads < 1 || asyncThreads > 32) { TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Character database: invalid number of worker threads specified. " "Please pick a value between 1 and 32."); return false; } - synch_threads = uint8(sConfigMgr->GetIntDefault("CharacterDatabase.SynchThreads", 2)); + synchThreads = uint8(sConfigMgr->GetIntDefault("CharacterDatabase.SynchThreads", 2)); - ///- Initialise the Character database - if (!CharacterDatabase.Open(dbstring, async_threads, synch_threads)) + ///- Initialize the Character database + if (!CharacterDatabase.Open(dbString, asyncThreads, synchThreads)) { - TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Cannot connect to Character database %s", dbstring.c_str()); + TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Cannot connect to Character database %s", dbString.c_str()); return false; } ///- Get login database info from configuration file - dbstring = sConfigMgr->GetStringDefault("LoginDatabaseInfo", ""); - if (dbstring.empty()) + dbString = sConfigMgr->GetStringDefault("LoginDatabaseInfo", ""); + if (dbString.empty()) { TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Login database not specified in configuration file"); return false; } - async_threads = uint8(sConfigMgr->GetIntDefault("LoginDatabase.WorkerThreads", 1)); - if (async_threads < 1 || async_threads > 32) + asyncThreads = uint8(sConfigMgr->GetIntDefault("LoginDatabase.WorkerThreads", 1)); + if (asyncThreads < 1 || asyncThreads > 32) { TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Login database: invalid number of worker threads specified. " "Please pick a value between 1 and 32."); return false; } - synch_threads = uint8(sConfigMgr->GetIntDefault("LoginDatabase.SynchThreads", 1)); + synchThreads = uint8(sConfigMgr->GetIntDefault("LoginDatabase.SynchThreads", 1)); ///- Initialise the login database - if (!LoginDatabase.Open(dbstring, async_threads, synch_threads)) + if (!LoginDatabase.Open(dbString, asyncThreads, synchThreads)) { - TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Cannot connect to login database %s", dbstring.c_str()); + TC_LOG_ERROR(LOG_FILTER_WORLDSERVER, "Cannot connect to login database %s", dbString.c_str()); return false; } |