ultimatepp/bazaar/BufferStream/BufferStream.h
kohait f51955968a bazaar: BufferStream, a Vector<byte> buffer based, self growing Stream
git-svn-id: svn://ultimatepp.org/upp/trunk@2607 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2010-08-13 14:00:33 +00:00

34 lines
846 B
C++

#ifndef _BufferStream_BufferStream_h
#define _BufferStream_BufferStream_h
#include <Core/Core.h>
using namespace Upp;
class BufferStream : public MemStream {
protected:
virtual void _Put(int w) { byte h = w; _Put(&h, 1); }
virtual void _Put(const void *data, dword size);
public:
virtual void Seek(int64 pos);
virtual void SetSize(int64 asize);
protected:
Vector<byte> data;
public:
void Open(Vector<byte> & d);
void Create();
void Reserve(int n) { SetSize((int)GetSize() + n); }
Vector<byte> GetResult();
operator Vector<byte>() { return GetResult(); }
BufferStream() { Create(); }
BufferStream(Vector<byte>& d) { Open(d); }
};
typedef BufferStream VectorStream;
#endif