LibQuicR
Loading...
Searching...
No Matches
quicr::Transport Class Referenceabstract

MOQ Implementation supporting both client and server modes. More...

#include <transport.h>

Inheritance diagram for quicr::Transport:
quicr::Client quicr::Server

Classes

struct  ConnectionRemoteInfo
 Connection remote information. More...
 

Public Types

enum class  Status : uint8_t {
  kReady = 0 , kNotReady , kInternalError , kInvalidParams ,
  kConnecting , kDisconnecting , kNotConnected , kFailedToConnect ,
  kPendingSeverSetup
}
 Status of the transport. More...
 
enum class  ControlMessageStatus : uint8_t {
  kMessageIncomplete , kMessageComplete , kStreamBufferCannotBeZero , kStreamBufferMissingType ,
  kUnsupportedMessageType
}
 Control message status codes. More...
 
enum class  StreamDataMessageStatus : uint8_t
 
enum class  ConnectionStatus : uint8_t {
  kNotConnected = 0 , kConnecting , kConnected , kIdleTimeout ,
  kClosedByRemote
}
 Connection status codes. More...
 

Public Member Functions

 Transport ()=delete
 
 Transport (const ClientConfig &cfg, std::shared_ptr< TickService > tick_service)
 Client mode Constructor to create the MOQ instance.
 
 Transport (const ServerConfig &cfg, std::shared_ptr< TickService > tick_service)
 Server mode Constructor to create the MOQ instance.
 
 ~Transport ()
 
const std::shared_ptr< TickService > & GetTickService () const noexcept
 
void SubscribeTrack (ConnectionHandle connection_handle, std::shared_ptr< SubscribeTrackHandler > track_handler)
 Subscribe to a track.
 
void UnsubscribeTrack (ConnectionHandle connection_handle, const std::shared_ptr< SubscribeTrackHandler > &track_handler)
 Unsubscribe track.
 
void UpdateTrackSubscription (ConnectionHandle connection_handle, std::shared_ptr< SubscribeTrackHandler > track_handler)
 Update Subscription to a track.
 
void PublishTrack (ConnectionHandle connection_handle, std::shared_ptr< PublishTrackHandler > track_handler)
 Publish to a track.
 
void UnpublishTrack (ConnectionHandle connection_handle, const std::shared_ptr< PublishTrackHandler > &track_handler)
 Unpublish track.
 
void FetchTrack (ConnectionHandle connection_handle, std::shared_ptr< FetchTrackHandler > track_handler)
 Fetch track.
 
void CancelFetchTrack (ConnectionHandle connection_handle, std::shared_ptr< FetchTrackHandler > track_handler)
 Cancel Fetch track.
 
Status GetStatus () const noexcept
 Get the status of the Client.
 
Base Calbacks

Both client and server implement the same transport base callbacks

virtual void StatusChanged (Status status)
 Callback notification for status/state change.
 

Detailed Description

MOQ Implementation supporting both client and server modes.

MoQ implementation is the handler for either a client or server. It can run in only one mode, client or server.

Member Enumeration Documentation

◆ ConnectionStatus

enum class quicr::Transport::ConnectionStatus : uint8_t
strong

Connection status codes.

Enumerator
kNotConnected 
kConnecting 
kConnected 
kIdleTimeout 
kClosedByRemote 

◆ ControlMessageStatus

enum class quicr::Transport::ControlMessageStatus : uint8_t
strong

Control message status codes.

Enumerator
kMessageIncomplete 

control message is incomplete and more data is needed

kMessageComplete 

control message is complete and stream buffer get any has complete message

kStreamBufferCannotBeZero 

stream buffer cannot be zero when parsing message type

kStreamBufferMissingType 

connection context is missing message type

kUnsupportedMessageType 

Unsupported MOQT message type.

◆ Status

enum class quicr::Transport::Status : uint8_t
strong

Status of the transport.

Enumerator
kReady 
kNotReady 
kInternalError 
kInvalidParams 
kConnecting 
kDisconnecting 
kNotConnected 
kFailedToConnect 
kPendingSeverSetup 

◆ StreamDataMessageStatus

enum class quicr::Transport::StreamDataMessageStatus : uint8_t
strong

Constructor & Destructor Documentation

◆ Transport() [1/3]

quicr::Transport::Transport ( )
delete

◆ Transport() [2/3]

quicr::Transport::Transport ( const ClientConfig & cfg,
std::shared_ptr< TickService > tick_service )

Client mode Constructor to create the MOQ instance.

Parameters
cfgMoQ Instance Client Configuration
tick_serviceShared pointer to the tick service to use

◆ Transport() [3/3]

quicr::Transport::Transport ( const ServerConfig & cfg,
std::shared_ptr< TickService > tick_service )

Server mode Constructor to create the MOQ instance.

Parameters
cfgMoQ Server Configuration
tick_serviceShared pointer to the tick service to use

◆ ~Transport()

quicr::Transport::~Transport ( )

Member Function Documentation

◆ CancelFetchTrack()

void quicr::Transport::CancelFetchTrack ( ConnectionHandle connection_handle,
std::shared_ptr< FetchTrackHandler > track_handler )

Cancel Fetch track.

Parameters
connection_handleConnection ID to send fetch cancel.
track_handlerFetch Track handler to cancel.

◆ FetchTrack()

void quicr::Transport::FetchTrack ( ConnectionHandle connection_handle,
std::shared_ptr< FetchTrackHandler > track_handler )

Fetch track.

Parameters
connection_handleConnection ID to send fetch
track_handlerTrack handler used for fetching

◆ GetStatus()

Status quicr::Transport::GetStatus ( ) const
inlinenoexcept

Get the status of the Client.

Returns
Status of the Client

◆ GetTickService()

const std::shared_ptr< TickService > & quicr::Transport::GetTickService ( ) const
inlinenoexcept

◆ PublishTrack()

void quicr::Transport::PublishTrack ( ConnectionHandle connection_handle,
std::shared_ptr< PublishTrackHandler > track_handler )

Publish to a track.

Parameters
connection_handleConnection ID from transport for the QUIC connection context
track_handlerTrack handler to use for track related functions and callbacks

◆ StatusChanged()

virtual void quicr::Transport::StatusChanged ( Status status)
inlinevirtual

Callback notification for status/state change.

Callback notification indicates state change of connection, such as disconnected

Parameters
statusChanged Status value
Examples
client.cpp.

◆ SubscribeTrack()

void quicr::Transport::SubscribeTrack ( ConnectionHandle connection_handle,
std::shared_ptr< SubscribeTrackHandler > track_handler )

Subscribe to a track.

Parameters
connection_handleConnection ID to send subscribe
track_handlerTrack handler to use for track related functions and callbacks
Examples
server.cpp.

◆ UnpublishTrack()

void quicr::Transport::UnpublishTrack ( ConnectionHandle connection_handle,
const std::shared_ptr< PublishTrackHandler > & track_handler )

Unpublish track.

Parameters
connection_handleConnection ID from transport for the QUIC connection context
track_handlerTrack handler used when published track

◆ UnsubscribeTrack()

void quicr::Transport::UnsubscribeTrack ( ConnectionHandle connection_handle,
const std::shared_ptr< SubscribeTrackHandler > & track_handler )

Unsubscribe track.

Parameters
connection_handleConnection ID to send subscribe
track_handlerTrack handler to use for track related functions and callbacks
Examples
server.cpp.

◆ UpdateTrackSubscription()

void quicr::Transport::UpdateTrackSubscription ( ConnectionHandle connection_handle,
std::shared_ptr< SubscribeTrackHandler > track_handler )

Update Subscription to a track.

Parameters
connection_handleConnection ID to send subscribe
track_handlerTrack handler to use for track related functions and callbacks
Examples
server.cpp.

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