LibQuicR
|
MOQ Implementation supporting both client and server modes. More...
#include <transport.h>
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. | |
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.
|
strong |
|
strong |
Control message status codes.
|
strong |
|
strong |
|
delete |
quicr::Transport::Transport | ( | const ClientConfig & | cfg, |
std::shared_ptr< TickService > | tick_service ) |
quicr::Transport::Transport | ( | const ServerConfig & | cfg, |
std::shared_ptr< TickService > | tick_service ) |
quicr::Transport::~Transport | ( | ) |
void quicr::Transport::CancelFetchTrack | ( | ConnectionHandle | connection_handle, |
std::shared_ptr< FetchTrackHandler > | track_handler ) |
Cancel Fetch track.
connection_handle | Connection ID to send fetch cancel. |
track_handler | Fetch Track handler to cancel. |
void quicr::Transport::FetchTrack | ( | ConnectionHandle | connection_handle, |
std::shared_ptr< FetchTrackHandler > | track_handler ) |
Fetch track.
connection_handle | Connection ID to send fetch |
track_handler | Track handler used for fetching |
|
inlinenoexcept |
|
inlinenoexcept |
void quicr::Transport::PublishTrack | ( | ConnectionHandle | connection_handle, |
std::shared_ptr< PublishTrackHandler > | track_handler ) |
Publish to a track.
connection_handle | Connection ID from transport for the QUIC connection context |
track_handler | Track handler to use for track related functions and callbacks |
|
inlinevirtual |
Callback notification for status/state change.
Callback notification indicates state change of connection, such as disconnected
status | Changed Status value |
void quicr::Transport::SubscribeTrack | ( | ConnectionHandle | connection_handle, |
std::shared_ptr< SubscribeTrackHandler > | track_handler ) |
Subscribe to a track.
connection_handle | Connection ID to send subscribe |
track_handler | Track handler to use for track related functions and callbacks |
void quicr::Transport::UnpublishTrack | ( | ConnectionHandle | connection_handle, |
const std::shared_ptr< PublishTrackHandler > & | track_handler ) |
Unpublish track.
connection_handle | Connection ID from transport for the QUIC connection context |
track_handler | Track handler used when published track |
void quicr::Transport::UnsubscribeTrack | ( | ConnectionHandle | connection_handle, |
const std::shared_ptr< SubscribeTrackHandler > & | track_handler ) |
Unsubscribe track.
connection_handle | Connection ID to send subscribe |
track_handler | Track handler to use for track related functions and callbacks |
void quicr::Transport::UpdateTrackSubscription | ( | ConnectionHandle | connection_handle, |
std::shared_ptr< SubscribeTrackHandler > | track_handler ) |
Update Subscription to a track.
connection_handle | Connection ID to send subscribe |
track_handler | Track handler to use for track related functions and callbacks |