#pragma once /******************************************************************** created: 2010/11/23 created: 23:11:2010 11:55 filename: d:\Svn\trunk\Server\Common\Pms\IPMSObject.h file path: d:\Svn\trunk\Server\Common\Pms file base: IPMSObject file ext: h author: youngmoon purpose: PMS 서버에서 메시지를 전송 받을때 호출 되는 순수 가상 함수들 정의 *********************************************************************/ #ifdef _JP_0_20101123_PMS #define interface struct #include typedef std::vector VLONG; /* OnRegionInfoReq 함수가 불리워 졌을때 사용자 지역 정보를 PMSConn을 통해 HA로 전송하기 위한 데이터를 생성하는 Interface @param1 : 게임 Serial Number @param2 : 게임별 카테고리 @param3 : 사용자 지역정보를 가지고 있는 Vector 일반적으로 UserInfo[i][j][k] Array로 되어 있을 경우 (i, j, k) 일때 (0,0,0) (0,0,1) ~ (0,1,0) ~ (1,0.0) 의 순으로 입력 하면 된다. @return value 없음 */ interface IPMSRegionInfoList { virtual void AddRegionInfo(DWORD dwSSN, DWORD dwCategoryID, VLONG* pvRegionStat) = 0; // by truewise - 2006.05.09 virtual void AddRegionInfo2(DWORD dwSSN, DWORD dwCategoryID, LONG pvRegionStat[238]) = 0; virtual void AddRegionInfo238(DWORD dwSSN, DWORD dwCategoryID, LONG pvRegionStat[238]) = 0; virtual void AddRegionInfo272(DWORD dwSSN, DWORD dwCategoryID, LONG pvRegionStat[238]) = 0; }; interface IPMSRegionInfoListPC { virtual void AddRegionInfoPC(DWORD dwSSN, DWORD dwCategoryID, VLONG* pvRegionStat) = 0; }; /* IPMSStatInfoList 현재 게임 서버의 통계 정보를 PMSConn을 이용하여 전송하기 위한 데이터를 생성 하는 Interface @param1 : 게임 Serial Number @param2 : 게임별 카테고리 @param3 : @param1, @param2의 조건을 만족하는 사용자 수 @param4 : 현재 게임 서버에 생성되어 있고 @param1, @param2의 조건을 만족하는 Channel 수 @param5 : 현재 게임 서버에 생성되어 있고 @param1, @param2의 조건을 만족하는 게임 방 수 @param6 : Optional 한 데이터 @return value 없음 */ interface IPMSStatInfoList { virtual void AddStatInfoList( DWORD dwSSN, DWORD dwCategory, DWORD dwCU, DWORD dwSession, DWORD dwChannelCnt, DWORD dwRoomCnt, LPCSTR pszOptionInfo) = 0; }; interface IPMSStatInfoListPC { virtual void AddStatInfoListPC( DWORD dwSSN, DWORD dwCategory, DWORD dwCU, DWORD dwSession, DWORD dwChannelCnt, DWORD dwRoomCnt, LPCSTR pszOptionInfo) = 0; }; /* IPMSPerformanceInfo현재 게임 서버의 성능 정보를 PMSConn을 이용하여 전송하기 위한 데이터를 생성 하는 Interface @param1 : 게임 서버의 상태 정보를 담고 있는 long type의 vector pointer @return value 없음 */ interface IPMSPerformanceInfo { virtual void AddPerformanceInfo(VLONG* pvPerformance) = 0; // by truewise - 2006.05.09 virtual void AddPerformanceInfo2(LONG pvPerformance[10]) = 0; }; /* IPMSObject interface PMSConn에서 호출을 위하여 생성된 Call Back Object Interface */ interface IPMSObject { public: /* Heart Beat Request 가 왔을때 불리는 함수 @param1 : sequence index @return value : 정상 상태 TRUE , 비정상 FALSE */ virtual BOOL OnHeartbeatReq(LONG lIndex) = 0; /* Order Request 가 왔을때 불리는 함수 @param1 : Order 이름 - NULL Terminate String @param2 : Order 인자 - NULL Terminate String @param3 : 결과갚 버퍼 - 성공일때 무시, 실패일때 실패 사유 입력 @param4 : 결과값 버퍼 크기 @param5 : 카테고리 ID @return value : 성공 TRUE , 실패 FALSE */ virtual BOOL OnOrderReq(LPCSTR lpszCmdName, LPCSTR lpszCtlVal, LPSTR lpResult, LONG *lpResultLen, DWORD dwSSN, DWORD dwCategoryID) = 0; /* 공지 메시지가 왔음을 알리는 함수 @param1 : 게임 Serial Number @param2 : 게임별 카테고리 @param3 : 공지 메시지 - NULL Terminate String @return value : 성공 TRUE , 실패 FALSE */ virtual BOOL OnAnnounceReq(DWORD dwSSN, DWORD dwCategoryID, LPCSTR lpszMsg) = 0; /* @param1 : IPMSPerformanceInfo * 의 포인터 @return value : 성능정보값이 있을때 TRUE, 없을때 FALSE 리턴 */ virtual BOOL OnPerformInfoReq(IPMSPerformanceInfo *pvPerform) = 0; /* @param1 : (IPMSReionInfoList* * 의 포인터 @return value : 지역정보값이 있을때 TRUE, 없을때 FALSE 리턴 */ virtual BOOL OnRegionInfoReq(IPMSRegionInfoList* plstRegionInfo) = 0; /* @param1 : IPMSStatInfoList * 의 포인터 @return value : 통계정보값이 있을때 TRUE, 없을때 FALSE 리턴 */ virtual BOOL OnStatInfoReq(IPMSStatInfoList* plstStatInfo) = 0; /* To send the statistics information for users to PMS Administrator ( in the case of internet cafe ) @param1 : The pointer of IPMSRegionInfoListPC @return value : If @param1 has the statistics information, return TRUE else return FALSE */ virtual BOOL OnRegionInfoPCReq(IPMSRegionInfoListPC* plstRegionInfo) = 0; /* To send the statistics information for users to PMS Administrator ( in the case of internet cafe ) @param1 : The pointer of IPMSStatInfoListPC @return value : If @param1 has the statistics information, return TRUE else return FALSE */ virtual BOOL OnStatInfoPCReq(IPMSStatInfoListPC* plstStatInfo) = 0; }; #endif //_JP_0_20101123_PMS