コード例 #1
0
ファイル: SevenGameServer.cpp プロジェクト: CCJY/CGSF
static DWORD StartSevenGameService(LPDWORD param)
{
	SFBreakPad exceptionHandler;
	exceptionHandler.Install();

	TCHAR szFilePath[MAX_PATH] = { 0, };
	GetModuleFileName(NULL, szFilePath, MAX_PATH);
	TCHAR* szPath = SFUtil::ExtractPathInfo(szFilePath, SFUtil::PATH_DIR);
	SetCurrentDirectory(szPath);

	SFLogicEntry* pLogicEntry = new SFLogicEntry();
	pLogicEntry->AddGameMode(GAMEMODE_TRAINING, new SGTraining(GAMEMODE_TRAINING));
	pLogicEntry->AddGameMode(GAMEMODE_BATTLE, new SGBattle(GAMEMODE_BATTLE));

	/////////////////////////////////////////////////////////////////////
	SFEngine::GetInstance()->Intialize(pLogicEntry, new SFPacketProtocol<SevenGameProtocol>);
	SFEngine::GetInstance()->AddTimer(0, 500, 1000);
	SFEngine::GetInstance()->Start();

	google::FlushLogFiles(google::GLOG_INFO);

#ifdef _DEBUG
	getchar();
#else
	WaitForSingleObject(SFServiceController::killServiceEvent, INFINITE);
#endif

	SFEngine::GetInstance()->ShutDown();

	return 0;
}
コード例 #2
0
ファイル: SevenGameServer.cpp プロジェクト: Buffer429/CGSF
DWORD WINAPI ServiceWorkerThread(LPVOID lpParam)
{
	TCHAR szFilePath[MAX_PATH] = { 0, };
	GetModuleFileName(NULL, szFilePath, MAX_PATH);
	TCHAR* szPath = SFUtil::ExtractPathInfo(szFilePath, SFUtil::PATH_DIR);
	SetCurrentDirectory(szPath);

	SFLogicEntry* pLogicEntry = new SFLogicEntry();
	pLogicEntry->AddGameMode(GAMEMODE_TRAINING, new SGTraining(GAMEMODE_TRAINING));
	pLogicEntry->AddGameMode(GAMEMODE_BATTLE, new SGBattle(GAMEMODE_BATTLE));

	/////////////////////////////////////////////////////////////////////
	SFEngine::GetInstance()->Intialize(pLogicEntry);
	SFEngine::GetInstance()->AddPacketProtocol(0, new SFPacketProtocol<SevenGameProtocol>);
	SFEngine::GetInstance()->AddTimer(0, 500, 1000);
	SFEngine::GetInstance()->Start(0);

	google::FlushLogFiles(google::GLOG_INFO);

#ifdef _DEBUG
	getchar();
#else
	while (WaitForSingleObject(g_ServiceStopEvent, 0) != WAIT_OBJECT_0)
	{
		Sleep(3000);
	}
#endif

	SFEngine::GetInstance()->ShutDown();

	return ERROR_SUCCESS;
}