diff options
author | Benoit Foucher <benoit@zeroc.com> | 2005-08-17 08:40:58 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2005-08-17 08:40:58 +0000 |
commit | 4a2274d7af953f5f9c77f4c17cd78239c7799cb6 (patch) | |
tree | 84b1ebfcdd35708d6c3880c3b6893523dd9fb630 /cpp/src/IceGrid/AdapterCache.cpp | |
parent | build with optimization (diff) | |
download | ice-4a2274d7af953f5f9c77f4c17cd78239c7799cb6.tar.bz2 ice-4a2274d7af953f5f9c77f4c17cd78239c7799cb6.tar.xz ice-4a2274d7af953f5f9c77f4c17cd78239c7799cb6.zip |
Changed load balancing policy from an enum to a class type, minor cleanup.
Diffstat (limited to 'cpp/src/IceGrid/AdapterCache.cpp')
-rw-r--r-- | cpp/src/IceGrid/AdapterCache.cpp | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/cpp/src/IceGrid/AdapterCache.cpp b/cpp/src/IceGrid/AdapterCache.cpp index 26c8fb67973..b76facf52da 100644 --- a/cpp/src/IceGrid/AdapterCache.cpp +++ b/cpp/src/IceGrid/AdapterCache.cpp @@ -38,7 +38,7 @@ AdapterEntry::AdapterEntry(Cache<string, AdapterEntry>& cache, const std::string } void -AdapterEntry::enableReplication(LoadBalancingPolicy policy) +AdapterEntry::enableReplication(const LoadBalancingPolicyPtr& policy) { { Lock sync(*this); @@ -112,22 +112,18 @@ AdapterEntry::getProxies(int& endpointCount) else { servers.reserve(_servers.size()); - switch(_loadBalancing) + if(RoundRobinLoadBalancingPolicyPtr::dynamicCast(_loadBalancing)) { - case Random: - servers = _servers; - random_shuffle(servers.begin(), servers.end()); - break; - case RoundRobin: for(unsigned int i = 0; i < _servers.size(); ++i) { servers.push_back(_servers[(_lastServer + i) % _servers.size()]); } _lastServer = (_lastServer + 1) % _servers.size(); - break; - case Adaptive: - servers = _servers; // TODO - break; + } + else // if(RandomLoadBalancingPolicyPtr::dynamicCast(_loadBalancing)) + { + servers = _servers; + random_shuffle(servers.begin(), servers.end()); } } } @@ -147,7 +143,11 @@ AdapterEntry::getProxies(int& endpointCount) { throw NodeUnreachableException(); } - endpointCount = 1; + + // + // TODO: Set to a configurable number of replicas. + // + endpointCount = 1; //servers.size(); return adapters; } |