summaryrefslogtreecommitdiff
path: root/lib/common/CollectInBufferStream.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/common/CollectInBufferStream.h')
-rw-r--r--lib/common/CollectInBufferStream.h23
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;}