summaryrefslogtreecommitdiff
path: root/src/ro_buffer.hh
blob: 93b2b3c37016bcc54c56db5eb83fea2a7372dfb6 (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 <cstddef>

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;

  size_t read(void* data, size_t len);

protected:
  RoBuffer() = default;
  RoBuffer(RoBuffer const&) = delete;
  RoBuffer& operator=(RoBuffer const&) = delete;
};

#endif  // RO_BUFFER_HH