13 using namespace quicr;
29 :
Transport(cfg, std::make_shared<ThreadedTickService>())
110 std::optional<messages::SubscribeAnnouncesErrorCode> error_code,
111 std::optional<messages::ReasonPhrase> reason);
144 uint64_t subscribe_id,
145 const SubscribeResponse& subscribe_response);
176 if (connection_handle_) {
188 if (connection_handle_) {
235 if (!connection_handle_) {
239 SendSubscribeAnnounces(*connection_handle_, prefix_namespace);
249 if (!connection_handle_) {
253 SendUnsubscribeAnnounces(*connection_handle_, prefix_namespace);
264 if (connection_handle_) {
278 if (connection_handle_) {
288 void FetchTrack(std::shared_ptr<FetchTrackHandler> track_handler)
290 if (connection_handle_.has_value()) {
302 if (connection_handle_.has_value()) {
315 bool ProcessCtrlMessage(ConnectionContext& conn_ctx,
BytesSpan stream_buffer)
override;
319 connection_handle_ = connection_handle;
322 void SetStatus(
Status status)
328 std::optional<ConnectionHandle> connection_handle_;
MoQ Client.
Definition client.h:21
void SubscribeTrack(std::shared_ptr< SubscribeTrackHandler > track_handler)
Subscribe to a track.
Definition client.h:174
PublishAnnounceStatus GetAnnounceStatus(const TrackNamespace &track_namespace)
Get announce status for namespace.
void CancelFetchTrack(std::shared_ptr< FetchTrackHandler > track_handler)
Cancel a given Fetch track handler.
Definition client.h:300
std::optional< ConnectionHandle > GetConnectionHandle() const
Get the connection handle.
Definition client.h:312
void UnsubscribeAnnounces(const TrackNamespace &prefix_namespace)
Unsubscribe announces to prefix namespace.
Definition client.h:247
virtual void AnnounceStatusChanged(const TrackNamespace &track_namespace, const PublishAnnounceStatus status)
Notification on publish announcement status change.
virtual void UnpublishedSubscribeReceived(const FullTrackName &track_full_name, const SubscribeAttributes &subscribe_attributes)
Callback notification for new subscribe received that doesn't match an existing publish track.
virtual void ResolveSubscribe(ConnectionHandle connection_handle, uint64_t subscribe_id, const SubscribeResponse &subscribe_response)
Accept or reject an subscribe that was received.
void UnpublishTrack(std::shared_ptr< PublishTrackHandler > track_handler)
Unpublish track.
Definition client.h:276
void FetchTrack(std::shared_ptr< FetchTrackHandler > track_handler)
Fetch track.
Definition client.h:288
virtual void ServerSetupReceived(const ServerSetupAttributes &server_setup_attributes)
Callback on server setup message.
void PublishAnnounce(const TrackNamespace &track_namespace)
Publish a track namespace.
void SubscribeAnnounces(const TrackNamespace &prefix_namespace)
Subscribe Announces to prefix namespace.
Definition client.h:233
void PublishUnannounce(const TrackNamespace &track_namespace)
Unannounce a publish namespace.
virtual void UnannounceReceived(const TrackNamespace &track_namespace)
Callback notification for unannounce received by subscribe announces.
Client(const ClientConfig &cfg)
MoQ Client Constructor to create the client mode instance.
Definition client.h:28
virtual void AnnounceReceived(const TrackNamespace &track_namespace, const PublishAnnounceAttributes &announce_attributes)
Callback notification for announce received by subscribe announces.
void MetricsSampled(const ConnectionMetrics &metrics) override
Notification callback to provide sampled metrics.
void UnsubscribeTrack(std::shared_ptr< SubscribeTrackHandler > track_handler)
Unsubscribe track.
Definition client.h:186
virtual void SubscribeAnnouncesStatusChanged(const TrackNamespace &track_namespace, std::optional< messages::SubscribeAnnouncesErrorCode > error_code, std::optional< messages::ReasonPhrase > reason)
Callback notification for subscribe announces OK or Error.
Status Disconnect()
Disconnect the client connection gracefully.
void PublishTrack(std::shared_ptr< PublishTrackHandler > track_handler)
Publish to a track.
Definition client.h:262
Status Connect()
Starts a client connection via a transport thread.
An N-tuple representation of a MOQ namespace.
Definition track_name.h:21
MOQ Implementation supporting both client and server modes.
Definition transport.h:34
void UnpublishTrack(ConnectionHandle connection_handle, const std::shared_ptr< PublishTrackHandler > &track_handler)
Unpublish track.
Status
Status of the transport.
Definition transport.h:42
void CancelFetchTrack(ConnectionHandle connection_handle, std::shared_ptr< FetchTrackHandler > track_handler)
Cancel Fetch track.
void SubscribeTrack(ConnectionHandle connection_handle, std::shared_ptr< SubscribeTrackHandler > track_handler)
Subscribe to a track.
void FetchTrack(ConnectionHandle connection_handle, std::shared_ptr< FetchTrackHandler > track_handler)
Fetch track.
void PublishTrack(ConnectionHandle connection_handle, std::shared_ptr< PublishTrackHandler > track_handler)
Publish to a track.
void UnsubscribeTrack(ConnectionHandle connection_handle, const std::shared_ptr< SubscribeTrackHandler > &track_handler)
Unsubscribe track.
virtual void StatusChanged(Status status)
Callback notification for status/state change.
Definition transport.h:196
Definition transport.h:26
Span< const Byte > BytesSpan
Definition common.h:23
uint64_t ConnectionHandle
Definition common.h:24
PublishAnnounceStatus
Publish Announce Status.
Definition common.h:66
Full track name struct.
Definition track_name.h:267
Publish announce attributes.
Definition common.h:43
Server Setup Attributes.
Definition common.h:57
Subscribe attributes.
Definition common.h:32