summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/RouterInfo.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/RouterInfo.h')
-rw-r--r--cpp/src/Ice/RouterInfo.h31
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&);