about summary refs log tree commit diff
path: root/src/engine/packer.h
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2007-08-22 07:52:33 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2007-08-22 07:52:33 +0000
commit8b3c16e6152a527f9aec1a88a9eed74119de7000 (patch)
treef0bde5cea15e696e42cade06a3b12ff6b13acc57 /src/engine/packer.h
parent9899666a7ce6679a3b9667ab09f615f4d0769c16 (diff)
downloadzcatch-8b3c16e6152a527f9aec1a88a9eed74119de7000.tar.gz
zcatch-8b3c16e6152a527f9aec1a88a9eed74119de7000.zip
major engine cleanup. dependency on baselib removed. engine is now C code (not ansi tho). some other cruft removed aswell
Diffstat (limited to 'src/engine/packer.h')
-rw-r--r--src/engine/packer.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/engine/packer.h b/src/engine/packer.h
new file mode 100644
index 00000000..af1c8195
--- /dev/null
+++ b/src/engine/packer.h
@@ -0,0 +1,34 @@
+
+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);