27template <
typename SessionType,
bool HasActivityTracking>
35template <
typename SessionType>
42 : session(std::move(sess))
43 , created_at(std::chrono::steady_clock::now())
44 , last_activity(created_at) {}
56 return std::chrono::duration_cast<std::chrono::milliseconds>(
57 std::chrono::steady_clock::now() - last_activity);
66template <
typename SessionType>
71 : session(std::move(sess)) {}
80template <
typename SessionType>
std::shared_ptr< SessionType > session
session_info_base(std::shared_ptr< SessionType > sess)
std::chrono::steady_clock::time_point created_at
std::chrono::steady_clock::time_point last_activity
void update_activity()
Updates the last activity timestamp to current time.
session_info_base(std::shared_ptr< SessionType > sess)
auto idle_duration() const -> std::chrono::milliseconds
Calculates the idle duration since last activity.
std::shared_ptr< SessionType > session
Wrapper for session with optional activity tracking.
Customization point for session manager behavior.