summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/ConnectRequestHandler.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/ConnectRequestHandler.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/ConnectRequestHandler.cpp')
-rw-r--r--cpp/src/Ice/ConnectRequestHandler.cpp33
1 files changed, 18 insertions, 15 deletions
diff --git a/cpp/src/Ice/ConnectRequestHandler.cpp b/cpp/src/Ice/ConnectRequestHandler.cpp
index caabcbd3e75..3818144f279 100644
--- a/cpp/src/Ice/ConnectRequestHandler.cpp
+++ b/cpp/src/Ice/ConnectRequestHandler.cpp
@@ -23,9 +23,11 @@
using namespace std;
using namespace IceInternal;
+#ifndef ICE_CPP11_MAPPING
IceUtil::Shared* IceInternal::upCast(ConnectRequestHandler* p) { return p; }
+#endif
-ConnectRequestHandler::ConnectRequestHandler(const ReferencePtr& ref, const Ice::ObjectPrx& proxy) :
+ConnectRequestHandler::ConnectRequestHandler(const ReferencePtr& ref, const Ice::ObjectPrxPtr& proxy) :
RequestHandler(ref),
_proxy(proxy),
_initialized(false),
@@ -33,25 +35,21 @@ ConnectRequestHandler::ConnectRequestHandler(const ReferencePtr& ref, const Ice:
{
}
-ConnectRequestHandler::~ConnectRequestHandler()
-{
-}
-
RequestHandlerPtr
-ConnectRequestHandler::connect(const Ice::ObjectPrx& proxy)
+ConnectRequestHandler::connect(const Ice::ObjectPrxPtr& proxy)
{
Lock sync(*this);
if(!initialized())
{
_proxies.insert(proxy);
}
- return _requestHandler ? _requestHandler : this;
+ return _requestHandler ? _requestHandler : ICE_SHARED_FROM_THIS;
}
RequestHandlerPtr
ConnectRequestHandler::update(const RequestHandlerPtr& previousHandler, const RequestHandlerPtr& newHandler)
{
- return previousHandler.get() == this ? newHandler : this;
+ return previousHandler.get() == this ? newHandler : ICE_SHARED_FROM_THIS;
}
bool
@@ -77,7 +75,7 @@ ConnectRequestHandler::sendAsyncRequest(const ProxyOutgoingAsyncBasePtr& out)
Lock sync(*this);
if(!_initialized)
{
- out->cancelable(this); // This will throw if the request is canceled
+ out->cancelable(ICE_SHARED_FROM_THIS); // This will throw if the request is canceled
}
if(!initialized())
@@ -205,7 +203,11 @@ ConnectRequestHandler::setConnection(const Ice::ConnectionIPtr& connection, bool
// add this proxy to the router info object.
//
RouterInfoPtr ri = _reference->getRouterInfo();
+#ifdef ICE_CPP11_MAPPING
+ if(ri && !ri->addProxy(_proxy, dynamic_pointer_cast<AddProxyCallback>(shared_from_this())))
+#else
if(ri && !ri->addProxy(_proxy, this))
+#endif
{
return; // The request handler will be initialized once addProxy returns.
}
@@ -233,7 +235,7 @@ ConnectRequestHandler::setException(const Ice::LocalException& ex)
//
try
{
- _reference->getInstance()->requestHandlerFactory()->removeRequestHandler(_reference, this);
+ _reference->getInstance()->requestHandlerFactory()->removeRequestHandler(_reference, ICE_SHARED_FROM_THIS);
}
catch(const Ice::CommunicatorDestroyedException&)
{
@@ -342,7 +344,7 @@ ConnectRequestHandler::flushRequests()
exception.reset(ex.get()->ice_clone());
// Remove the request handler before retrying.
- _reference->getInstance()->requestHandlerFactory()->removeRequestHandler(_reference, this);
+ _reference->getInstance()->requestHandlerFactory()->removeRequestHandler(_reference, ICE_SHARED_FROM_THIS);
if(req.out)
{
@@ -376,10 +378,10 @@ ConnectRequestHandler::flushRequests()
//
if(_reference->getCacheConnection() && !exception.get())
{
- _requestHandler = new ConnectionRequestHandler(_reference, _connection, _compress);
- for(set<Ice::ObjectPrx>::const_iterator p = _proxies.begin(); p != _proxies.end(); ++p)
+ _requestHandler = ICE_MAKE_SHARED(ConnectionRequestHandler, _reference, _connection, _compress);
+ for(set<Ice::ObjectPrxPtr>::const_iterator p = _proxies.begin(); p != _proxies.end(); ++p)
{
- (*p)->__updateRequestHandler(this, _requestHandler);
+ (*p)->__updateRequestHandler(ICE_SHARED_FROM_THIS, _requestHandler);
}
}
@@ -394,10 +396,11 @@ ConnectRequestHandler::flushRequests()
// Only remove once all the requests are flushed to
// guarantee serialization.
//
- _reference->getInstance()->requestHandlerFactory()->removeRequestHandler(_reference, this);
+ _reference->getInstance()->requestHandlerFactory()->removeRequestHandler(_reference, ICE_SHARED_FROM_THIS);
_proxies.clear();
_proxy = 0; // Break cyclic reference count.
notifyAll();
}
}
+