diff options
Diffstat (limited to 'lib/common/CollectInBufferStream.h')
-rw-r--r-- | lib/common/CollectInBufferStream.h | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/lib/common/CollectInBufferStream.h b/lib/common/CollectInBufferStream.h index d73af8db..297d2851 100644 --- a/lib/common/CollectInBufferStream.h +++ b/lib/common/CollectInBufferStream.h @@ -26,24 +26,31 @@ class CollectInBufferStream : public IOStream public: CollectInBufferStream(); ~CollectInBufferStream(); -private: - // No copying - CollectInBufferStream(const CollectInBufferStream &); - CollectInBufferStream(const IOStream &); -public: + + // Move constructor: + CollectInBufferStream(CollectInBufferStream& rOther) + : mBuffer(rOther.mBuffer.Release()), + mBufferSize(rOther.mBufferSize), + mBytesInBuffer(rOther.mBytesInBuffer), + mReadPosition(rOther.mReadPosition), + mInWritePhase(rOther.mInWritePhase) + { + rOther.Reset(); + } virtual int Read(void *pBuffer, int NBytes, int Timeout = IOStream::TimeOutInfinite); virtual pos_type BytesLeftToRead(); - virtual void Write(const void *pBuffer, int NBytes); + virtual void Write(const void *pBuffer, int NBytes, + int Timeout = IOStream::TimeOutInfinite); virtual pos_type GetPosition() const; virtual void Seek(pos_type Offset, int SeekType); virtual bool StreamDataLeft(); virtual bool StreamClosed(); void SetForReading(); - + void Reset(); - + void *GetBuffer() const; int GetSize() const; bool IsSetForReading() const {return !mInWritePhase;} |