about summary refs log tree commit diff
path: root/src/engine/e_packer.h
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2007-12-15 10:24:49 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2007-12-15 10:24:49 +0000
commita2566b3ebd93e0bbc55a920a7be08054a9377f11 (patch)
tree44a4612805d894168fe4b3b4c065fccc1a1686e9 /src/engine/e_packer.h
parentac9873056aa1fe529b098f19ff31e9ffa0e016a2 (diff)
downloadzcatch-a2566b3ebd93e0bbc55a920a7be08054a9377f11.tar.gz
zcatch-a2566b3ebd93e0bbc55a920a7be08054a9377f11.zip
cleaned up code structure a bit
Diffstat (limited to 'src/engine/e_packer.h')
-rw-r--r--src/engine/e_packer.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/engine/e_packer.h b/src/engine/e_packer.h
new file mode 100644
index 00000000..71b99ff7
--- /dev/null
+++ b/src/engine/e_packer.h
@@ -0,0 +1,35 @@
+/* copyright (c) 2007 magnus auvinen, see licence.txt for more info */
+
+enum
+{
+	PACKER_BUFFER_SIZE=1024*2
+};
+
+typedef struct
+{
+	
+	unsigned char buffer[PACKER_BUFFER_SIZE];
+	unsigned char *current;
+	unsigned char *end;
+	int error;
+} PACKER;
+
+typedef struct
+{
+	const unsigned char *current;
+	const unsigned char *start;
+	const unsigned char *end;
+	int error;
+} UNPACKER;
+
+void packer_reset(PACKER *p);
+void packer_add_int(PACKER *p, int i);
+void packer_add_string(PACKER *p, const char *str, int limit);
+void packer_add_raw(PACKER *p, const unsigned char *data, int size);
+int packer_size(PACKER *p);
+const unsigned char *packer_data(PACKER *p);
+
+void unpacker_reset(UNPACKER *p, const unsigned char *data, int size);
+int unpacker_get_int(UNPACKER *p);
+const char *unpacker_get_string(UNPACKER *p);
+const unsigned char *unpacker_get_raw(UNPACKER *p, int size);