From b4d6df902253637f24647d3db2bc3781d69eec1c Mon Sep 17 00:00:00 2001 From: Joel Klinghed Date: Thu, 20 Feb 2025 22:54:56 +0100 Subject: Initial commit --- src/buffer.hh | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/buffer.hh (limited to 'src/buffer.hh') diff --git a/src/buffer.hh b/src/buffer.hh new file mode 100644 index 0000000..ae02e23 --- /dev/null +++ b/src/buffer.hh @@ -0,0 +1,25 @@ +#ifndef BUFFER_HH +#define BUFFER_HH + +#include "ro_buffer.hh" + +#include + +class Buffer : public RoBuffer { +public: + static std::unique_ptr fixed(size_t size); + static std::unique_ptr growing(size_t base_size, size_t max_size); + // Acts as /dev/null, ie always empty, can write anything to it. + static std::unique_ptr null(); + + virtual bool full() const = 0; + + virtual void clear() = 0; + + virtual char* wbuf(size_t request, size_t& avail) = 0; + virtual void wcommit(size_t bytes) = 0; + + size_t write(void const* data, size_t len); +}; + +#endif // BUFFER_HH -- cgit v1.2.3-70-g09d2