summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorJose <pepone@users.noreply.github.com>2024-09-30 16:57:24 +0200
committerGitHub <noreply@github.com>2024-09-30 16:57:24 +0200
commitc2e07e9bee33ea3a19396dfe1d1fc202b11e65b9 (patch)
treee000da503db4608750cb4afbeba22d9abb1ac5ec /cpp/src
parentAdd support for Clang 16 (#2774) (diff)
downloadice-c2e07e9bee33ea3a19396dfe1d1fc202b11e65b9.tar.bz2
ice-c2e07e9bee33ea3a19396dfe1d1fc202b11e65b9.tar.xz
ice-c2e07e9bee33ea3a19396dfe1d1fc202b11e65b9.zip
Fix IceGrid Glacier2 session managers to keep sessions alive (#2756)
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/IceGrid/AdminSessionI.cpp6
-rw-r--r--cpp/src/IceGrid/AdminSessionI.h2
-rw-r--r--cpp/src/IceGrid/SessionI.cpp6
-rw-r--r--cpp/src/IceGrid/SessionI.h2
4 files changed, 16 insertions, 0 deletions
diff --git a/cpp/src/IceGrid/AdminSessionI.cpp b/cpp/src/IceGrid/AdminSessionI.cpp
index 947298e7842..6acf263d928 100644
--- a/cpp/src/IceGrid/AdminSessionI.cpp
+++ b/cpp/src/IceGrid/AdminSessionI.cpp
@@ -116,6 +116,12 @@ AdminSessionI::~AdminSessionI()
{
}
+void
+AdminSessionI::ice_ping(const Ice::Current& current) const
+{
+ const_cast<AdminSessionI*>(this)->keepAlive(current);
+}
+
Ice::ObjectPrx
AdminSessionI::_register(const SessionServantManagerPtr& servantManager, const Ice::ConnectionPtr& con)
{
diff --git a/cpp/src/IceGrid/AdminSessionI.h b/cpp/src/IceGrid/AdminSessionI.h
index ee1d9c909d8..eadff504a12 100644
--- a/cpp/src/IceGrid/AdminSessionI.h
+++ b/cpp/src/IceGrid/AdminSessionI.h
@@ -28,6 +28,8 @@ public:
Ice::ObjectPrx _register(const SessionServantManagerPtr&, const Ice::ConnectionPtr&);
+ virtual void ice_ping(const Ice::Current&) const;
+
virtual void keepAlive(const Ice::Current& current) { BaseSessionI::keepAlive(current); }
virtual AdminPrx getAdmin(const Ice::Current&) const;
diff --git a/cpp/src/IceGrid/SessionI.cpp b/cpp/src/IceGrid/SessionI.cpp
index 16b27d53d11..4e6f377d14f 100644
--- a/cpp/src/IceGrid/SessionI.cpp
+++ b/cpp/src/IceGrid/SessionI.cpp
@@ -155,6 +155,12 @@ SessionI::~SessionI()
{
}
+void
+SessionI::ice_ping(const Ice::Current& current) const
+{
+ const_cast<SessionI*>(this)->keepAlive(current);
+}
+
Ice::ObjectPrx
SessionI::_register(const SessionServantManagerPtr& servantManager, const Ice::ConnectionPtr& con)
{
diff --git a/cpp/src/IceGrid/SessionI.h b/cpp/src/IceGrid/SessionI.h
index 761fb6fde98..43548a082ad 100644
--- a/cpp/src/IceGrid/SessionI.h
+++ b/cpp/src/IceGrid/SessionI.h
@@ -73,6 +73,8 @@ public:
Ice::ObjectPrx _register(const SessionServantManagerPtr&, const Ice::ConnectionPtr&);
+ virtual void ice_ping(const Ice::Current&) const;
+
virtual void keepAlive(const Ice::Current& current) { BaseSessionI::keepAlive(current); }
virtual void allocateObjectById_async(const AMD_Session_allocateObjectByIdPtr&, const Ice::Identity&,