Network System 0.1.1
High-performance modular networking library for scalable client-server applications
Loading...
Searching...
No Matches
kcenon::network::interfaces::i_session Interface Referenceabstract

Interface for a single client session on the server side. More...

#include <i_session.h>

Inheritance diagram for kcenon::network::interfaces::i_session:
Inheritance graph
Collaboration diagram for kcenon::network::interfaces::i_session:
Collaboration graph

Public Member Functions

virtual ~i_session ()=default
 Virtual destructor for proper cleanup.
 
 i_session (const i_session &)=delete
 
i_sessionoperator= (const i_session &)=delete
 
 i_session (i_session &&)=delete
 
i_sessionoperator= (i_session &&)=delete
 
virtual auto id () const -> std::string_view=0
 Gets the unique identifier for this session.
 
virtual auto is_connected () const -> bool=0
 Checks if the session is currently connected.
 
virtual auto send (std::vector< uint8_t > &&data) -> VoidResult=0
 Sends data to the client.
 
virtual auto close () -> void=0
 Closes the session.
 

Protected Member Functions

 i_session ()=default
 Default constructor (only for derived classes)
 

Detailed Description

Interface for a single client session on the server side.

This interface represents a connection to a single client. It is provided to server callbacks and allows sending data to and managing individual client connections.

Lifetime Management

Sessions are typically managed via shared_ptr. The session remains valid as long as the connection is active or a reference is held.

Thread Safety

All methods must be thread-safe. Send operations are typically queued and executed asynchronously.

See also
i_server

Definition at line 48 of file i_session.h.

Constructor & Destructor Documentation

◆ ~i_session()

virtual kcenon::network::interfaces::i_session::~i_session ( )
virtualdefault

Virtual destructor for proper cleanup.

◆ i_session() [1/3]

kcenon::network::interfaces::i_session::i_session ( const i_session & )
delete

◆ i_session() [2/3]

kcenon::network::interfaces::i_session::i_session ( i_session && )
delete

◆ i_session() [3/3]

kcenon::network::interfaces::i_session::i_session ( )
protecteddefault

Default constructor (only for derived classes)

Member Function Documentation

◆ close()

virtual auto kcenon::network::interfaces::i_session::close ( ) -> void
pure virtual

◆ id()

virtual auto kcenon::network::interfaces::i_session::id ( ) const -> std::string_view
nodiscardpure virtual

◆ is_connected()

virtual auto kcenon::network::interfaces::i_session::is_connected ( ) const -> bool
nodiscardpure virtual

◆ operator=() [1/2]

i_session & kcenon::network::interfaces::i_session::operator= ( const i_session & )
delete

◆ operator=() [2/2]

i_session & kcenon::network::interfaces::i_session::operator= ( i_session && )
delete

◆ send()

virtual auto kcenon::network::interfaces::i_session::send ( std::vector< uint8_t > && data) -> VoidResult
nodiscardpure virtual

Sends data to the client.

Parameters
dataThe data to send.
Returns
VoidResult indicating success or failure.

Error Conditions

  • Returns error if session is closed
  • Returns error if send operation fails

Thread Safety

Thread-safe. Multiple sends may be queued.

Implemented in kcenon::network::core::ws_connection, kcenon::network::internal::adapters::http_request_session, kcenon::network::internal::adapters::quic_session_wrapper, kcenon::network::internal::adapters::udp_endpoint_session, kcenon::network::internal::adapters::ws_session_wrapper, kcenon::network::session::messaging_session, and kcenon::network::session::quic_session.


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