summaryrefslogtreecommitdiff
path: root/lib/common/CollectInBufferStream.h
diff options
context:
space:
mode:
authorChris Wilson <chris+github@qwirx.com>2015-08-07 21:40:35 +0000
committerChris Wilson <chris+github@qwirx.com>2015-08-07 21:40:35 +0000
commit8db4e69bca1dd7543d407222d25de6ded808ef88 (patch)
treebd63a345adba2b1659aa718cc7a31052ddc08e11 /lib/common/CollectInBufferStream.h
parent5eb1612e1703cd566116b0a34517c2b04ce99bc6 (diff)
Allow moving a CollectInBufferStream's contents to another one
Diffstat (limited to 'lib/common/CollectInBufferStream.h')
-rw-r--r--lib/common/CollectInBufferStream.h16
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,