diff options
Diffstat (limited to 'cpp/src/Ice/CommunicatorI.cpp')
-rw-r--r-- | cpp/src/Ice/CommunicatorI.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/cpp/src/Ice/CommunicatorI.cpp b/cpp/src/Ice/CommunicatorI.cpp index e4b9eaf7b8e..38f42823175 100644 --- a/cpp/src/Ice/CommunicatorI.cpp +++ b/cpp/src/Ice/CommunicatorI.cpp @@ -16,6 +16,7 @@ #include <Ice/ServantFactoryManager.h> #include <Ice/ObjectAdapterFactory.h> #include <Ice/Logger.h> +#include <Ice/StreamI.h> #include <Ice/Initialize.h> #include <Ice/LocalException.h> @@ -167,6 +168,18 @@ Ice::CommunicatorI::setLogger(const LoggerPtr& logger) _instance->logger(logger); } +StreamPtr +Ice::CommunicatorI::createStream() +{ + JTCSyncT<JTCRecursiveMutex> sync(*this); + if (!_instance) + { + throw CommunicatorDestroyedException(__FILE__, __LINE__); + } + + return new StreamI(_instance); +} + Ice::CommunicatorI::CommunicatorI(const PropertiesPtr& properties) { __setNoDelete(true); |