#ifndef __BUFFER_H__ #define __BUFFER_H__ #ifdef __cplusplus #include #include #include #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() const; virtual bool CanWrite() const; virtual String GetName() const; virtual Buffer operator=(const Buffer &); virtual bool CanWatch() const; virtual ssize_t GetSize() const; 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