summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/CommunicatorI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/CommunicatorI.cpp')
-rw-r--r--cpp/src/Ice/CommunicatorI.cpp13
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);