summaryrefslogtreecommitdiffstats
path: root/session.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'session.hpp')
-rw-r--r--session.hpp26
1 files changed, 25 insertions, 1 deletions
diff --git a/session.hpp b/session.hpp
index 338a815..4ba3fa6 100644
--- a/session.hpp
+++ b/session.hpp
@@ -231,7 +231,31 @@ class Session
* transaction time is compared against the session inactivity timeout.
*
*/
- bool isSessionActive();
+ bool isSessionActive()
+ {
+ auto currentTime = std::chrono::steady_clock::now();
+ auto elapsedSeconds = std::chrono::duration_cast<std::chrono::seconds>(
+ currentTime - lastTime);
+
+ switch (state)
+ {
+ case State::SETUP_IN_PROGRESS:
+ if (elapsedSeconds < SESSION_SETUP_TIMEOUT)
+ {
+ return true;
+ }
+ break;
+ case State::ACTIVE:
+ if (elapsedSeconds < SESSION_INACTIVITY_TIMEOUT)
+ {
+ return true;
+ }
+ break;
+ default:
+ return false;
+ }
+ return false;
+ }
/**
* @brief Session's Current Privilege Level
OpenPOWER on IntegriCloud