blob: 7f11a7cd56e6f13a546a113519054ecd277626b4 (
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;
static size_t write(Buffer* buf, void const* data, size_t len);
};
#endif // BUFFER_HH
|