summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/ObjectAdapterFactory.cpp
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2015-12-01 17:36:19 +0100
committerJose <jose@zeroc.com>2015-12-01 17:36:19 +0100
commit2029ff368e49fae489b8ec8fc12f7d126b182dfb (patch)
tree6075d652b7851831c39e6f22004d8720864f1a60 /cpp/src/Ice/ObjectAdapterFactory.cpp
parentThe default LMDB map size for IceGrid and IceStorm is now 10MB (Windows) (diff)
downloadice-2029ff368e49fae489b8ec8fc12f7d126b182dfb.tar.bz2
ice-2029ff368e49fae489b8ec8fc12f7d126b182dfb.tar.xz
ice-2029ff368e49fae489b8ec8fc12f7d126b182dfb.zip
C++11 mapping initial commit
Diffstat (limited to 'cpp/src/Ice/ObjectAdapterFactory.cpp')
-rw-r--r--cpp/src/Ice/ObjectAdapterFactory.cpp38
1 files changed, 29 insertions, 9 deletions
diff --git a/cpp/src/Ice/ObjectAdapterFactory.cpp b/cpp/src/Ice/ObjectAdapterFactory.cpp
index 492ba389f70..66df21a586e 100644
--- a/cpp/src/Ice/ObjectAdapterFactory.cpp
+++ b/cpp/src/Ice/ObjectAdapterFactory.cpp
@@ -18,7 +18,9 @@ using namespace std;
using namespace Ice;
using namespace IceInternal;
+#ifndef ICE_CPP11_MAPPING
IceUtil::Shared* IceInternal::upCast(ObjectAdapterFactory* p) { return p; }
+#endif
void
IceInternal::ObjectAdapterFactory::shutdown()
@@ -49,7 +51,11 @@ IceInternal::ObjectAdapterFactory::shutdown()
// Deactivate outside the thread synchronization, to avoid
// deadlocks.
//
+#ifdef ICE_CPP11_MAPPING
+ for_each(adapters.begin(), adapters.end(), [](const ObjectAdapterIPtr& adapter) { adapter->deactivate(); });
+#else
for_each(adapters.begin(), adapters.end(), IceUtil::voidMemFun(&ObjectAdapter::deactivate));
+#endif
}
void
@@ -74,7 +80,11 @@ IceInternal::ObjectAdapterFactory::waitForShutdown()
//
// Now we wait for deactivation of each object adapter.
//
+#ifdef ICE_CPP11_MAPPING
+ for_each(adapters.begin(), adapters.end(), [](const ObjectAdapterIPtr& adapter) { adapter->waitForDeactivate(); });
+#else
for_each(adapters.begin(), adapters.end(), IceUtil::voidMemFun(&ObjectAdapter::waitForDeactivate));
+#endif
}
bool
@@ -103,8 +113,11 @@ IceInternal::ObjectAdapterFactory::destroy()
//
// Now we destroy each object adapter.
//
+#ifdef ICE_CPP11_MAPPING
+ for_each(adapters.begin(), adapters.end(), [](const ObjectAdapterIPtr& adapter) { adapter->destroy(); });
+#else
for_each(adapters.begin(), adapters.end(), IceUtil::voidMemFun(&ObjectAdapter::destroy));
-
+#endif
{
IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(*this);
_adapters.clear();
@@ -120,12 +133,19 @@ IceInternal::ObjectAdapterFactory::updateObservers(void (ObjectAdapterI::*fn)())
IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(*this);
adapters = _adapters;
}
-
+#ifdef ICE_CPP11_MAPPING
+ for_each(adapters.begin(), adapters.end(),
+ [fn](const ObjectAdapterIPtr& adapter)
+ {
+ (adapter.get() ->* fn)();
+ });
+#else
for_each(adapters.begin(), adapters.end(), IceUtil::voidMemFun(fn));
+#endif
}
ObjectAdapterPtr
-IceInternal::ObjectAdapterFactory::createObjectAdapter(const string& name, const RouterPrx& router)
+IceInternal::ObjectAdapterFactory::createObjectAdapter(const string& name, const RouterPrxPtr& router)
{
IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(*this);
@@ -138,8 +158,8 @@ IceInternal::ObjectAdapterFactory::createObjectAdapter(const string& name, const
if(name.empty())
{
string uuid = IceUtil::generateUUID();
- adapter = new ObjectAdapterI(_instance, _communicator, this, uuid, true);
- adapter->initialize(0);
+ adapter = ICE_MAKE_SHARED(ObjectAdapterI, _instance, _communicator, ICE_SHARED_FROM_THIS, uuid, true);
+ adapter->initialize(ICE_NULLPTR);
}
else
{
@@ -147,7 +167,7 @@ IceInternal::ObjectAdapterFactory::createObjectAdapter(const string& name, const
{
throw AlreadyRegisteredException(__FILE__, __LINE__, "object adapter", name);
}
- adapter = new ObjectAdapterI(_instance, _communicator, this, name, false);
+ adapter = ICE_MAKE_SHARED(ObjectAdapterI, _instance, _communicator, ICE_SHARED_FROM_THIS, name, false);
adapter->initialize(router);
_adapterNamesInUse.insert(name);
}
@@ -157,7 +177,7 @@ IceInternal::ObjectAdapterFactory::createObjectAdapter(const string& name, const
}
ObjectAdapterPtr
-IceInternal::ObjectAdapterFactory::findObjectAdapter(const ObjectPrx& proxy)
+IceInternal::ObjectAdapterFactory::findObjectAdapter(const ObjectPrxPtr& proxy)
{
list<ObjectAdapterIPtr> adapters;
{
@@ -165,7 +185,7 @@ IceInternal::ObjectAdapterFactory::findObjectAdapter(const ObjectPrx& proxy)
if(!_instance)
{
- return 0;
+ return ICE_NULLPTR;
}
adapters = _adapters;
@@ -186,7 +206,7 @@ IceInternal::ObjectAdapterFactory::findObjectAdapter(const ObjectPrx& proxy)
}
}
- return 0;
+ return ICE_NULLPTR;
}
void