bool DirectHiveApp::initialiseService() { //Load up databases { Poco::AutoPtr<Poco::Util::AbstractConfiguration> globalDBConf(config().createView("Database")); Poco::AutoPtr<Poco::Util::AbstractConfiguration> objDBConf(config().createView("ObjectDB")); try { Poco::Logger& dbLogger = Poco::Logger::get("Database"); _charDb = DatabaseLoader::Create(globalDBConf); if (!_charDb->initialise(dbLogger,DatabaseLoader::MakeConnParams(globalDBConf))) return false; _objDb = _charDb; if (objDBConf->getBool("Use",false)) { Poco::Logger& objDBLogger = Poco::Logger::get("ObjectDB"); _objDb = DatabaseLoader::Create(objDBConf); if (!_objDb->initialise(objDBLogger,DatabaseLoader::MakeConnParams(objDBConf))) return false; } } catch (const DatabaseLoader::CreationError& e) { logger().critical(e.displayText()); return false; } } //Create character datasource { static const string defaultID = "PlayerUID"; static const string defaultWS = "Worldspace"; Poco::AutoPtr<Poco::Util::AbstractConfiguration> charDBConf(config().createView("Characters")); _charData.reset(new SqlCharDataSource(logger(),_charDb,charDBConf->getString("IDField",defaultID),charDBConf->getString("WSField",defaultWS))); } //Create object datasource { Poco::AutoPtr<Poco::Util::AbstractConfiguration> objConf(config().createView("Objects")); _objData.reset(new SqlObjDataSource(logger(),_objDb,objConf.get())); } //Create custom datasource _customData.reset(new CustomDataSource(logger(),_charDb,_objDb)); _charDb->allowAsyncOperations(); if (_objDb != _charDb) _objDb->allowAsyncOperations(); return true; }
bool DirectHiveApp::initialiseService() { _charDb = DatabaseLoader::create(DatabaseLoader::DBTYPE_MYSQL); Poco::Logger& dbLogger = Poco::Logger::get("Database"); dbLogger.setLevel("trace"); string initString; { Poco::AutoPtr<Poco::Util::AbstractConfiguration> globalDBConf(config().createView("Database")); initString = DatabaseLoader::makeInitString(globalDBConf); } if (!_charDb->Initialize(dbLogger,initString)) return false; _charDb->AllowAsyncTransactions(); _objDb = _charDb; //pass the db along to character datasource { Poco::AutoPtr<Poco::Util::AbstractConfiguration> charDBConf(config().createView("Characters")); _charData.reset(new SqlCharDataSource(_logger, _charDb,charDBConf->getString("IDField","PlayerUID"),charDBConf->getString("WSField","Worldspace"))); } Poco::AutoPtr<Poco::Util::AbstractConfiguration> objDBConf(config().createView("ObjectDB")); bool useExternalObjDb = objDBConf->getBool("Use",false); if (useExternalObjDb) { try { _objDb = DatabaseLoader::create(objDBConf); } catch (const DatabaseLoader::CreationError&) { return false; } Poco::Logger& objDBLogger = Poco::Logger::get("ObjectDB"); objDBLogger.setLevel("trace"); if (!_objDb->Initialize(objDBLogger,DatabaseLoader::makeInitString(objDBConf))) return false; _objDb->AllowAsyncTransactions(); } Poco::AutoPtr<Poco::Util::AbstractConfiguration> objConf(config().createView("Objects")); _objData.reset(new SqlObjDataSource(_logger,_objDb,objConf.get())); return true; }
bool DirectHiveApp::initialiseService() { _charDb = DatabaseLoader::create(DatabaseLoader::DBTYPE_MYSQL); Poco::Logger& dbLogger = Poco::Logger::get("Database"); string initString; { Poco::AutoPtr<Poco::Util::AbstractConfiguration> globalDBConf(config().createView("Database")); initString = DatabaseLoader::makeInitString(globalDBConf); } if (!_charDb->initialise(dbLogger,initString)) return false; _charDb->allowAsyncOperations(); _objDb = _charDb; //pass the db along to character datasource { static const string defaultID = "PlayerUID"; static const string defaultWS = "Worldspace"; Poco::AutoPtr<Poco::Util::AbstractConfiguration> charDBConf(config().createView("Characters")); _charData.reset(new SqlCharDataSource(logger(),_charDb,charDBConf->getString("IDField",defaultID),charDBConf->getString("WSField",defaultWS))); } //pass db to custom loadout datasource { _customLoadoutData.reset(new SqlCustomLoadoutSource(logger(), _objDb)); } //pass db to custom datasource { _customData.reset(new SqlCustDataSource(logger(), _objDb)); } Poco::AutoPtr<Poco::Util::AbstractConfiguration> objDBConf(config().createView("ObjectDB")); bool useExternalObjDb = objDBConf->getBool("Use",false); if (useExternalObjDb) { try { _objDb = DatabaseLoader::create(objDBConf); } catch (const DatabaseLoader::CreationError&) { return false; } Poco::Logger& objDBLogger = Poco::Logger::get("ObjectDB"); if (!_objDb->initialise(objDBLogger,DatabaseLoader::makeInitString(objDBConf))) return false; _objDb->allowAsyncOperations(); } Poco::AutoPtr<Poco::Util::AbstractConfiguration> objConf(config().createView("Objects")); _objData.reset(new SqlObjDataSource(logger(),_objDb,objConf.get())); return true; }