diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2007-08-22 07:52:33 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2007-08-22 07:52:33 +0000 |
| commit | 8b3c16e6152a527f9aec1a88a9eed74119de7000 (patch) | |
| tree | f0bde5cea15e696e42cade06a3b12ff6b13acc57 /src/engine/packer.h | |
| parent | 9899666a7ce6679a3b9667ab09f615f4d0769c16 (diff) | |
| download | zcatch-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.h | 34 |
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); |