#pragma once #include #include #ifdef __20101123__UPDATE_AGENT_AUTO_RESTART #include "Schedule.h" #endif class IOCPServer; class ServerSession; class NetworkObject; class UpdateServerSession; unsigned __stdcall CheckGameServer( VOID* pParam ); BOOL CALLBACK EnumProc(HWND hWnd, LPARAM lParam); struct CallbackInfo { DWORD m_dwPID; HWND m_hWnd; }; class SunUpdateAgent : public Singleton { public: SunUpdateAgent(); ~SunUpdateAgent(); public: enum { CLIENT_IOHANDLER = 0, SERVER_IOHANDLER = 1, }; BOOL Init(); VOID Run(); BOOL Update(); VOID Release(); BOOL StartCheckGameServer(); private: VOID StartClientSideListen(); BOOL IsShutDown(){ return m_bIsShutDown; } BOOL ProcessConsole(); VOID UpdateFPS(); VOID DisplayAgentInfo(); #ifdef __20101123__UPDATE_AGENT_AUTO_RESTART void UpdateForAutoRestart(); void AutoStop(); void AutoStart(); void StopServer(BYTE server_type); void StartServer(BYTE server_type); #endif //Server public: DWORD ConnectToServer( NetworkObject* pNetworkObjet, const TCHAR* pszIP, WORD wPort ); //UpdateServer VOID SetUpdateServerIPAddr( const TCHAR* pszIP, WORD wPort ); BOOL SendToUpdateServer( VOID * pMsg, WORD wSize ); BOOL ConnectToUpdateServer(); VOID DisconnectUpdateServer(); BOOL IsConnectUpdateServer(); #ifdef _NA_006662_20130423_SVNPATCH void CheckPatchProcess(); #endif //_NA_006662_20130423_SVNPATCH //Function public: DWORD GetAgentKey(){ return m_dwAgentKey; } VOID SetAgentKey( DWORD dwAgentKey ){ m_dwAgentKey = dwAgentKey; } VOID SetCheckThread( BOOL bRun ){ m_bRunCheckThread = bRun; } #ifdef _NA_006662_20130423_SVNPATCH VOID SetPatchingSVNmode(BOOL _isstart) {patching_svnmode_ = _isstart;} BOOL GetPatchingSVNmode() {return patching_svnmode_;} VOID SetPatchingUserKey(const DWORD& key) { patching_userkey_ = key;} DWORD GetPatchingUserKey() {return patching_userkey_;} VOID SendPatchResultToServer_SVN(); #endif //_NA_006662_20130423_SVNPATCH private: IOCPServer* m_pIOCPServer; BOOL m_bIsShutDown; std::string m_strInSideIP; WORD m_wInnerPort; std::string m_strOutSideIP; WORD m_wOutSidePort; DWORD m_dwAgentKey; DWORD m_dwFPS; #ifdef _NA_006662_20130423_SVNPATCH BOOL patching_svnmode_; //½ºÅ©¸³Æ®¸¦ SVN¸ðµå·Î ÆÐÄ¡ÇÑ´Ù. DWORD patching_userkey_; //ÇöÀç ÆÐÄ¡ÀÛ¾÷À» Çϰí ÀÖ´Â À¯ÀúŰ #endif //_NA_006662_20130423_SVNPATCH UpdateServerSession* m_pUpdateServerSession; HANDLE m_hCheckThread; #ifdef __20101123__UPDATE_AGENT_AUTO_RESTART ScheduleToken m_AutoStopSchedule; ScheduleToken m_AutoStartSchedule; #endif public: BOOL m_bRunCheckThread; };