summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/NodeSessionI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceGrid/NodeSessionI.cpp')
-rw-r--r--cpp/src/IceGrid/NodeSessionI.cpp22
1 files changed, 17 insertions, 5 deletions
diff --git a/cpp/src/IceGrid/NodeSessionI.cpp b/cpp/src/IceGrid/NodeSessionI.cpp
index a0f63926737..9023e0715c8 100644
--- a/cpp/src/IceGrid/NodeSessionI.cpp
+++ b/cpp/src/IceGrid/NodeSessionI.cpp
@@ -15,15 +15,20 @@
using namespace std;
using namespace IceGrid;
-NodeSessionI::NodeSessionI(const DatabasePtr& database, const string& name, const NodePrx& node,
- const NodeInfo& info) :
+NodeSessionI::NodeSessionI(const DatabasePtr& database,
+ const string& name,
+ const NodePrx& node,
+ const NodeInfo& info,
+ const NodeObserverPrx& observer,
+ int timeout) :
_database(database),
_traceLevels(database->getTraceLevels()),
_name(name),
- _node(node),
+ _node(NodePrx::uncheckedCast(node->ice_timeout(timeout * 1000))),
_info(info),
- _startTime(IceUtil::Time::now()),
- _timestamp(_startTime),
+ _observer(observer),
+ _timeout(timeout),
+ _timestamp(IceUtil::Time::now()),
_destroy(false)
{
__setNoDelete(true);
@@ -59,6 +64,13 @@ NodeSessionI::keepAlive(const LoadInfo& load, const Ice::Current& current)
}
}
+int
+NodeSessionI::getTimeoutAndObserver(NodeObserverPrx& observer, const Ice::Current& current) const
+{
+ observer = _observer;
+ return _timeout;
+}
+
Ice::StringSeq
NodeSessionI::getServers(const Ice::Current& current)
{