diff options
Diffstat (limited to 'includes/Buffer.h')
-rw-r--r-- | includes/Buffer.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/includes/Buffer.h b/includes/Buffer.h new file mode 100644 index 0000000..79d0e02 --- /dev/null +++ b/includes/Buffer.h @@ -0,0 +1,37 @@ +#ifndef __BUFFER_H__ +#define __BUFFER_H__ +#ifdef __cplusplus + +#include <zlib.h> +#include <Exceptions.h> +#include <Handle.h> + +#ifndef realloc_threshold +#define realloc_threshold 256 +#endif + +class Buffer : public Handle { + public: + Buffer(); + Buffer(const Buffer &); + virtual ~Buffer(); + virtual ssize_t write(const void *buf, size_t count) throw(GeneralException); + virtual ssize_t read(void *buf, size_t count) throw (GeneralException); + virtual bool CanRead(); + virtual bool CanWrite(); + virtual String GetName(); + virtual Buffer operator=(const Buffer &); + virtual bool CanWatch(); + virtual ssize_t GetSize(); + char operator[](size_t) const; + char & operator[](size_t); + + private: + char * buffer, zero; + size_t realsiz, bufsiz, ptr; +}; + +#else +#error This only works with a C++ compiler +#endif +#endif |