Network System 0.1.1
High-performance modular networking library for scalable client-server applications
Loading...
Searching...
No Matches
kcenon::network::session_timeout_manager Class Reference

#include <session_timeout.h>

Collaboration diagram for kcenon::network::session_timeout_manager:
Collaboration graph

Public Member Functions

 session_timeout_manager (std::chrono::seconds timeout=std::chrono::seconds(300))
 
void update_activity ()
 
bool is_timed_out () const
 
auto get_idle_time () const
 

Private Attributes

std::chrono::seconds timeout_
 
std::atomic< std::chrono::steady_clock::time_point > last_activity_
 

Detailed Description

Definition at line 11 of file session_timeout.h.

Constructor & Destructor Documentation

◆ session_timeout_manager()

kcenon::network::session_timeout_manager::session_timeout_manager ( std::chrono::seconds timeout = std::chrono::seconds(300))
inlineexplicit

Definition at line 13 of file session_timeout.h.

14 : timeout_(timeout) {}

Member Function Documentation

◆ get_idle_time()

auto kcenon::network::session_timeout_manager::get_idle_time ( ) const
inline

Definition at line 27 of file session_timeout.h.

27 {
28 auto now = std::chrono::steady_clock::now();
29 return std::chrono::duration_cast<std::chrono::seconds>(
30 now - last_activity_.load());
31 }
std::atomic< std::chrono::steady_clock::time_point > last_activity_

References last_activity_.

◆ is_timed_out()

bool kcenon::network::session_timeout_manager::is_timed_out ( ) const
inline

Definition at line 20 of file session_timeout.h.

20 {
21 auto now = std::chrono::steady_clock::now();
22 auto elapsed = std::chrono::duration_cast<std::chrono::seconds>(
23 now - last_activity_.load());
24 return elapsed > timeout_;
25 }

References last_activity_, and timeout_.

◆ update_activity()

void kcenon::network::session_timeout_manager::update_activity ( )
inline

Definition at line 16 of file session_timeout.h.

16 {
17 last_activity_ = std::chrono::steady_clock::now();
18 }

References last_activity_.

Member Data Documentation

◆ last_activity_

std::atomic<std::chrono::steady_clock::time_point> kcenon::network::session_timeout_manager::last_activity_
private
Initial value:
{
std::chrono::steady_clock::now()}

Definition at line 35 of file session_timeout.h.

35 {
36 std::chrono::steady_clock::now()};

Referenced by get_idle_time(), is_timed_out(), and update_activity().

◆ timeout_

std::chrono::seconds kcenon::network::session_timeout_manager::timeout_
private

Definition at line 34 of file session_timeout.h.

Referenced by is_timed_out().


The documentation for this class was generated from the following file: