diff options
Diffstat (limited to 'session.hpp')
-rw-r--r-- | session.hpp | 26 |
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 |