diff options
Diffstat (limited to 'cpp/src/Ice/Initialize.cpp')
-rw-r--r-- | cpp/src/Ice/Initialize.cpp | 102 |
1 files changed, 51 insertions, 51 deletions
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) { |