📄 mmsgroutingclientchange.h
字号:
#if !defined(MMsgRoutingClientChange_H)
#define MMsgRoutingClientChange_H
// MMsgRoutingClientChange.h
#include "RoutingServerMessage.h"
namespace WONMsg {
//
// ClientChangeEx
//
class MMsgRoutingClientChange : public RoutingServerMessage {
public:
enum { CLIENT_ENTERED = 0x80 };
enum Reason { NEW_CLIENT = 0x80, VOLUNTARY_DISCONNECT = 0x00, CONNECTION_FAILURE = 0x01, BOOTED = 0x02 };
// Default ctor
MMsgRoutingClientChange(void);
// RoutingServerMessage ctor
explicit MMsgRoutingClientChange(const RoutingServerMessage& theMsgR, bool doUnpack =true);
// Copy ctor
MMsgRoutingClientChange(const MMsgRoutingClientChange& theMsgR);
// Destructor
virtual ~MMsgRoutingClientChange(void);
// Assignment
MMsgRoutingClientChange& operator=(const MMsgRoutingClientChange& theMsgR);
// Virtual Duplicate from RoutingServerMessage
virtual TRawMsg* Duplicate(void) const;
// Debug output
virtual void Dump(std::ostream& os) const;
// Pack and Unpack the message
// Unpack will throw a BadMsgException is message is not of this type
virtual void* Pack(void);
virtual void Unpack(void);
// Member access
ClientId GetClientId() const { return mClientId; }
unsigned char GetReason() const { return mReason; }
bool DidClientLeave() const { return !DidClientEnter(); }
bool DidClientEnter() const { return (GetReason() & CLIENT_ENTERED) != 0; }
void SetClientId(ClientId theClientId) { mClientId = theClientId; }
void SetReason(unsigned char theReason) { mReason = theReason; }
private:
ClientId mClientId;
unsigned char mReason;
protected:
virtual void SimplePack();
virtual void SimpleUnpack();
};
//
// ClientChangeEx
//
class MMsgRoutingClientChangeEx : public MMsgRoutingClientChange {
public:
// Default ctor
MMsgRoutingClientChangeEx(void);
// RoutingServerMessage ctor
explicit MMsgRoutingClientChangeEx(const RoutingServerMessage& theMsgR, bool doUnpack =true);
// Copy ctor
MMsgRoutingClientChangeEx(const MMsgRoutingClientChangeEx& theMsgR);
// Destructor
virtual ~MMsgRoutingClientChangeEx(void);
// Assignment
MMsgRoutingClientChangeEx& operator=(const MMsgRoutingClientChangeEx& theMsgR);
// Virtual Duplicate from RoutingServerMessage
virtual TRawMsg* Duplicate(void) const;
// Debug output
virtual void Dump(std::ostream& os) const;
// Pack and Unpack the message
// Unpack will throw a BadMsgException is message is not of this type
virtual void* Pack(void);
virtual void Unpack(void);
// Member access
const ClientName& GetClientName() const { return mClientName; }
unsigned long GetIPAddress() const { return mIPAddress; }
unsigned long GetWONUserId() const { return mWONUserId; }
unsigned long GetCommunityId() const { return mCommunityId; }
unsigned short GetTrustLevel() const { return mTrustLevel; }
bool IncludesIPs() const { return mIncludesIPs; }
bool IncludesAuthInfo() const { return mIncludesAuthInfo; }
void SetClientName(const ClientName& theClientNameR) { mClientName = theClientNameR; }
void SetIPAddress(unsigned long theIPAddress) { mIPAddress = theIPAddress; }
void SetWONUserId(unsigned long theWONUserId) { mWONUserId = theWONUserId; }
void SetCommunityId(unsigned long theCommunityId) { mCommunityId = theCommunityId; }
void SetTrustLevel(unsigned short theTrustLevel) { mTrustLevel = theTrustLevel; }
void SetIncludesIPs(bool includesIPs) { mIncludesIPs = includesIPs; }
void SetIncludesAuthInfo(bool includesAuthInfo) { mIncludesAuthInfo = includesAuthInfo; }
private:
ClientName mClientName;
unsigned long mIPAddress;
unsigned long mWONUserId;
unsigned long mCommunityId;
unsigned short mTrustLevel;
bool mIncludesIPs;
bool mIncludesAuthInfo;
protected:
virtual void SimplePack();
virtual void SimpleUnpack();
};
// Inlines
inline TRawMsg* MMsgRoutingClientChange::Duplicate(void) const
{ return new MMsgRoutingClientChange(*this); }
inline TRawMsg* MMsgRoutingClientChangeEx::Duplicate(void) const
{ return new MMsgRoutingClientChangeEx(*this); }
}; // Namespace WONMsg
#endif // MMsgRoutingClientChange_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -