diff options
Diffstat (limited to 'cpp/src/Ice/BasicStream.cpp')
-rw-r--r-- | cpp/src/Ice/BasicStream.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/cpp/src/Ice/BasicStream.cpp b/cpp/src/Ice/BasicStream.cpp index 3ffadc78573..2a94e724f86 100644 --- a/cpp/src/Ice/BasicStream.cpp +++ b/cpp/src/Ice/BasicStream.cpp @@ -33,6 +33,7 @@ using namespace IceInternal; IceInternal::BasicStream::BasicStream(Instance* instance, bool unlimited) : IceInternal::Buffer(instance->messageSizeMax()), _instance(instance), + _closure(0), _currentReadEncaps(0), _currentWriteEncaps(0), _traceSlicing(-1), @@ -73,6 +74,20 @@ IceInternal::BasicStream::clear() delete _objectList; } +void* +IceInternal::BasicStream::closure() const +{ + return _closure; +} + +void* +IceInternal::BasicStream::closure(void* p) +{ + void* prev = _closure; + _closure = p; + return prev; +} + void IceInternal::BasicStream::swap(BasicStream& other) { @@ -80,6 +95,8 @@ IceInternal::BasicStream::swap(BasicStream& other) Buffer::swap(other); + std::swap(_closure, other._closure); + // // Swap is never called for BasicStreams that have more than one // encaps. |