blob: 8d5e33daf5894eb7f6fcfc0fe674fcd5cc059f92 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#pragma once
class SpillBuffer
{
public:
SpillBuffer();
~SpillBuffer();
bool reserve(size_t bytes);
void clear();
void reset();
size_t write(const void *src, size_t len);
bool get(void **buffer, size_t *len);
bool full() const;
bool empty() const;
void remove(size_t len); // removes len bytes from the start of the spill buffer
size_t remaining() const; // how many bytes to fill it up
size_t length() const; /* buffer length when full */
private:
volatile size_t spillBufferUsed;
size_t spillBufferSize;
char *spillBuffer;
};
|