diff options
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Ice/Application.cpp | 2 | ||||
-rw-r--r-- | cpp/src/Ice/CommunicatorI.h | 6 | ||||
-rw-r--r-- | cpp/src/Ice/Initialize.cpp | 102 | ||||
-rw-r--r-- | cpp/src/Ice/LoggerAdminI.cpp | 2 | ||||
-rw-r--r-- | cpp/src/Ice/Service.cpp | 2 |
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 |