summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2015-12-11 18:00:31 -0500
committerBernard Normier <bernard@zeroc.com>2015-12-11 18:00:31 -0500
commita2dfe3a7cd457d0d4b38399ab0aca4f0335fb0c8 (patch)
tree979e304b6beb03bdceed36bee74edd5cabfa9add /cpp/src
parentFix Windows C++ tests build (diff)
downloadice-a2dfe3a7cd457d0d4b38399ab0aca4f0335fb0c8.tar.bz2
ice-a2dfe3a7cd457d0d4b38399ab0aca4f0335fb0c8.tar.xz
ice-a2dfe3a7cd457d0d4b38399ab0aca4f0335fb0c8.zip
Updated Ice::CommunicationHolder and simplified tests
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Ice/Application.cpp2
-rw-r--r--cpp/src/Ice/CommunicatorI.h6
-rw-r--r--cpp/src/Ice/Initialize.cpp102
-rw-r--r--cpp/src/Ice/LoggerAdminI.cpp2
-rw-r--r--cpp/src/Ice/Service.cpp2
5 files changed, 57 insertions, 57 deletions
diff --git a/cpp/src/Ice/Application.cpp b/cpp/src/Ice/Application.cpp
index 3bf6f597cca..59a0c8d4551 100644
--- a/cpp/src/Ice/Application.cpp
+++ b/cpp/src/Ice/Application.cpp
@@ -665,7 +665,7 @@ Ice::Application::doMain(int argc, char* argv[], const InitializationData& initD
IceUtil::getProcessStringConverter()));
}
- IceInternal::Application::_communicator = ICE_COMMUNICATOR_HOLDER_RELEASE(initialize(argc, argv, initData));
+ IceInternal::Application::_communicator = initialize(argc, argv, initData);
IceInternal::Application::_destroyed = false;
//
diff --git a/cpp/src/Ice/CommunicatorI.h b/cpp/src/Ice/CommunicatorI.h
index 72245853234..277d573b04b 100644
--- a/cpp/src/Ice/CommunicatorI.h
+++ b/cpp/src/Ice/CommunicatorI.h
@@ -112,9 +112,9 @@ private:
//
void finishSetup(int&, char*[]);
- friend ICE_API ICE_COMMUNICATOR_HOLDER initialize(int&, char*[], const InitializationData&, Int);
- friend ICE_API ICE_COMMUNICATOR_HOLDER initialize(StringSeq&, const InitializationData&, Int);
- friend ICE_API ICE_COMMUNICATOR_HOLDER initialize(const InitializationData&, Int);
+ friend ICE_API CommunicatorPtr initialize(int&, char*[], const InitializationData&, Int);
+ friend ICE_API CommunicatorPtr initialize(StringSeq&, const InitializationData&, Int);
+ friend ICE_API CommunicatorPtr initialize(const InitializationData&, Int);
friend ICE_API ::IceInternal::InstancePtr IceInternal::getInstance(const ::Ice::CommunicatorPtr&);
friend ICE_API ::IceUtil::TimerPtr IceInternal::getInstanceTimer(const ::Ice::CommunicatorPtr&);
diff --git a/cpp/src/Ice/Initialize.cpp b/cpp/src/Ice/Initialize.cpp
index 09b3e232c55..ebc2026d990 100644
--- a/cpp/src/Ice/Initialize.cpp
+++ b/cpp/src/Ice/Initialize.cpp
@@ -209,43 +209,8 @@ inline void checkIceVersion(Int version)
}
-#ifdef ICE_CPP11_MAPPING
-
-Ice::CommunicatorHolder::CommunicatorHolder(shared_ptr<Ice::Communicator>&& communicator) :
- _communicator(move(communicator))
-{
-}
-
-Ice::CommunicatorHolder::~CommunicatorHolder()
-{
- if(_communicator)
- {
- _communicator->destroy();
- }
-}
-
-const shared_ptr<Ice::Communicator>&
-Ice::CommunicatorHolder::communicator() const
-{
- return _communicator;
-}
-
-shared_ptr<Ice::Communicator>
-Ice::CommunicatorHolder::release()
-{
- return move(_communicator);
-}
-
-const shared_ptr<Ice::Communicator>&
-Ice::CommunicatorHolder::operator->() const
-{
- return _communicator;
-}
-#endif
-
-
-ICE_COMMUNICATOR_HOLDER
+Ice::CommunicatorPtr
Ice::initialize(int& argc, char* argv[], const InitializationData& initializationData, Int version)
{
checkIceVersion(version);
@@ -255,27 +220,19 @@ Ice::initialize(int& argc, char* argv[], const InitializationData& initializatio
CommunicatorIPtr communicator = CommunicatorI::create(initData);
communicator->finishSetup(argc, argv);
-#ifdef ICE_CPP11_MAPPING
- return CommunicatorHolder(move(communicator));
-#else
return communicator;
-#endif
}
-ICE_COMMUNICATOR_HOLDER
+Ice::CommunicatorPtr
Ice::initialize(StringSeq& args, const InitializationData& initializationData, Int version)
{
IceUtilInternal::ArgVector av(args);
- ICE_COMMUNICATOR_HOLDER communicator = initialize(av.argc, av.argv, initializationData, version);
+ CommunicatorPtr communicator = initialize(av.argc, av.argv, initializationData, version);
args = argsToStringSeq(av.argc, av.argv);
-#ifdef ICE_CPP11_MAPPING
- return move(communicator);
-#else
return communicator;
-#endif
}
-ICE_COMMUNICATOR_HOLDER
+Ice::CommunicatorPtr
Ice::initialize(const InitializationData& initData, Int version)
{
//
@@ -288,11 +245,7 @@ Ice::initialize(const InitializationData& initData, Int version)
int argc = 0;
char* argv[] = { 0 };
communicator->finishSetup(argc, argv);
-#ifdef ICE_CPP11_MAPPING
- return CommunicatorHolder(move(communicator));
-#else
return communicator;
-#endif
}
#ifndef ICE_CPP11_MAPPING
@@ -406,6 +359,53 @@ Ice::registerPluginFactory(const std::string& name, PLUGIN_FACTORY factory, bool
PluginManagerI::registerPluginFactory(name, factory, loadOnInitialize);
}
+#ifdef ICE_CPP11_MAPPING
+Ice::CommunicatorHolder::CommunicatorHolder(shared_ptr<Communicator> communicator) :
+ _communicator(std::move(communicator))
+{
+}
+
+#else
+
+Ice::CommunicatorHolder::CommunicatorHolder(const CommunicatorPtr& communicator) :
+ _communicator(communicator)
+{
+}
+
+#endif
+
+Ice::CommunicatorHolder::~CommunicatorHolder()
+{
+ if(_communicator)
+ {
+ _communicator->destroy();
+ }
+}
+
+const Ice::CommunicatorPtr&
+Ice::CommunicatorHolder::communicator() const
+{
+ return _communicator;
+}
+
+Ice::CommunicatorPtr
+Ice::CommunicatorHolder::release()
+{
+#ifdef ICE_CPP11_MAPPING
+ return std::move(_communicator);
+#else
+ CommunicatorPtr result;
+ result.swap(_communicator);
+ return result;
+#endif
+}
+
+const Ice::CommunicatorPtr&
+Ice::CommunicatorHolder::operator->() const
+{
+ return _communicator;
+}
+
InstancePtr
IceInternal::getInstance(const CommunicatorPtr& communicator)
{
diff --git a/cpp/src/Ice/LoggerAdminI.cpp b/cpp/src/Ice/LoggerAdminI.cpp
index bb42febfaa7..1ddee852655 100644
--- a/cpp/src/Ice/LoggerAdminI.cpp
+++ b/cpp/src/Ice/LoggerAdminI.cpp
@@ -314,7 +314,7 @@ createSendLogCommunicator(const CommunicatorPtr& communicator, const LoggerPtr&
initData.properties->parseCommandLineOptions("", extraProps);
}
- return ICE_COMMUNICATOR_HOLDER_RELEASE(initialize(initData));
+ return initialize(initData);
}
//
diff --git a/cpp/src/Ice/Service.cpp b/cpp/src/Ice/Service.cpp
index a1fd7da71e7..3ed40a27d6c 100644
--- a/cpp/src/Ice/Service.cpp
+++ b/cpp/src/Ice/Service.cpp
@@ -960,7 +960,7 @@ Ice::Service::stop()
Ice::CommunicatorPtr
Ice::Service::initializeCommunicator(int& argc, char* argv[], const InitializationData& initData)
{
- return ICE_COMMUNICATOR_HOLDER_RELEASE(Ice::initialize(argc, argv, initData));
+ return Ice::initialize(argc, argv, initData);
}
void