From 264f825549ecd23046ad049733870d0516d59e89 Mon Sep 17 00:00:00 2001 From: Mike Buland Date: Sun, 2 Jul 2006 07:27:33 +0000 Subject: Fixed a bug in the serializer that would close the file it was using even when it shouldn't, and added the serializerbzip2, which lets you read and write to compressed streams. --- src/serializerbzip2.h | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/serializerbzip2.h (limited to 'src/serializerbzip2.h') diff --git a/src/serializerbzip2.h b/src/serializerbzip2.h new file mode 100644 index 0000000..2d646f2 --- /dev/null +++ b/src/serializerbzip2.h @@ -0,0 +1,53 @@ +#ifndef SERIALIZER_BINARY_H +#define SERIALIZER_BINARY_H + +#include "serializer.h" +#include + +class SerializerBZip2 : public Serializer +{ +public: + SerializerBZip2(FILE *fhFile, bool bLoading); + SerializerBZip2(char *sFileName, bool bLoading); + ~SerializerBZip2(); + + virtual void close(); + + virtual void write(const void *, int32_t); + virtual void read(void *, int32_t); + + virtual Serializer &operator<<(bool); + virtual Serializer &operator<<(int8_t); + virtual Serializer &operator<<(int16_t); + virtual Serializer &operator<<(int32_t); + virtual Serializer &operator<<(int64_t); + virtual Serializer &operator<<(uint8_t); + virtual Serializer &operator<<(uint16_t); + virtual Serializer &operator<<(uint32_t); + virtual Serializer &operator<<(uint64_t); + virtual Serializer &operator<<(float); + virtual Serializer &operator<<(double); + virtual Serializer &operator<<(long double); + + virtual Serializer &operator>>(bool &); + virtual Serializer &operator>>(int8_t &); + virtual Serializer &operator>>(int16_t &); + virtual Serializer &operator>>(int32_t &); + virtual Serializer &operator>>(int64_t &); + virtual Serializer &operator>>(uint8_t &); + virtual Serializer &operator>>(uint16_t &); + virtual Serializer &operator>>(uint32_t &); + virtual Serializer &operator>>(uint64_t &); + virtual Serializer &operator>>(float &); + virtual Serializer &operator>>(double &); + virtual Serializer &operator>>(long double &); + +private: + void checkBZError(); + FILE *fhFile; + void *bzFile; + bool bCloseFile; + int bzerror; +}; + +#endif -- cgit v1.2.3