diff options
Diffstat (limited to 'cpp/src/Glacier2/RouterI.cpp')
-rw-r--r-- | cpp/src/Glacier2/RouterI.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/cpp/src/Glacier2/RouterI.cpp b/cpp/src/Glacier2/RouterI.cpp index 7c9ee802fb6..337a9faec9b 100644 --- a/cpp/src/Glacier2/RouterI.cpp +++ b/cpp/src/Glacier2/RouterI.cpp @@ -9,13 +9,14 @@ #include <Ice/RoutingTable.h> #include <Glacier2/RouterI.h> +#include <Glacier2/Session.h> using namespace std; using namespace Ice; using namespace Glacier2; Glacier2::RouterI::RouterI(const ObjectAdapterPtr& clientAdapter, const ObjectAdapterPtr& serverAdapter, - const ConnectionPtr& connection, const string& userId) : + const ConnectionPtr& connection, const string& userId, const SessionPrx& session) : _communicator(clientAdapter->getCommunicator()), _routingTable(new IceInternal::RoutingTable), _routingTableTraceLevel(_communicator->getProperties()->getPropertyAsInt("Glacier2.Trace.RoutingTable")), @@ -23,6 +24,7 @@ Glacier2::RouterI::RouterI(const ObjectAdapterPtr& clientAdapter, const ObjectAd _clientBlobject(new ClientBlobject(_communicator, _routingTable, "")), _connection(connection), _userId(userId), + _session(session), _timestamp(IceUtil::Time::now()), _destroy(false) { @@ -62,6 +64,11 @@ Glacier2::RouterI::destroy() _serverBlobject->destroy(); } + if(_session) + { + _session->destroy(); + } + _destroy = true; } @@ -143,6 +150,12 @@ Glacier2::RouterI::getServerBlobject() const return _serverBlobject; } +SessionPrx +Glacier2::RouterI::getSession() const +{ + return _session; // No mutex lock necessary, _session is immutable. +} + IceUtil::Time Glacier2::RouterI::getTimestamp() const { |