diff options
author | Chris Wilson <chris+github@qwirx.com> | 2015-08-07 21:40:35 +0000 |
---|---|---|
committer | Chris Wilson <chris+github@qwirx.com> | 2015-08-07 21:40:35 +0000 |
commit | 8db4e69bca1dd7543d407222d25de6ded808ef88 (patch) | |
tree | bd63a345adba2b1659aa718cc7a31052ddc08e11 /lib/common/CollectInBufferStream.h | |
parent | 5eb1612e1703cd566116b0a34517c2b04ce99bc6 (diff) |
Allow moving a CollectInBufferStream's contents to another one
Diffstat (limited to 'lib/common/CollectInBufferStream.h')
-rw-r--r-- | lib/common/CollectInBufferStream.h | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/lib/common/CollectInBufferStream.h b/lib/common/CollectInBufferStream.h index 03cb5da8..69188c75 100644 --- a/lib/common/CollectInBufferStream.h +++ b/lib/common/CollectInBufferStream.h @@ -26,12 +26,24 @@ class CollectInBufferStream : public IOStream public: CollectInBufferStream(); ~CollectInBufferStream(); + + // Move constructor: + CollectInBufferStream(CollectInBufferStream& rOther) + : mBuffer(rOther.mBuffer.Release()), + mBufferSize(rOther.mBufferSize), + mBytesInBuffer(rOther.mBytesInBuffer), + mReadPosition(rOther.mReadPosition), + mInWritePhase(rOther.mInWritePhase) + { + rOther.Reset(); + } + private: - // No copying + // No copying (only moving, as defined above) CollectInBufferStream(const CollectInBufferStream &); CollectInBufferStream(const IOStream &); -public: +public: virtual int Read(void *pBuffer, int NBytes, int Timeout = IOStream::TimeOutInfinite); virtual pos_type BytesLeftToRead(); virtual void Write(const void *pBuffer, int NBytes, |