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

#include <quic_session.h>

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

Inherited by quic::QUICEchoSession.

Classes

struct  EmptyMsg
 
struct  SendRecvMsg
 

Public Member Functions

 QUICSession (int64_t session_id_, ringbuffer::AbstractWriterFactory &writer_factory_)
 
 ~QUICSession ()
 
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 flush ()
 
void close_session () override
 
void close_thread ()
 
- Public Member Functions inherited from ccf::Session
virtual ~Session ()=default
 
virtual void handle_incoming_data (std::span< const uint8_t > data)=0
 
virtual void send_data (std::span< const uint8_t > data)=0
 

Static Public Member Functions

static void send_raw_cb (std::unique_ptr< threading::Tmsg< SendRecvMsg > > msg)
 
static void close_cb (std::unique_ptr< threading::Tmsg< EmptyMsg > > msg)
 

Protected Types

enum  Status {
  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
 
size_t execution_thread
 
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
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 ( )
inline

Member Function Documentation

◆ close_cb()

static void quic::QUICSession::close_cb ( std::unique_ptr< threading::Tmsg< EmptyMsg > >  msg)
inlinestatic

◆ 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

◆ 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_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_cb()

static void quic::QUICSession::send_raw_cb ( std::unique_ptr< threading::Tmsg< SendRecvMsg > >  msg)
inlinestatic

◆ send_raw_thread()

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

Member Data Documentation

◆ execution_thread

size_t quic::QUICSession::execution_thread
protected

◆ 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

◆ to_host

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

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