00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #if !defined(__INCLUDE_NetMessageh_INCLUDE__)
00023 #define __INCLUDE_NetMessageh_INCLUDE__
00024
00025 #include <net/NetBuffer.h>
00026
00027 class NetMessagePool;
00028 class NetMessage
00029 {
00030 public:
00031 friend class NetMessagePool;
00032
00033 enum MessageType
00034 {
00035 NoMessage = 0,
00036 ConnectMessage,
00037 DisconnectMessage,
00038 DisconnectAllMessage,
00039 BufferMessage,
00040 SentMessage
00041 };
00042 enum DisconnectFlags
00043 {
00044 UnknownDisconnect = 0,
00045 UserDisconnect = 1,
00046 KickDisconnect = 2,
00047 TimeoutDisconnect = 4
00048 };
00049
00050 unsigned int &getDestinationId() { return destinationId_; }
00051 unsigned int &getIpAddress() { return ipAddress_; }
00052 unsigned int getFlags() { return flags_; }
00053 MessageType getMessageType() { return type_; }
00054 NetBuffer &getBuffer() { return messageBuffer_; }
00055 void setType(MessageType type) { type_ = type; }
00056 void setFlags(unsigned int flags) { flags_ = flags; }
00057
00058 protected:
00059 NetBuffer messageBuffer_;
00060 MessageType type_;
00061 unsigned int destinationId_;
00062 unsigned int ipAddress_;
00063 unsigned int flags_;
00064
00065 void setDestinationId(unsigned int destinationId) { destinationId_ = destinationId; }
00066 void setIpAddress(unsigned int ipAddress) { ipAddress_ = ipAddress; }
00067
00068 NetMessage(MessageType type = NetMessage::NoMessage,
00069 unsigned int destinationId = 0,
00070 unsigned int ipAddress = 0);
00071 virtual ~NetMessage();
00072 };
00073
00074 #endif // __INCLUDE_NetMessageh_INCLUDE__