#ifndef RO_BUFFER_HH #define RO_BUFFER_HH #include class RoBuffer { public: virtual ~RoBuffer() = default; virtual bool empty() const = 0; virtual char const* rbuf(size_t want, size_t& avail) = 0; virtual void rcommit(size_t bytes) = 0; static size_t read(RoBuffer* buf, void* data, size_t len); protected: RoBuffer() = default; RoBuffer(RoBuffer const&) = delete; RoBuffer& operator=(RoBuffer const&) = delete; }; #endif // RO_BUFFER_HH