aboutsummaryrefslogtreecommitdiff
path: root/src/sbuffer.h
blob: 1dda33ac6026a372467e8e40c0e59aaf79c4803a (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
26
27
28
29
30
31
32
33
34
#ifndef S_BUFFER_H
#define S_BUFFER_H

#include <stdint.h>

#include "stream.h"
#include "flexbuf.h"

class SBuffer : public Stream
{
public:
	SBuffer();
	virtual ~SBuffer();

	virtual void close();
	virtual size_t read( char *pBuf, size_t nBytes );

	/**
	 *@todo Update this to write at nPos, not just append data.
	 */
	virtual size_t write( const char *pBuf, size_t nBytes );

	virtual long tell();
	virtual void seek( long offset );
	virtual void setPos( long pos );
	virtual void setPosEnd( long pos );

private:
	long nPos;
	bool bOpen;
	FlexBuf fbData;
};

#endif