76 [[nodiscard]]
virtual auto id() const -> std::string_view = 0;
89 [[nodiscard]] virtual auto
send(std::vector<uint8_t>&& data)
95 virtual auto
close() ->
void = 0;
103 virtual auto
stop() ->
void = 0;
113 [[nodiscard]] virtual auto
type() const noexcept -> const std::type_info& = 0;
122 [[nodiscard]] virtual auto
get_raw() noexcept ->
void* = 0;
128 [[nodiscard]] virtual auto
get_raw() const noexcept -> const
void* = 0;
147 -> std::chrono::steady_clock::time_point = 0;
156 -> std::chrono::steady_clock::time_point = 0;
169 [[nodiscard]] virtual auto
idle_duration() const -> std::chrono::milliseconds = 0;
Type-erased interface for session management.
virtual auto last_activity() const -> std::chrono::steady_clock::time_point=0
Gets the last activity timestamp.
virtual auto close() -> void=0
Closes the session.
session_concept & operator=(session_concept &&)=default
virtual auto stop() -> void=0
Stops the session (alias for protocol-specific implementations)
virtual ~session_concept()=default
virtual auto has_activity_tracking() const noexcept -> bool=0
Checks if this session type supports activity tracking.
virtual auto created_at() const -> std::chrono::steady_clock::time_point=0
Gets the creation timestamp.
virtual auto id() const -> std::string_view=0
Gets the session's unique identifier.
session_concept(session_concept &&)=default
virtual auto type() const noexcept -> const std::type_info &=0
Gets the runtime type information of the wrapped session.
virtual auto send(std::vector< uint8_t > &&data) -> VoidResult=0
Sends data through the session.
virtual auto get_raw() noexcept -> void *=0
Gets a raw pointer to the underlying session.
virtual auto is_connected() const -> bool=0
Checks if the session is currently connected.
virtual auto idle_duration() const -> std::chrono::milliseconds=0
Calculates idle duration since last activity.
virtual auto update_activity() -> void=0
Updates the last activity timestamp to current time.
session_concept(const session_concept &)=delete
session_concept & operator=(const session_concept &)=delete
Network-specific error and result type definitions.