コード例 #1
0
ファイル: main.cpp プロジェクト: zzlee/zzlab
	void initialize()
	{
		if (initialized) return;

		_RootPath = filesystem::absolute(filesystem::current_path());
		_DataPath = _RootPath / L"Data";
		_AssetsPath = _RootPath / L"Assets";

		initLogSystem();

		ZZLAB_TRACE_FUNCTION();

		for (std::vector<detail::Plugin>::iterator i = plugins.begin(); i != plugins.end(); ++i)
		{
			detail::Plugin& p = *i;

			ZZLAB_INFO("Initialize plugin: " << p.name);

			if (p.init())
				p.initialized = true;
			else
				ZZLAB_ERROR("Failed to initialize plugin: " << p.name);
		}

		filesystem::wpath settingPath = (_DataPath / L"settings.xml");
		ZZLAB_INFO("Loading " << settingPath.wstring() << " ...");
		settingsFile = new XmlFile(settingPath.string().c_str());
		_Settings.parse<0>(settingsFile->data());

		initialized = true;

		ZZLAB_INFO("Initialize succeedded");
	}
コード例 #2
0
ファイル: ws_app.cpp プロジェクト: proton/ireon
void CWorldApp::init()
{
	initI10N();
	initLogSystem();

	CLog::instance()->log(CLog::msgLvlVerbose,_("Initializing world server...\n"));

	if (!ireon::misc::printPIDToFile("ws.pid"))
		CLog::instance()->log(CLog::msgLvlWarn,_("PID file was not written!\n"));

	m_config = new CXMLConfig;
	if (!loadConfigFile("../config/config.xml")) 
	{
		CLog::instance()->log(CLog::msgLvlCritical,_("Config file loading failure!\n"));
		shutdown();
	}

	if ( SDLNet_Init() < 0 )
	{
		CLog::instance()->log(CLog::msgLvlCritical,_("Couldn't initialize net: %s\n"),
						SDLNet_GetError());
		shutdown();
	}

	m_port = atoi(m_config->getFirstValue("/config/Port").c_str());
	int maxCon = atoi(m_config->getFirstValue("/config/MaxConnections").c_str());
	m_id = atoi(m_config->getFirstValue("/config/ID").c_str());
	if( m_id == 0 )
		m_id = 1;
	String cm = m_config->getFirstValue("/config/CM");
	int cmPort = atoi(m_config->getFirstValue("/config/CMPort").c_str());


	if( !maxCon )
		maxCon = 1;

	/*=== Setting pulse handlers ===*/
	m_pulseHandlers.resize(STATE_COUNT);
	m_pulseHandlers[STATE_CONNECTING_CM] = &CWorldApp::connectingHandler;
	m_pulseHandlers[STATE_RUN] = &CWorldApp::runHandler;

	loadResources();

	if( !CWorldDB::init() )
	{
		CLog::instance()->log(CLog::msgLvlError,_("Error initialization world DB.\n"));
		shutdown();
	};

	if( !CWorld::instance()->init() )
	{
		CLog::instance()->log(CLog::msgLvlError,_("Error initialization world.\n"));
		shutdown();
	};

	Vector3 norm = CWorld::instance()->normalAt(0,0);
	CLog::instance()->log(CLog::msgLvlInfo,"(%f,%f,%f)\n",norm.x,norm.y,norm.z);
	norm = CWorld::instance()->normalAt(10,10);
	CLog::instance()->log(CLog::msgLvlInfo,"(%f,%f,%f)\n",norm.x,norm.y,norm.z);
	norm = CWorld::instance()->normalAt(100,100);
	CLog::instance()->log(CLog::msgLvlInfo,"(%f,%f,%f)\n",norm.x,norm.y,norm.z);
	norm = CWorld::instance()->normalAt(-50,-50);
	CLog::instance()->log(CLog::msgLvlInfo,"(%f,%f,%f)\n",norm.x,norm.y,norm.z);
	norm = CWorld::instance()->normalAt(10,1000);
	CLog::instance()->log(CLog::msgLvlInfo,"(%f,%f,%f)\n",norm.x,norm.y,norm.z);
	norm = CWorld::instance()->normalAt(-139,50);
	CLog::instance()->log(CLog::msgLvlInfo,"(%f,%f,%f)\n",norm.x,norm.y,norm.z);
	m_server = new CWorldServer;
	CLog::instance()->log(CLog::msgLvlInfo,_("Creating server on port %d with maximum %d connections.\n"),m_port,maxCon);
	if (! m_server->start(maxCon,m_port) )
	{
		CLog::instance()->log(CLog::msgLvlError,_("Error creating server.\n"));
		shutdown();
	}
	m_client = new CWSClient;
	m_client->initSignals();
	CLog::instance()->log(CLog::msgLvlInfo,_("Connecting to cluster manager(%s:%d).\n"),cm.c_str(),cmPort);
	if (!m_client->connect(cm.c_str(),cmPort,0))
	{
		CLog::instance()->log(CLog::msgLvlError,_("Error connect to cluster manager.\n"));
		shutdown();
	};
}