summaryrefslogtreecommitdiffstats
path: root/src/Net/Packet.h
diff options
context:
space:
mode:
authorMatthias Schiffer <matthias@gamezock.de>2008-07-01 03:24:58 +0200
committerMatthias Schiffer <matthias@gamezock.de>2008-07-01 03:24:58 +0200
commit7601149f476c1aa3dae6cd55027a36b62efabf12 (patch)
tree947a8ebeaebaf6a366a0490975e5fa2fa689db9c /src/Net/Packet.h
parent7be6ee9c1cd2c2c5172ad4a094b67c25d6c5b72c (diff)
downloadmad-7601149f476c1aa3dae6cd55027a36b62efabf12.tar
mad-7601149f476c1aa3dae6cd55027a36b62efabf12.zip
RequestManager hinzugef?gt
Diffstat (limited to 'src/Net/Packet.h')
-rw-r--r--src/Net/Packet.h36
1 files changed, 18 insertions, 18 deletions
diff --git a/src/Net/Packet.h b/src/Net/Packet.h
index c2bd4d1..7ef5cb0 100644
--- a/src/Net/Packet.h
+++ b/src/Net/Packet.h
@@ -29,73 +29,73 @@ namespace Net {
class Packet {
public:
enum Type {
- TYPE_UNKNOWN = 0x0000, TYPE_DEBUG = 0x0001, TYPE_PING = 0x0002, TYPE_PONG = 0x0003,
+ TYPE_PING = 0x0000, TYPE_PONG = 0x0001,
TYPE_DISCONNECT_REQ = 0x0010, TYPE_DISCONNECT_REP = 0x0011
};
-
+
struct Data {
unsigned short type;
unsigned short requestId;
unsigned long length;
unsigned char data[0];
};
-
+
protected:
Data *rawData;
-
+
public:
Packet(Type type, unsigned short requestId, const void *data = NULL, unsigned long length = 0) {
rawData = (Data*)std::malloc(sizeof(Data)+length);
-
+
rawData->type = type;
rawData->requestId = requestId;
rawData->length = length;
-
+
if(length)
std::memcpy(rawData->data, data, length);
}
-
+
Packet(const Packet &p) {
rawData = (Data*)std::malloc(p.getRawDataLength());
std::memcpy(rawData, p.rawData, p.getRawDataLength());
}
-
+
Packet& operator=(Packet &p) {
if(&p == this)
return *this;
-
+
std::free(rawData);
-
+
rawData = (Data*)std::malloc(p.getRawDataLength());
std::memcpy(rawData, p.rawData, p.getRawDataLength());
-
+
return *this;
}
-
+
virtual ~Packet() {
std::free(rawData);
}
-
+
Type getType() const {
return (Type)rawData->type;
}
-
+
unsigned short getRequestId() const {
return rawData->requestId;
}
-
+
unsigned long getLength() const {
return rawData->length;
}
-
+
const unsigned char* getData() const {
return rawData->data;
}
-
+
const Data* getRawData() const {
return rawData;
}
-
+
unsigned long getRawDataLength() const {
return sizeof(Data) + rawData->length;
}