140 lines
5.3 KiB
C++
140 lines
5.3 KiB
C++
#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 <vector>
|
|
|
|
typedef std::vector<LONG> VLONG;
|
|
/*
|
|
OnRegionInfoReq 함수가 불리워 졌을때 사용자 지역 정보를 PMSConn을 통해 HA로 전송하기 위한 데이터를 생성하는 Interface
|
|
@param1 : 게임 Serial Number
|
|
@param2 : 게임별 카테고리
|
|
@param3 : 사용자 지역정보를 가지고 있는 Vector<LONG> 일반적으로 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
|