77 lines
2.9 KiB
C++
77 lines
2.9 KiB
C++
#pragma once
|
|
|
|
/********************************************************************
|
|
created: 2010/11/23
|
|
created: 23:11:2010 18:23
|
|
filename: d:\Svn\trunk\Server\Common\Pms\PMSObserver.h
|
|
file path: d:\Svn\trunk\Server\Common\Pms
|
|
file base: PMSObserver
|
|
file ext: h
|
|
author: youngmoon
|
|
|
|
purpose: PMS 이벤트를 받고 값을 보낸다.
|
|
*********************************************************************/
|
|
|
|
#ifdef _JP_0_20101123_PMS
|
|
|
|
#include "IPMSObject.h"
|
|
|
|
/********************************************************************
|
|
공지를 보내는 작업은 라이브러리 단이 아니라 서버단에서 이루워진다.
|
|
그렇기 때문에 공지를 보내는 서버에서 IAnnounceRequest 추상 클래스를 상속받는 객체를 만들어
|
|
공지 전송을 처리 하도록 한다.*/
|
|
class IAnnounceRequest
|
|
{
|
|
public:
|
|
virtual BOOL OnAnnounceReq(LPCSTR lpszMsg) = 0;
|
|
};
|
|
/*********************************************************************/
|
|
|
|
|
|
class PMSObserver : public IPMSObject
|
|
{
|
|
public:
|
|
PMSObserver(void);
|
|
virtual ~PMSObserver(void);
|
|
|
|
public:
|
|
virtual BOOL OnAnnounceReq(DWORD dwSSN, DWORD dwCategoryID, LPCSTR lpszMsg);
|
|
virtual BOOL OnHeartbeatReq(LONG lIndex);
|
|
virtual BOOL OnRegionInfoReq(IPMSRegionInfoList* plstRegionInfo);
|
|
virtual BOOL OnStatInfoReq(IPMSStatInfoList* plstStatInfo);
|
|
virtual BOOL OnPerformInfoReq(IPMSPerformanceInfo *pPerformanceInfo);
|
|
virtual BOOL OnOrderReq(LPCSTR lpszCmdName, LPCSTR lpszCtlVal, LPSTR lpResult, LONG *lpResultLen, DWORD dwSSN, DWORD dwCategoryID);
|
|
virtual BOOL OnRegionInfoPCReq(IPMSRegionInfoListPC* plstRegionInfoPC);
|
|
virtual BOOL OnStatInfoPCReq(IPMSStatInfoListPC* plstStatInfoPC);
|
|
|
|
public:
|
|
typedef std::vector<LONG> vecRegion;
|
|
|
|
inline void SetCategory(DWORD category) {category_ = category;};
|
|
inline void SetUserCount(DWORD user_count) {user_count_ = user_count;};
|
|
inline void SetSessioCount(DWORD session_count) {session_couont_ = session_count;};
|
|
inline void SetChannelCount(DWORD channel_count) {channel_count_ = channel_count;};
|
|
inline void SetRoomCount(DWORD room_count) {room_count_ = room_count;};
|
|
|
|
inline DWORD GetCategory() {return category_;};
|
|
inline DWORD GetUserCount() {return user_count_;};
|
|
inline DWORD GetSessioCount() {return session_couont_;};
|
|
inline DWORD GetChannelCount() {return channel_count_;};
|
|
inline DWORD GetRoomCount() {return room_count_;};
|
|
|
|
void SetAnnounceRequest(IAnnounceRequest* announce_request) {announce_request_ = announce_request;};
|
|
|
|
private:
|
|
static const DWORD pms_ssn_ = 715;
|
|
|
|
DWORD category_;
|
|
DWORD user_count_;
|
|
DWORD session_couont_;
|
|
DWORD channel_count_;
|
|
DWORD room_count_;
|
|
|
|
IAnnounceRequest* announce_request_;
|
|
};
|
|
|
|
#endif //_JP_0_20101123_PMS
|