CCF
Loading...
Searching...
No Matches
Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
quic::QUICSession Class Referenceabstract

#include <quic_session.h>

Inherits ccf::Session, and std::enable_shared_from_this< QUICSession >.

Inherited by quic::QUICEchoSession.

Classes

struct  RecvDataTask
 
struct  SendDataTask
 
struct  SessionDataTask
 

Public Member Functions

 QUICSession (int64_t session_id_, ringbuffer::AbstractWriterFactory &writer_factory_)
 
 ~QUICSession () override
 
std::string hostname ()
 
std::vector< uint8_t > peer_cert ()
 
size_t read (uint8_t *data, size_t size, sockaddr addr, bool exact=false)
 
void recv_buffered (const uint8_t *data, size_t size, sockaddr addr)
 
void send_raw (const uint8_t *data, size_t size, sockaddr addr)
 
void send_raw_thread (const std::vector< uint8_t > &data, sockaddr addr)
 
void send_buffered (const std::vector< uint8_t > &data, sockaddr addr)
 
void handle_incoming_data (std::span< const uint8_t > data) override
 
virtual void recv (const uint8_t *data_, size_t size_, sockaddr addr_)=0
 
void flush ()
 
void close_session () override
 
void close_thread ()
 
- Public Member Functions inherited from ccf::Session
virtual ~Session ()=default
 
virtual void send_data (std::vector< uint8_t > &&data)=0
 

Protected Types

enum  Status : std::uint8_t {
  handshake , ready , closed , authfail ,
  error
}
 
using PendingBuffer = PendingIO< uint8_t >
 
using PendingList = std::vector< PendingBuffer >
 

Protected Member Functions

Status get_status () const
 

Protected Attributes

ringbuffer::WriterPtr to_host
 
ccf::tls::ConnID session_id
 
std::shared_ptr< ccf::tasks::OrderedTaskstask_scheduler
 
PendingList pending_writes
 
PendingList pending_reads
 

Member Typedef Documentation

◆ PendingBuffer

using quic::QUICSession::PendingBuffer = PendingIO<uint8_t>
protected

◆ PendingList

using quic::QUICSession::PendingList = std::vector<PendingBuffer>
protected

Member Enumeration Documentation

◆ Status

enum quic::QUICSession::Status : std::uint8_t
protected
Enumerator
handshake 
ready 
closed 
authfail 
error 

Constructor & Destructor Documentation

◆ QUICSession()

quic::QUICSession::QUICSession ( int64_t  session_id_,
ringbuffer::AbstractWriterFactory writer_factory_ 
)
inline

◆ ~QUICSession()

quic::QUICSession::~QUICSession ( )
inlineoverride

Member Function Documentation

◆ close_session()

void quic::QUICSession::close_session ( )
inlineoverridevirtual

Implements ccf::Session.

◆ close_thread()

void quic::QUICSession::close_thread ( )
inline

◆ flush()

void quic::QUICSession::flush ( )
inline

◆ get_status()

Status quic::QUICSession::get_status ( ) const
inlineprotected

◆ handle_incoming_data()

void quic::QUICSession::handle_incoming_data ( std::span< const uint8_t >  data)
inlineoverridevirtual

Implements ccf::Session.

◆ hostname()

std::string quic::QUICSession::hostname ( )
inline

◆ peer_cert()

std::vector< uint8_t > quic::QUICSession::peer_cert ( )
inline

◆ read()

size_t quic::QUICSession::read ( uint8_t *  data,
size_t  size,
sockaddr  addr,
bool  exact = false 
)
inline

◆ recv()

virtual void quic::QUICSession::recv ( const uint8_t *  data_,
size_t  size_,
sockaddr  addr_ 
)
pure virtual

Implemented in quic::QUICEchoSession.

◆ recv_buffered()

void quic::QUICSession::recv_buffered ( const uint8_t *  data,
size_t  size,
sockaddr  addr 
)
inline

◆ send_buffered()

void quic::QUICSession::send_buffered ( const std::vector< uint8_t > &  data,
sockaddr  addr 
)
inline

◆ send_raw()

void quic::QUICSession::send_raw ( const uint8_t *  data,
size_t  size,
sockaddr  addr 
)
inline

◆ send_raw_thread()

void quic::QUICSession::send_raw_thread ( const std::vector< uint8_t > &  data,
sockaddr  addr 
)
inline

Member Data Documentation

◆ pending_reads

PendingList quic::QUICSession::pending_reads
protected

◆ pending_writes

PendingList quic::QUICSession::pending_writes
protected

◆ session_id

ccf::tls::ConnID quic::QUICSession::session_id
protected

◆ task_scheduler

std::shared_ptr<ccf::tasks::OrderedTasks> quic::QUICSession::task_scheduler
protected

◆ to_host

ringbuffer::WriterPtr quic::QUICSession::to_host
protected

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