From c029d90d1975e124d237605f1edb2be16bd05b5d Mon Sep 17 00:00:00 2001 From: Joel Klinghed Date: Tue, 28 Feb 2017 21:50:44 +0100 Subject: Initial commit --- src/buffer.hh | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 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..92a7566 --- /dev/null +++ b/src/buffer.hh @@ -0,0 +1,30 @@ +// -*- mode: c++; c-basic-offset: 2; -*- + +#ifndef BUFFER_HH +#define BUFFER_HH + +#include + +class Buffer { +public: + virtual ~Buffer() {} + + static Buffer* create(size_t capacity, size_t min_avail); + + bool empty() const; + + virtual void const* read_ptr(size_t* avail) const = 0; + virtual void consume(size_t bytes) = 0; + + virtual void* write_ptr(size_t* avail) = 0; + virtual void commit(size_t bytes) = 0; + + size_t read(void* data, size_t max); + void write(void const* data, size_t size); + +protected: + Buffer() {} + Buffer(Buffer const&) = delete; +}; + +#endif // BUFFER_HH -- cgit v1.2.3-70-g09d2