#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(); virtual ~Buffer(); virtual ssize_t write(const void *buf, size_t count); 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