23 lines
544 B
C++
23 lines
544 B
C++
#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;
|
|
}; |