diff options
author | Benoit Foucher <benoit@zeroc.com> | 2016-02-03 10:42:29 +0100 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2016-02-03 10:42:29 +0100 |
commit | 18a6720fcc3ece576f5fb26283e239cda2bebadd (patch) | |
tree | a7d9de0acab9e092943fb182fa880b2c4b950db6 /cpp/src/Ice/RouterInfo.h | |
parent | ICE-6861 - Java stream API changes (diff) | |
download | ice-18a6720fcc3ece576f5fb26283e239cda2bebadd.tar.bz2 ice-18a6720fcc3ece576f5fb26283e239cda2bebadd.tar.xz ice-18a6720fcc3ece576f5fb26283e239cda2bebadd.zip |
Refactored invocation code to better suite new C++11 mapping
Diffstat (limited to 'cpp/src/Ice/RouterInfo.h')
-rw-r--r-- | cpp/src/Ice/RouterInfo.h | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/cpp/src/Ice/RouterInfo.h b/cpp/src/Ice/RouterInfo.h index 43974e5331e..b33fced06d3 100644 --- a/cpp/src/Ice/RouterInfo.h +++ b/cpp/src/Ice/RouterInfo.h @@ -10,7 +10,6 @@ #ifndef ICE_ROUTER_INFO_H #define ICE_ROUTER_INFO_H -#include <IceUtil/Shared.h> #include <IceUtil/Mutex.h> #include <Ice/RouterInfoF.h> #include <Ice/Router.h> @@ -20,6 +19,7 @@ #include <Ice/BuiltinSequences.h> #include <Ice/Identity.h> #include <Ice/Comparable.h> +#include <Ice/VirtualShared.h> #include <set> @@ -44,13 +44,13 @@ public: private: #ifdef ICE_CPP11_MAPPING - using RouterTableMap = std::map<std::shared_ptr<Ice::RouterPrx>, + using RouterTableMap = std::map<std::shared_ptr<Ice::RouterPrx>, RouterInfoPtr, Ice::TargetLess<std::shared_ptr<::Ice::RouterPrx>>>; #else typedef std::map<Ice::RouterPrxPtr, RouterInfoPtr> RouterTableMap; #endif - + RouterTableMap _table; RouterTableMap::iterator _tableHint; }; @@ -62,23 +62,20 @@ public: class GetClientEndpointsCallback : public virtual Ice::LocalObject { public: - + virtual void setEndpoints(const std::vector<EndpointIPtr>&) = 0; virtual void setException(const Ice::LocalException&) = 0; }; typedef IceUtil::Handle<GetClientEndpointsCallback> GetClientEndpointsCallbackPtr; - class AddProxyCallback -#ifndef ICE_CPP11_MAPPING - : public virtual IceUtil::Shared -#endif + class AddProxyCallback : public Ice::EnableSharedFromThis<AddProxyCallback> { public: - + virtual void addedProxy() = 0; virtual void setException(const Ice::LocalException&) = 0; }; - ICE_DEFINE_PTR(AddProxyCallbackPtr, AddProxyCallback); + ICE_DEFINE_PTR(AddProxyCallbackPtr, AddProxyCallback); RouterInfo(const Ice::RouterPrxPtr&); @@ -100,34 +97,34 @@ public: std::vector<EndpointIPtr> getClientEndpoints(); void getClientEndpoints(const GetClientEndpointsCallbackPtr&); std::vector<EndpointIPtr> getServerEndpoints(); - + class AddProxyCookie : public Ice::LocalObject { public: - + AddProxyCookie(const AddProxyCallbackPtr cb, const Ice::ObjectPrxPtr& proxy) : _cb(cb), _proxy(proxy) { } - + AddProxyCallbackPtr cb() const { return _cb; } - + Ice::ObjectPrxPtr proxy() const { return _proxy; } - + private: - + const AddProxyCallbackPtr _cb; const Ice::ObjectPrxPtr _proxy; }; typedef IceUtil::Handle<AddProxyCookie> AddProxyCookiePtr; - + void addProxyResponse(const Ice::ObjectProxySeq&, const AddProxyCookiePtr&); void addProxyException(const Ice::Exception&, const AddProxyCookiePtr&); void addProxy(const Ice::ObjectPrxPtr&); |