diff options
author | Jose <pepone@users.noreply.github.com> | 2024-09-30 16:57:24 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-30 16:57:24 +0200 |
commit | c2e07e9bee33ea3a19396dfe1d1fc202b11e65b9 (patch) | |
tree | e000da503db4608750cb4afbeba22d9abb1ac5ec | |
parent | Add support for Clang 16 (#2774) (diff) | |
download | ice-c2e07e9bee33ea3a19396dfe1d1fc202b11e65b9.tar.bz2 ice-c2e07e9bee33ea3a19396dfe1d1fc202b11e65b9.tar.xz ice-c2e07e9bee33ea3a19396dfe1d1fc202b11e65b9.zip |
Fix IceGrid Glacier2 session managers to keep sessions alive (#2756)
-rw-r--r-- | cpp/src/IceGrid/AdminSessionI.cpp | 6 | ||||
-rw-r--r-- | cpp/src/IceGrid/AdminSessionI.h | 2 | ||||
-rw-r--r-- | cpp/src/IceGrid/SessionI.cpp | 6 | ||||
-rw-r--r-- | cpp/src/IceGrid/SessionI.h | 2 |
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&, |