104 lines
2.7 KiB
C++
104 lines
2.7 KiB
C++
#pragma once
|
|
|
|
#include <Singleton.h>
|
|
#include <string>
|
|
|
|
#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<SunUpdateAgent>
|
|
{
|
|
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;
|
|
}; |