diff options
author | Jose <jose@zeroc.com> | 2015-12-01 17:36:19 +0100 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2015-12-01 17:36:19 +0100 |
commit | 2029ff368e49fae489b8ec8fc12f7d126b182dfb (patch) | |
tree | 6075d652b7851831c39e6f22004d8720864f1a60 /cpp/src/Ice/ConnectRequestHandler.cpp | |
parent | The default LMDB map size for IceGrid and IceStorm is now 10MB (Windows) (diff) | |
download | ice-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.cpp | 33 |
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(); } } + |