36 lines
725 B
C++
36 lines
725 B
C++
#pragma once
|
|
|
|
#include "common/IDataStream.h"
|
|
|
|
class IBufferStream : public IDataStream
|
|
{
|
|
public:
|
|
IBufferStream();
|
|
IBufferStream(const IBufferStream & rhs);
|
|
IBufferStream(void * buf, UInt64 inLength);
|
|
virtual ~IBufferStream();
|
|
|
|
IBufferStream & operator=(IBufferStream & rhs);
|
|
|
|
void SetBuffer(void * buf, UInt64 inLength);
|
|
void * GetBuffer(void) { return streamBuf; }
|
|
|
|
void OwnBuffer(void) { flags |= kFlag_OwnedBuf; }
|
|
void DisownBuffer(void) { flags &= ~kFlag_OwnedBuf; }
|
|
|
|
// read
|
|
virtual void ReadBuf(void * buf, UInt32 inLength);
|
|
|
|
// write
|
|
virtual void WriteBuf(const void * buf, UInt32 inLength);
|
|
|
|
protected:
|
|
UInt8 * streamBuf;
|
|
UInt32 flags;
|
|
|
|
enum
|
|
{
|
|
kFlag_OwnedBuf = 1 << 0
|
|
};
|
|
};
|