summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/NodeCache.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceGrid/NodeCache.cpp')
-rw-r--r--cpp/src/IceGrid/NodeCache.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/cpp/src/IceGrid/NodeCache.cpp b/cpp/src/IceGrid/NodeCache.cpp
index 2c421a641c5..7cea0b2d9da 100644
--- a/cpp/src/IceGrid/NodeCache.cpp
+++ b/cpp/src/IceGrid/NodeCache.cpp
@@ -16,6 +16,11 @@
using namespace std;
using namespace IceGrid;
+NodeCache::NodeCache(int sessionTimeout, const TraceLevelsPtr& traceLevels) :
+ CacheByString<NodeEntry>(traceLevels), _sessionTimeout(sessionTimeout)
+{
+}
+
NodeEntryPtr
NodeCache::get(const string& name, bool create) const
{
@@ -114,6 +119,17 @@ NodeEntry::getServers() const
return names;
}
+LoadInfo
+NodeEntry::getLoadInfo() const
+{
+ Lock sync(*this);
+ if(!_session)
+ {
+ throw NodeUnreachableException();
+ }
+ return _session->getLoadInfo();
+}
+
bool
NodeEntry::canRemove()
{