#ifndef _BufferStream_BufferStream_h #define _BufferStream_BufferStream_h #include 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 data; public: void Open(Vector& d); void Create(); void Reserve(int n) { SetSize(GetSize() + n); } void Crop() { SetSize(GetPos()); } Vector GetResult(); operator Vector() { return GetResult(); } BufferStream() { Create(); } BufferStream(Vector& d) { Open(d); } }; typedef BufferStream VectorStream; #endif