summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/AdapterCache.h
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2014-04-15 09:41:21 +0200
committerBenoit Foucher <benoit@zeroc.com>2014-04-15 09:41:21 +0200
commit54884a0b4c139118fc49498b6d6715d7d9ab718c (patch)
tree1f00091ad68543b3dc9828f27e32c0d9f7d072fe /cpp/src/IceGrid/AdapterCache.h
parentVC11 fixes for PHP 5.5 (diff)
downloadice-54884a0b4c139118fc49498b6d6715d7d9ab718c.tar.bz2
ice-54884a0b4c139118fc49498b6d6715d7d9ab718c.tar.xz
ice-54884a0b4c139118fc49498b6d6715d7d9ab718c.zip
Added support for IceGrid custom load balancing
Diffstat (limited to 'cpp/src/IceGrid/AdapterCache.h')
-rw-r--r--cpp/src/IceGrid/AdapterCache.h24
1 files changed, 18 insertions, 6 deletions
diff --git a/cpp/src/IceGrid/AdapterCache.h b/cpp/src/IceGrid/AdapterCache.h
index 66546405575..8c37a623def 100644
--- a/cpp/src/IceGrid/AdapterCache.h
+++ b/cpp/src/IceGrid/AdapterCache.h
@@ -48,7 +48,8 @@ public:
virtual bool addSyncCallback(const SynchronizationCallbackPtr&, const std::set<std::string>&) = 0;
- virtual void getLocatorAdapterInfo(LocatorAdapterInfoSeq&, int&, bool&, bool&, const std::set<std::string>&) = 0;
+ virtual void getLocatorAdapterInfo(LocatorAdapterInfoSeq&, int&, bool&, bool&, std::string&,
+ const std::set<std::string>&) = 0;
virtual float getLeastLoadedNodeLoad(LoadSample) const = 0;
virtual AdapterInfoSeq getAdapterInfo() const = 0;
virtual AdapterPrx getProxy(const std::string&, bool) const = 0;
@@ -75,14 +76,20 @@ public:
virtual bool addSyncCallback(const SynchronizationCallbackPtr&, const std::set<std::string>&);
- virtual void getLocatorAdapterInfo(LocatorAdapterInfoSeq&, int&, bool&, bool&, const std::set<std::string>&);
+ virtual void getLocatorAdapterInfo(LocatorAdapterInfoSeq&, int&, bool&, bool&, std::string&,
+ const std::set<std::string>&);
+
virtual float getLeastLoadedNodeLoad(LoadSample) const;
virtual AdapterInfoSeq getAdapterInfo() const;
virtual AdapterPrx getProxy(const std::string&, bool) const;
+ void getLocatorAdapterInfo(LocatorAdapterInfoSeq&) const;
const std::string& getReplicaGroupId() const { return _replicaGroupId; }
int getPriority() const;
-
+
+ std::string getServerId() const;
+ std::string getNodeName() const;
+
private:
const std::string _replicaGroupId;
@@ -95,11 +102,13 @@ class ReplicaGroupEntry : public AdapterEntry, public IceUtil::Monitor<IceUtil::
{
public:
- ReplicaGroupEntry(AdapterCache&, const std::string&, const std::string&, const LoadBalancingPolicyPtr&);
+ ReplicaGroupEntry(AdapterCache&, const std::string&, const std::string&, const LoadBalancingPolicyPtr&,
+ const std::string&);
virtual bool addSyncCallback(const SynchronizationCallbackPtr&, const std::set<std::string>&);
- virtual void getLocatorAdapterInfo(LocatorAdapterInfoSeq&, int&, bool&, bool&, const std::set<std::string>&);
+ virtual void getLocatorAdapterInfo(LocatorAdapterInfoSeq&, int&, bool&, bool&, std::string&,
+ const std::set<std::string>&);
virtual float getLeastLoadedNodeLoad(LoadSample) const;
virtual AdapterInfoSeq getAdapterInfo() const;
virtual AdapterPrx getProxy(const std::string&, bool) const { return 0; }
@@ -107,14 +116,17 @@ public:
void addReplica(const std::string&, const ServerAdapterEntryPtr&);
bool removeReplica(const std::string&);
- void update(const std::string&, const LoadBalancingPolicyPtr&);
+ void update(const std::string&, const LoadBalancingPolicyPtr&, const std::string&);
bool hasAdaptersFromOtherApplications() const;
+ const std::string& getFilter() const { return _filter; }
+
private:
LoadBalancingPolicyPtr _loadBalancing;
int _loadBalancingNReplicas;
LoadSample _loadSample;
+ std::string _filter;
std::vector<ServerAdapterEntryPtr> _replicas;
int _lastReplica;
bool _requestInProgress;