diff options
author | Benoit Foucher <benoit@zeroc.com> | 2005-10-06 15:15:02 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2005-10-06 15:15:02 +0000 |
commit | 0520bfc67149d75fbf2dffbeac27c43164f16e14 (patch) | |
tree | 962c18a611b2c530984ab89dc882061e0a335c20 /cpp/src/IceGrid/AdapterCache.cpp | |
parent | IceGrid.ObjectNotExist -> IceGrid.ObjectNotregistered (diff) | |
download | ice-0520bfc67149d75fbf2dffbeac27c43164f16e14.tar.bz2 ice-0520bfc67149d75fbf2dffbeac27c43164f16e14.tar.xz ice-0520bfc67149d75fbf2dffbeac27c43164f16e14.zip |
Added support for default templates.
Added support for default parameters.
Added support for findObjectByTypeOnLeastLoadedNode
Added default templates descriptor (config/templates.xml)
Diffstat (limited to 'cpp/src/IceGrid/AdapterCache.cpp')
-rw-r--r-- | cpp/src/IceGrid/AdapterCache.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/cpp/src/IceGrid/AdapterCache.cpp b/cpp/src/IceGrid/AdapterCache.cpp index a0d532c5fbd..be78dc91349 100644 --- a/cpp/src/IceGrid/AdapterCache.cpp +++ b/cpp/src/IceGrid/AdapterCache.cpp @@ -285,6 +285,27 @@ AdapterEntry::getProxies(int& nReplicas) return adapters; } +float +AdapterEntry::getLeastLoadedNodeLoad(LoadSample loadSample) const +{ + ReplicaSeq replicas; + { + Lock sync(*this); + if(_replicas.empty()) + { + throw AdapterNotExistException(_id, ""); + } + replicas = _replicas; + } + + // + // This must be done outside the synchronization block since + // min_element() will call and lock each server entry. + // + random_shuffle(replicas.begin(), replicas.end()); + return min_element(replicas.begin(), replicas.end(), ServerLoadCI(loadSample))->second->getLoad(loadSample); +} + string AdapterEntry::getApplication() const { |