blob: ae02e237a93a785f58ca608d3937be63e139d13c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
#ifndef BUFFER_HH
#define BUFFER_HH
#include "ro_buffer.hh"
#include <memory>
class Buffer : public RoBuffer {
public:
static std::unique_ptr<Buffer> fixed(size_t size);
static std::unique_ptr<Buffer> 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<Buffer> 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
|