// ConfigTaskManager.cpp // Copyright 2000-01, Sony Online Entertainment Inc., all rights reserved. // Author: Justin Randall //----------------------------------------------------------------------- #include "FirstTaskManager.h" #include "sharedFoundation/ConfigFile.h" #include "sharedNetwork/SetupSharedNetwork.h" #include "ConfigTaskManager.h" #include //----------------------------------------------------------------------- ConfigTaskManager::Data * ConfigTaskManager::data = 0; #define KEY_INT(a,b) (data->a = ConfigFile::getKeyInt("TaskManager", #a, b)) #define KEY_BOOL(a,b) (data->a = ConfigFile::getKeyBool("TaskManager", #a, b)) #define KEY_FLOAT(a,b) (data->a = ConfigFile::getKeyFloat("TaskManager", #a, b)) #define KEY_STRING(a,b) (data->a = ConfigFile::getKeyString("TaskManager", #a, b)) //----------------------------------------------------------------------- namespace ConfigTaskManagerNamespace { typedef std::vector StringPtrArray; StringPtrArray ms_environmentVariable; // ConfigFile owns the pointer } using namespace ConfigTaskManagerNamespace; // ====================================================================== int ConfigTaskManager::getNumberOfEnvironmentVariables() { return static_cast(ms_environmentVariable.size()); } // ---------------------------------------------------------------------- char const * ConfigTaskManager::getEnvironmentVariable(int index) { VALIDATE_RANGE_INCLUSIVE_EXCLUSIVE(0, index, getNumberOfEnvironmentVariables()); return ms_environmentVariable[static_cast(index)]; } // ---------------------------------------------------------------------- void ConfigTaskManager::install(void) { SetupSharedNetwork::SetupData networkSetupData; SetupSharedNetwork::getDefaultServerSetupData(networkSetupData); SetupSharedNetwork::install(networkSetupData); data = new ConfigTaskManager::Data; KEY_BOOL (autoStart, true); KEY_STRING (clusterName, "devcluster"); KEY_BOOL (verifyClusterName, false); KEY_INT (gameServerTimeout, 600); KEY_STRING (gameServiceBindInterface, ""); KEY_INT (gameServicePort, 60001); KEY_INT (consoleConnectionPort, 60000); KEY_STRING (consoleServiceBindInterface, ""); KEY_STRING (loginServerAddress, "localhost"); KEY_INT (loginServerTaskServicePort, 44459); KEY_FLOAT (maximumLoad, 3.0f); KEY_FLOAT (loadConnectionServer, 0.5f); KEY_FLOAT (loadPlanetServer, 0.128f); KEY_FLOAT (loadGameServer, 1.0f); KEY_BOOL (publishMode, false); KEY_STRING (rcFileName, "taskmanager.rc"); KEY_BOOL (restartCentral, false); KEY_INT (restartDelayCentralServer, 60); // seconds KEY_INT (restartDelayLogServer, 30); KEY_INT (restartDelayMetricsServer, 60); KEY_INT (restartDelayCommoditiesServer, 60); KEY_INT (restartDelayTransferServer, 30); KEY_STRING (taskManagerServiceBindInterface, ""); KEY_INT (taskManagerServicePort, 50001); KEY_INT (maximumClockDriftToleranceSeconds, 10); // seconds KEY_INT (systemTimeCheckIntervalSeconds, 60); // seconds KEY_INT (clockDriftFatalIntervalSeconds, 1*60*60); // seconds int index = 0; char const * result = 0; do { result = ConfigFile::getKeyString("TaskManager", "environmentVariable", index++, 0); if (result != 0) { ms_environmentVariable.push_back(result); } } while (result); } //----------------------------------------------------------------------- void ConfigTaskManager::remove(void) { delete data; data = 0; } //-----------------------------------------------------------------------