From 90cf63c592c1f7721a4b416d68384b7fa4d63aa4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emmanuel=20Beno=C3=AEt?= Date: Sun, 8 Mar 2020 13:12:43 +0100 Subject: [PATCH] Memory streams - Move constructor for T_MemoryOutputStream --- include/ebcl/MemoryStreams.hh | 1 + src/MemoryStreams.cc | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/include/ebcl/MemoryStreams.hh b/include/ebcl/MemoryStreams.hh index 1a3ab71..4f30454 100644 --- a/include/ebcl/MemoryStreams.hh +++ b/include/ebcl/MemoryStreams.hh @@ -47,6 +47,7 @@ class T_MemoryOutputStream final : public A_OutputStream T_MemoryOutputStream( ) = delete; T_MemoryOutputStream( void* buffer , size_t size , F_Resizer resizer = nullptr ); + T_MemoryOutputStream( T_MemoryOutputStream&& source ) noexcept; template< int S , typename T > explicit T_MemoryOutputStream( T_FixedBuffer< S , T >& buffer ); diff --git a/src/MemoryStreams.cc b/src/MemoryStreams.cc index 00bc0a4..4fb2cfd 100644 --- a/src/MemoryStreams.cc +++ b/src/MemoryStreams.cc @@ -39,6 +39,18 @@ T_MemoryOutputStream::T_MemoryOutputStream( void* buffer , size_t size , F_Resiz { } +T_MemoryOutputStream::T_MemoryOutputStream( + T_MemoryOutputStream&& other ) noexcept + : A_OutputStream( other.position_ , other.size_ ) , + buffer_{ other.buffer_ } , + resizer_{ other.resizer_ } +{ + other.size_ = other.position_ = 0; + other.resizer_ = nullptr; + other.buffer_ = nullptr; +} + + size_t T_MemoryOutputStream::write( void const* data , size_t size ) { if ( position_ == size_ && !resizer_ ) {