summaryrefslogtreecommitdiff
path: root/includes/Buffer.h
diff options
context:
space:
mode:
Diffstat (limited to 'includes/Buffer.h')
-rw-r--r--includes/Buffer.h37
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