summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/AdapterCache.cpp
diff options
context:
space:
mode:
authorMatthew Newhook <matthew@zeroc.com>2009-01-09 11:49:20 -0330
committerMatthew Newhook <matthew@zeroc.com>2009-01-09 11:49:20 -0330
commit9117e9040c02465cb9f0a1e0bcc6aa963f71c61a (patch)
treeef345adb5612327136e70c8207182e015dfc6349 /cpp/src/IceGrid/AdapterCache.cpp
parentFixed NRVO demo depend file (diff)
parenthttp://bugzilla.zeroc.com/bugzilla/show_bug.cgi?id=3553. database demo uses w... (diff)
downloadice-9117e9040c02465cb9f0a1e0bcc6aa963f71c61a.tar.bz2
ice-9117e9040c02465cb9f0a1e0bcc6aa963f71c61a.tar.xz
ice-9117e9040c02465cb9f0a1e0bcc6aa963f71c61a.zip
Merge commit 'origin/R3_3_branch'
Conflicts: cs/demo/WCF/latency/Client.cs cs/demo/WCF/latency_m/Client.cs cs/demo/WCF/throughput/Client.cs cs/demo/WCF/throughput_m/Client.cs cs/demo/WCF/throughput_m/Service.cs java/demo/Database/library/BookI.java java/demo/Database/library/BookQueryResultI.java java/demo/Database/library/Client.java java/demo/Database/library/ConnectionPool.java java/demo/Database/library/DispatchInterceptorI.java java/demo/Database/library/Glacier2Session.ice java/demo/Database/library/Glacier2SessionManagerI.java java/demo/Database/library/Grammar.java java/demo/Database/library/Library.ice java/demo/Database/library/LibraryI.java java/demo/Database/library/Parser.java java/demo/Database/library/ReapThread.java java/demo/Database/library/RunParser.java java/demo/Database/library/SQLRequestContext.java java/demo/Database/library/Scanner.java java/demo/Database/library/Server.java java/demo/Database/library/Session.ice java/demo/Database/library/SessionFactoryI.java java/demo/Database/library/SessionI.java java/demo/Database/library/Token.java java/demo/Database/library/build.xml java/demo/Database/library/config.client
Diffstat (limited to 'cpp/src/IceGrid/AdapterCache.cpp')
-rw-r--r--cpp/src/IceGrid/AdapterCache.cpp47
1 files changed, 19 insertions, 28 deletions
diff --git a/cpp/src/IceGrid/AdapterCache.cpp b/cpp/src/IceGrid/AdapterCache.cpp
index f6970f4e09e..af24d9da061 100644
--- a/cpp/src/IceGrid/AdapterCache.cpp
+++ b/cpp/src/IceGrid/AdapterCache.cpp
@@ -231,7 +231,7 @@ ServerAdapterEntry::ServerAdapterEntry(AdapterCache& cache,
void
ServerAdapterEntry::getLocatorAdapterInfo(LocatorAdapterInfoSeq& adapters, int& nReplicas, bool& replicaGroup,
- bool& roundRobin)
+ bool& roundRobin, const set<string>&)
{
nReplicas = 1;
replicaGroup = false;
@@ -242,11 +242,6 @@ ServerAdapterEntry::getLocatorAdapterInfo(LocatorAdapterInfoSeq& adapters, int&
adapters.push_back(info);
}
-void
-ServerAdapterEntry::increaseRoundRobinCount(int roundRobinCount)
-{
-}
-
float
ServerAdapterEntry::getLeastLoadedNodeLoad(LoadSample loadSample) const
{
@@ -383,7 +378,7 @@ ReplicaGroupEntry::update(const LoadBalancingPolicyPtr& policy)
void
ReplicaGroupEntry::getLocatorAdapterInfo(LocatorAdapterInfoSeq& adapters, int& nReplicas, bool& replicaGroup,
- bool& roundRobin)
+ bool& roundRobin, const set<string>& excludes)
{
vector<ServerAdapterEntryPtr> replicas;
bool adaptive = false;
@@ -453,32 +448,28 @@ ReplicaGroupEntry::getLocatorAdapterInfo(LocatorAdapterInfoSeq& adapters, int& n
//
for(vector<ServerAdapterEntryPtr>::const_iterator p = replicas.begin(); p != replicas.end(); ++p)
{
- try
- {
- int dummy;
- bool dummy2;
- bool dummy3;
- (*p)->getLocatorAdapterInfo(adapters, dummy, dummy2, dummy3);
- }
- catch(const AdapterNotExistException&)
- {
- }
- catch(const NodeUnreachableException&)
- {
- }
- catch(const DeploymentException&)
+ if(!roundRobin || excludes.find((*p)->getId()) == excludes.end())
{
+ try
+ {
+ int dummy;
+ bool dummy2;
+ bool dummy3;
+ (*p)->getLocatorAdapterInfo(adapters, dummy, dummy2, dummy3, set<string>());
+ }
+ catch(const AdapterNotExistException&)
+ {
+ }
+ catch(const NodeUnreachableException&)
+ {
+ }
+ catch(const DeploymentException&)
+ {
+ }
}
}
}
-void
-ReplicaGroupEntry::increaseRoundRobinCount(int count)
-{
- Lock sync(*this);
- _lastReplica = (_lastReplica + count) % static_cast<int>(_replicas.size());
-}
-
float
ReplicaGroupEntry::getLeastLoadedNodeLoad(LoadSample loadSample) const
{