summaryrefslogtreecommitdiff
path: root/src/ro_buffer.hh
blob: a538f78be2715d5337bee915a94a3260ba387f0e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#ifndef RO_BUFFER_HH
#define RO_BUFFER_HH

#include <stddef.h>

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