summaryrefslogtreecommitdiffhomepage
path: root/NetEx/NetMsg.h
diff options
context:
space:
mode:
authorFWoltermann@gmail.com <FWoltermann@gmail.com@076cb2c4-205e-83fd-5cf3-1be9aa105544>2011-12-08 14:53:40 +0000
committerFWoltermann@gmail.com <FWoltermann@gmail.com@076cb2c4-205e-83fd-5cf3-1be9aa105544>2011-12-08 14:53:40 +0000
commite33e19d0587146859d48a134ec9fd94e7b7ba5cd (patch)
tree69d048c8801858d2756ab3a487090a7a1b74bf14 /NetEx/NetMsg.h
downloadstarshatter-e33e19d0587146859d48a134ec9fd94e7b7ba5cd.zip
starshatter-e33e19d0587146859d48a134ec9fd94e7b7ba5cd.tar.gz
starshatter-e33e19d0587146859d48a134ec9fd94e7b7ba5cd.tar.bz2
Initial upload
Diffstat (limited to 'NetEx/NetMsg.h')
-rw-r--r--NetEx/NetMsg.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/NetEx/NetMsg.h b/NetEx/NetMsg.h
new file mode 100644
index 0000000..1c2a91a
--- /dev/null
+++ b/NetEx/NetMsg.h
@@ -0,0 +1,81 @@
+/* Project nGenEx
+ Destroyer Studios LLC
+ Copyright © 1997-2004. All Rights Reserved.
+
+ SUBSYSTEM: NetEx.lib
+ FILE: NetMsg.h
+ AUTHOR: John DiCamillo
+
+
+ OVERVIEW
+ ========
+ User level network message
+*/
+
+
+#ifndef NetMsg_h
+#define NetMsg_h
+
+#include <windows.h>
+#include "NetAddr.h"
+#include "NetGram.h"
+#include "NetSock.h"
+#include "List.h"
+
+// +-------------------------------------------------------------------+
+
+class NetMsg
+{
+public:
+ static const char* TYPENAME() { return "NetMsg"; }
+
+ enum FLAGS { RELIABLE = 0x01, PRIORITY = 0x02, SCATTER = 0x04 };
+ enum TYPES { INVALID = 0,
+ RESERVED = 0xF0,
+ MULTIPART = 0xF1
+ };
+ enum { MAX_SIZE = 250 };
+
+ NetMsg(DWORD nid, void* d, int l, BYTE f=0);
+ NetMsg(DWORD nid, BYTE type, const char* text, int len, BYTE f=0);
+ ~NetMsg();
+
+ int operator == (const NetMsg& m) const { return msgid == m.msgid &&
+ netid == m.netid; }
+ int operator < (const NetMsg& m) const;
+
+ DWORD Sequence() const { return msgid; }
+ DWORD NetID() const { return netid; }
+ const BYTE* Data() const { return data; }
+ BYTE Type() const { return data ? *data : 0; }
+ int Length() const { return len; }
+ BYTE Flags() const { return flags; }
+
+ bool IsReliable() const { return flags & RELIABLE ? true : false; }
+ bool IsPriority() const { return flags & PRIORITY ? true : false; }
+ bool IsScatter() const { return flags & SCATTER ? true : false; }
+
+ void SetSequence(DWORD s) { msgid = s; }
+
+private:
+ DWORD msgid;
+ DWORD netid;
+ BYTE* data;
+ int len;
+ BYTE flags;
+};
+
+// +-------------------------------------------------------------------+
+
+struct NetMsgMultipart {
+ BYTE type;
+ BYTE len;
+ DWORD msgid;
+ DWORD partno;
+ DWORD nparts;
+ BYTE payload[256];
+};
+
+// +-------------------------------------------------------------------+
+
+#endif NetMsg_h \ No newline at end of file