imquic MoQ public interface More...
#include "imquic/moq.h"
#include "internal/configuration.h"
#include "internal/connection.h"
#include "internal/moq.h"
Macros | |
#define | IMQUIC_MOQ_ALPN "moq-00" |
Functions | |
imquic_server * | imquic_create_moq_server (const char *name,...) |
Method to create a new MoQ server, using variable arguments to dictate what the server should do (e.g., port to bind to, ALPN, etc.). Variable arguments are in the form of a sequence of name-value started with a IMQUIC_CONFIG_INIT and ended by a IMQUIC_CONFIG_DONE , e.g.: | |
imquic_client * | imquic_create_moq_client (const char *name,...) |
Method to create a new MoQ client, using variable arguments to dictate what the client should do (e.g., address to connect to, ALPN, etc.). Variable arguments are in the form of a sequence of name-value started with a IMQUIC_CONFIG_INIT and ended by a IMQUIC_CONFIG_DONE , e.g.: | |
const char * | imquic_moq_namespace_str (imquic_moq_namespace *tns, char *buffer, size_t blen, gboolean tuple) |
Helper to stringify a namespace (optionally the whole tuple) | |
const char * | imquic_moq_track_str (imquic_moq_name *tn, char *buffer, size_t blen) |
void | imquic_set_new_moq_connection_cb (imquic_endpoint *endpoint, void(*new_moq_connection)(imquic_connection *conn, void *user_data)) |
Configure the callback function to be notified about new MoQ connections on the configured endpoint. For a server, it will be triggered any time a client successfully connects to the server; for a client, it will be triggered when the client successfully connects to the server. Notice that this precedes the MoQ setup/handshakes, which means this is where you need to configure the MoQ role via imquic_moq_set_role. You'll need to wait until the callback set in imquic_set_moq_ready_cb is fired, before being able to use the MoQ API for publishing/subscribing. | |
void | imquic_set_moq_ready_cb (imquic_endpoint *endpoint, void(*moq_ready)(imquic_connection *conn)) |
Configure the callback function to be notified when a MoQ connection has been successfully established. After this, the MoQ APIs can be used to start exchanging MoQ messages. | |
void | imquic_set_incoming_announce_cb (imquic_endpoint *endpoint, void(*incoming_announce)(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns)) |
Configure the callback function to be notified when there's an incoming ANNOUNCE request. | |
void | imquic_set_incoming_announce_cancel_cb (imquic_endpoint *endpoint, void(*incoming_announce_cancel)(imquic_connection *conn, imquic_moq_namespace *tns, imquic_moq_announce_error_code error_code, const char *reason)) |
Configure the callback function to be notified when there's an incoming ANNOUNCE_CANCEL request. | |
void | imquic_set_announce_accepted_cb (imquic_endpoint *endpoint, void(*announce_accepted)(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns)) |
Configure the callback function to be notified when an ANNOUNCE we previously sent was accepted. | |
void | imquic_set_announce_error_cb (imquic_endpoint *endpoint, void(*announce_error)(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_announce_error_code error_code, const char *reason)) |
Configure the callback function to be notified when an ANNOUNCE we previously sent was rejected with an error. | |
void | imquic_set_incoming_unannounce_cb (imquic_endpoint *endpoint, void(*incoming_unannounce)(imquic_connection *conn, imquic_moq_namespace *tns)) |
Configure the callback function to be notified when there's an incoming UNANNOUNCE request. | |
void | imquic_set_incoming_subscribe_cb (imquic_endpoint *endpoint, void(*incoming_subscribe)(imquic_connection *conn, uint64_t request_id, uint64_t track_alias, imquic_moq_namespace *tns, imquic_moq_name *tn, uint8_t priority, gboolean descending, gboolean forward, imquic_moq_filter_type filter_type, imquic_moq_location *start_location, imquic_moq_location *end_location, uint8_t *auth, size_t authlen)) |
Configure the callback function to be notified when there's an incoming SUBSCRIBE request. | |
void | imquic_set_subscribe_accepted_cb (imquic_endpoint *endpoint, void(*subscribe_accepted)(imquic_connection *conn, uint64_t request_id, uint64_t expires, gboolean descending, imquic_moq_location *largest)) |
Configure the callback function to be notified when a SUBSCRIBE we previously sent was accepted. | |
void | imquic_set_subscribe_error_cb (imquic_endpoint *endpoint, void(*subscribe_error)(imquic_connection *conn, uint64_t request_id, imquic_moq_sub_error_code error_codes, const char *reason, uint64_t track_alias)) |
Configure the callback function to be notified when a SUBSCRIBE we previously sent was rejected with an error. | |
void | imquic_set_subscribe_updated_cb (imquic_endpoint *endpoint, void(*subscribe_updated)(imquic_connection *conn, uint64_t request_id, imquic_moq_location *start_location, uint64_t end_group, uint8_t priority, gboolean forward)) |
Configure the callback function to be notified when an update is received for a SUBSCRIBE we previously sent. | |
void | imquic_set_subscribe_done_cb (imquic_endpoint *endpoint, void(*subscribe_done)(imquic_connection *conn, uint64_t request_id, imquic_moq_sub_done_code status_code, uint64_t streams_count, const char *reason)) |
Configure the callback function to be notified when a SUBSCRIBE we previously sent is now done. | |
void | imquic_set_incoming_unsubscribe_cb (imquic_endpoint *endpoint, void(*incoming_unsubscribe)(imquic_connection *conn, uint64_t request_id)) |
Configure the callback function to be notified when there's an incoming UNSUBSCRIBE request. | |
void | imquic_set_requests_blocked_cb (imquic_endpoint *endpoint, void(*requests_blocked)(imquic_connection *conn, uint64_t max_request_id)) |
Configure the callback function to be notified when there's an incoming REQUESTS_BLOCKED request. | |
void | imquic_set_incoming_subscribe_announces_cb (imquic_endpoint *endpoint, void(*incoming_subscribe_announces)(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, uint8_t *auth, size_t authlen)) |
Configure the callback function to be notified when there's an incoming SUBSCRIBE_ANNOUNCES request. | |
void | imquic_set_subscribe_announces_accepted_cb (imquic_endpoint *endpoint, void(*subscribe_announces_accepted)(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns)) |
Configure the callback function to be notified when an SUBSCRIBE_ANNOUNCES we previously sent was accepted. | |
void | imquic_set_subscribe_announces_error_cb (imquic_endpoint *endpoint, void(*subscribe_announces_error)(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_subannc_error_code error_code, const char *reason)) |
Configure the callback function to be notified when an SUBSCRIBE_ANNOUNCES we previously sent was rejected with an error. | |
void | imquic_set_incoming_unsubscribe_announces_cb (imquic_endpoint *endpoint, void(*incoming_unsubscribe_announces)(imquic_connection *conn, imquic_moq_namespace *tns)) |
Configure the callback function to be notified when there's an incoming UNSUBSCRIBE_ANNOUNCES request. | |
void | imquic_set_incoming_standalone_fetch_cb (imquic_endpoint *endpoint, void(*incoming_standalone_fetch)(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_name *tn, gboolean descending, imquic_moq_fetch_range *range, uint8_t *auth, size_t authlen)) |
Configure the callback function to be notified when there's an incoming standalone FETCH request. | |
void | imquic_set_incoming_joining_fetch_cb (imquic_endpoint *endpoint, void(*incoming_joining_fetch)(imquic_connection *conn, uint64_t request_id, uint64_t joining_request_id, gboolean absolute, uint64_t joining_start, gboolean descending, uint8_t *auth, size_t authlen)) |
Configure the callback function to be notified when there's an incoming joining FETCH request. | |
void | imquic_set_incoming_fetch_cancel_cb (imquic_endpoint *endpoint, void(*incoming_fetch_cancel)(imquic_connection *conn, uint64_t request_id)) |
Configure the callback function to be notified when there's an incoming FETCH_CANCEL request. | |
void | imquic_set_fetch_accepted_cb (imquic_endpoint *endpoint, void(*fetch_accepted)(imquic_connection *conn, uint64_t request_id, gboolean descending, imquic_moq_location *largest)) |
Configure the callback function to be notified when an FETCH we previously sent was accepted. | |
void | imquic_set_fetch_error_cb (imquic_endpoint *endpoint, void(*fetch_error)(imquic_connection *conn, uint64_t request_id, imquic_moq_fetch_error_code error_codes, const char *reason)) |
Configure the callback function to be notified when an FETCH we previously sent was rejected with an error. | |
void | imquic_set_track_status_request_cb (imquic_endpoint *endpoint, void(*incoming_track_status_request)(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_name *tn)) |
Configure the callback function to be notified when there's an incoming TRACK_STATUS_REQUEST request. | |
void | imquic_set_track_status_cb (imquic_endpoint *endpoint, void(*incoming_track_status)(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_name *tn, imquic_moq_track_status_code status_code, imquic_moq_location *largest)) |
Configure the callback function to be notified when there's an incoming TRACK_STATUS message. | |
void | imquic_set_incoming_object_cb (imquic_endpoint *endpoint, void(*incoming_object)(imquic_connection *conn, imquic_moq_object *object)) |
Configure the callback function to be notified when there's an incoming MoQ object, independently of how it was multiplexed on the wire. | |
void | imquic_set_incoming_goaway_cb (imquic_endpoint *endpoint, void(*incoming_goaway)(imquic_connection *conn, const char *uri)) |
Configure the callback function to be notified when there's an incoming GOAWAY request. | |
void | imquic_set_moq_connection_gone_cb (imquic_endpoint *endpoint, void(*moq_connection_gone)(imquic_connection *conn)) |
Configure the callback function to be notified when an existing MoQ connection handled by this endpoint has been closed/shut down. | |
const char * | imquic_moq_role_str (imquic_moq_role role) |
Helper function to serialize to string the name of a imquic_moq_role property. | |
const char * | imquic_moq_version_str (imquic_moq_version version) |
Helper function to serialize to string the name of a imquic_moq_version property. | |
const char * | imquic_moq_delivery_str (imquic_moq_delivery type) |
Helper function to serialize to string the name of a imquic_moq_delivery property. | |
const char * | imquic_moq_object_status_str (imquic_moq_object_status status) |
Helper function to serialize to string the name of a imquic_moq_object_status property. | |
imquic MoQ public interface
Public interface to the Media Over QUIC (MoQ) native support in the imquic library. This is where public functions are callbacks to interact with the MoQ features of the library are defined.
#define IMQUIC_MOQ_ALPN "moq-00" |
imquic_client * imquic_create_moq_client | ( | const char * | name, |
... ) |
Method to create a new MoQ client, using variable arguments to dictate what the client should do (e.g., address to connect to, ALPN, etc.). Variable arguments are in the form of a sequence of name-value started with a IMQUIC_CONFIG_INIT
and ended by a IMQUIC_CONFIG_DONE
, e.g.:
imquic_server *client = imquic_create_moq_client("moq-sub", IMQUIC_CONFIG_INIT, IMQUIC_CONFIG_TLS_CERT, cert_pem, IMQUIC_CONFIG_TLS_KEY, cert_key, IMQUIC_CONFIG_TLS_PASSWORD, cert_pwd, IMQUIC_CONFIG_REMOTE_HOST, "127.0.0.1", IMQUIC_CONFIG_REMOTE_PORT, 9000, IMQUIC_CONFIG_WEBTRANSPORT, TRUE, IMQUIC_CONFIG_HTTP3_PATH, "/moq", IMQUIC_CONFIG_DONE, NULL);
to create a QUIC client that will automatically negotiate MoQ over WebTransport. Notice that the MoQ role (publisher, subscriber or relay) is not set here: this is only specifying the QUIC role (client). For the MoQ role, see the imquic_set_new_moq_connection_cb callback and imquic_moq_set_role. Again, as with imquic_create_client this will only create the resource, but not actually start the connection: before doing that, you'll need to configure the callbacks for the events you're interested in (in this case, MoQ specific), and then use imquic_start_endpoint to start the QUIC client (which will attempt a connection).
[in] | name | The endpoint name (if NULL, a default value will be set) |
imquic_server * imquic_create_moq_server | ( | const char * | name, |
... ) |
Method to create a new MoQ server, using variable arguments to dictate what the server should do (e.g., port to bind to, ALPN, etc.). Variable arguments are in the form of a sequence of name-value started with a IMQUIC_CONFIG_INIT
and ended by a IMQUIC_CONFIG_DONE
, e.g.:
imquic_server *server = imquic_create_moq_server("moq-relay", IMQUIC_CONFIG_INIT, IMQUIC_CONFIG_TLS_CERT, cert_pem, IMQUIC_CONFIG_TLS_KEY, cert_key, IMQUIC_CONFIG_TLS_PASSWORD, cert_pwd, IMQUIC_CONFIG_LOCAL_PORT, 9000, IMQUIC_CONFIG_WEBTRANSPORT, TRUE, IMQUIC_CONFIG_DONE, NULL);
to create a QUIC server that will automatically negotiate MoQ over WebTransport. Notice that the MoQ role (publisher, subscriber or relay) is not set here: this is only specifying the QUIC role (server). For the MoQ role, see the imquic_set_new_moq_connection_cb callback and imquic_moq_set_role. Again, as with imquic_create_server this will only create the resource, but not actually start the server: before doing that, you'll need to configure the callbacks for the events you're interested in (in this case, MoQ specific), and then use imquic_start_endpoint to start the QUIC server (which will wait for incoming connections).
[in] | name | The endpoint name (if NULL, a default value will be set) |
const char * imquic_moq_delivery_str | ( | imquic_moq_delivery | type | ) |
Helper function to serialize to string the name of a imquic_moq_delivery property.
type | The imquic_moq_delivery property |
const char * imquic_moq_namespace_str | ( | imquic_moq_namespace * | tns, |
char * | buffer, | ||
size_t | blen, | ||
gboolean | tuple ) |
Helper to stringify a namespace (optionally the whole tuple)
tuple
is FALSE, the next
property of the namespace is ignored, otherwise a single string is built for the whole tuple, using a slash character as a separator. [in] | tns | The namespace (or the start of a namespace tuple) to stringify |
[out] | buffer | The buffer to write the string to |
[in] | blen | The size of the output buffer |
[in] | tuple | Whether the whole tuple should be stringified, or only the specific namespace |
const char * imquic_moq_object_status_str | ( | imquic_moq_object_status | status | ) |
Helper function to serialize to string the name of a imquic_moq_object_status property.
status | The imquic_moq_object_status property |
const char * imquic_moq_role_str | ( | imquic_moq_role | role | ) |
Helper function to serialize to string the name of a imquic_moq_role property.
role | The imquic_moq_role property |
const char * imquic_moq_track_str | ( | imquic_moq_name * | tn, |
char * | buffer, | ||
size_t | blen ) |
const char * imquic_moq_version_str | ( | imquic_moq_version | version | ) |
Helper function to serialize to string the name of a imquic_moq_version property.
version | The imquic_moq_version property |
void imquic_set_announce_accepted_cb | ( | imquic_endpoint * | endpoint, |
void(* | announce_accepted )(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns) ) |
Configure the callback function to be notified when an ANNOUNCE
we previously sent was accepted.
endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
announce_accepted | Pointer to the function that will fire when an ANNOUNCE is accepted |
void imquic_set_announce_error_cb | ( | imquic_endpoint * | endpoint, |
void(* | announce_error )(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_announce_error_code error_code, const char *reason) ) |
Configure the callback function to be notified when an ANNOUNCE
we previously sent was rejected with an error.
endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
announce_error | Pointer to the function that will fire when an ANNOUNCE is rejected |
void imquic_set_fetch_accepted_cb | ( | imquic_endpoint * | endpoint, |
void(* | fetch_accepted )(imquic_connection *conn, uint64_t request_id, gboolean descending, imquic_moq_location *largest) ) |
Configure the callback function to be notified when an FETCH
we previously sent was accepted.
endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
fetch_accepted | Pointer to the function that will fire when an FETCH is accepted |
void imquic_set_fetch_error_cb | ( | imquic_endpoint * | endpoint, |
void(* | fetch_error )(imquic_connection *conn, uint64_t request_id, imquic_moq_fetch_error_code error_code, const char *reason) ) |
Configure the callback function to be notified when an FETCH
we previously sent was rejected with an error.
endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
fetch_error | Pointer to the function that will fire when an FETCH is rejected |
void imquic_set_incoming_announce_cancel_cb | ( | imquic_endpoint * | endpoint, |
void(* | incoming_announce_cancel )(imquic_connection *conn, imquic_moq_namespace *tns, imquic_moq_announce_error_code error_code, const char *reason) ) |
Configure the callback function to be notified when there's an incoming ANNOUNCE_CANCEL
request.
endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
incoming_announce_cancel | Pointer to the function that will handle the incoming ANNOUNCE_CANCEL |
void imquic_set_incoming_announce_cb | ( | imquic_endpoint * | endpoint, |
void(* | incoming_announce )(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns) ) |
Configure the callback function to be notified when there's an incoming ANNOUNCE
request.
endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
incoming_announce | Pointer to the function that will handle the incoming ANNOUNCE |
void imquic_set_incoming_fetch_cancel_cb | ( | imquic_endpoint * | endpoint, |
void(* | incoming_fetch_cancel )(imquic_connection *conn, uint64_t request_id) ) |
Configure the callback function to be notified when there's an incoming FETCH_CANCEL
request.
endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
incoming_fetch_cancel | Pointer to the function that will handle the incoming FETCH_CANCEL |
void imquic_set_incoming_goaway_cb | ( | imquic_endpoint * | endpoint, |
void(* | incoming_goaway )(imquic_connection *conn, const char *uri) ) |
Configure the callback function to be notified when there's an incoming GOAWAY
request.
endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
incoming_goaway | Pointer to the function that will handle the incoming GOAWAY |
void imquic_set_incoming_joining_fetch_cb | ( | imquic_endpoint * | endpoint, |
void(* | incoming_joining_fetch )(imquic_connection *conn, uint64_t request_id, uint64_t joining_request_id, gboolean absolute, uint64_t joining_start, gboolean descending, uint8_t *auth, size_t authlen) ) |
Configure the callback function to be notified when there's an incoming joining FETCH
request.
endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
incoming_joining_fetch | Pointer to the function that will handle the incoming FETCH |
void imquic_set_incoming_object_cb | ( | imquic_endpoint * | endpoint, |
void(* | incoming_object )(imquic_connection *conn, imquic_moq_object *object) ) |
Configure the callback function to be notified when there's an incoming MoQ object, independently of how it was multiplexed on the wire.
endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
incoming_object | Pointer to the function that will handle the incoming MoQ object |
void imquic_set_incoming_standalone_fetch_cb | ( | imquic_endpoint * | endpoint, |
void(* | incoming_standalone_fetch )(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_name *tn, gboolean descending, imquic_moq_fetch_range *range, uint8_t *auth, size_t authlen) ) |
Configure the callback function to be notified when there's an incoming standalone FETCH
request.
endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
incoming_standalone_fetch | Pointer to the function that will handle the incoming FETCH |
void imquic_set_incoming_subscribe_announces_cb | ( | imquic_endpoint * | endpoint, |
void(* | incoming_subscribe_announces )(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, uint8_t *auth, size_t authlen) ) |
Configure the callback function to be notified when there's an incoming SUBSCRIBE_ANNOUNCES
request.
endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
incoming_subscribe_announces | Pointer to the function that will handle the incoming SUBSCRIBE_ANNOUNCES |
void imquic_set_incoming_subscribe_cb | ( | imquic_endpoint * | endpoint, |
void(* | incoming_subscribe )(imquic_connection *conn, uint64_t request_id, uint64_t track_alias, imquic_moq_namespace *tns, imquic_moq_name *tn, uint8_t priority, gboolean descending, gboolean forward, imquic_moq_filter_type filter_type, imquic_moq_location *start_location, imquic_moq_location *end_location, uint8_t *auth, size_t authlen) ) |
Configure the callback function to be notified when there's an incoming SUBSCRIBE
request.
endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
incoming_subscribe | Pointer to the function that will handle the incoming SUBSCRIBE |
void imquic_set_incoming_unannounce_cb | ( | imquic_endpoint * | endpoint, |
void(* | incoming_unannounce )(imquic_connection *conn, imquic_moq_namespace *tns) ) |
Configure the callback function to be notified when there's an incoming UNANNOUNCE
request.
endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
incoming_unannounce | Pointer to the function that will handle the incoming UNANNOUNCE |
void imquic_set_incoming_unsubscribe_announces_cb | ( | imquic_endpoint * | endpoint, |
void(* | incoming_unsubscribe_announces )(imquic_connection *conn, imquic_moq_namespace *tns) ) |
Configure the callback function to be notified when there's an incoming UNSUBSCRIBE_ANNOUNCES
request.
endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
incoming_unsubscribe_announces | Pointer to the function that will handle the incoming UNSUBSCRIBE_ANNOUNCES |
void imquic_set_incoming_unsubscribe_cb | ( | imquic_endpoint * | endpoint, |
void(* | incoming_unsubscribe )(imquic_connection *conn, uint64_t request_id) ) |
Configure the callback function to be notified when there's an incoming UNSUBSCRIBE
request.
endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
incoming_unsubscribe | Pointer to the function that will handle the incoming UNSUBSCRIBE |
void imquic_set_moq_connection_gone_cb | ( | imquic_endpoint * | endpoint, |
void(* | moq_connection_gone )(imquic_connection *conn) ) |
Configure the callback function to be notified when an existing MoQ connection handled by this endpoint has been closed/shut down.
endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
moq_connection_gone | Pointer to the function that will be invoked when a MoQ connection is gone |
void imquic_set_moq_ready_cb | ( | imquic_endpoint * | endpoint, |
void(* | moq_ready )(imquic_connection *conn) ) |
Configure the callback function to be notified when a MoQ connection has been successfully established. After this, the MoQ APIs can be used to start exchanging MoQ messages.
endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
moq_ready | Pointer to the function that will be invoked when MoQ is ready to be used |
void imquic_set_new_moq_connection_cb | ( | imquic_endpoint * | endpoint, |
void(* | new_moq_connection )(imquic_connection *conn, void *user_data) ) |
Configure the callback function to be notified about new MoQ connections on the configured endpoint. For a server, it will be triggered any time a client successfully connects to the server; for a client, it will be triggered when the client successfully connects to the server. Notice that this precedes the MoQ setup/handshakes, which means this is where you need to configure the MoQ role via imquic_moq_set_role. You'll need to wait until the callback set in imquic_set_moq_ready_cb is fired, before being able to use the MoQ API for publishing/subscribing.
endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
new_moq_connection | Pointer to the function that will be invoked on the new MoQ connection |
void imquic_set_requests_blocked_cb | ( | imquic_endpoint * | endpoint, |
void(* | requests_blocked )(imquic_connection *conn, uint64_t max_request_id) ) |
Configure the callback function to be notified when there's an incoming REQUESTS_BLOCKED
request.
endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
requests_blocked | Pointer to the function that will handle the incoming REQUESTS_BLOCKED |
void imquic_set_subscribe_accepted_cb | ( | imquic_endpoint * | endpoint, |
void(* | subscribe_accepted )(imquic_connection *conn, uint64_t request_id, uint64_t expires, gboolean descending, imquic_moq_location *largest) ) |
Configure the callback function to be notified when a SUBSCRIBE
we previously sent was accepted.
endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
subscribe_accepted | Pointer to the function that will fire when a SUBSCRIBE is accepted |
void imquic_set_subscribe_announces_accepted_cb | ( | imquic_endpoint * | endpoint, |
void(* | subscribe_announces_accepted )(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns) ) |
Configure the callback function to be notified when an SUBSCRIBE_ANNOUNCES
we previously sent was accepted.
endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
subscribe_announces_accepted | Pointer to the function that will fire when an SUBSCRIBE_ANNOUNCES is accepted |
void imquic_set_subscribe_announces_error_cb | ( | imquic_endpoint * | endpoint, |
void(* | subscribe_announces_error )(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_subannc_error_code error_code, const char *reason) ) |
Configure the callback function to be notified when an SUBSCRIBE_ANNOUNCES
we previously sent was rejected with an error.
endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
subscribe_announces_error | Pointer to the function that will fire when an SUBSCRIBE_ANNOUNCES is rejected |
void imquic_set_subscribe_done_cb | ( | imquic_endpoint * | endpoint, |
void(* | subscribe_done )(imquic_connection *conn, uint64_t request_id, imquic_moq_sub_done_code status_code, uint64_t streams_count, const char *reason) ) |
Configure the callback function to be notified when a SUBSCRIBE
we previously sent is now done.
endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
subscribe_done | Pointer to the function that will fire when a SUBSCRIBE is done |
void imquic_set_subscribe_error_cb | ( | imquic_endpoint * | endpoint, |
void(* | subscribe_error )(imquic_connection *conn, uint64_t request_id, imquic_moq_sub_error_code error_code, const char *reason, uint64_t track_alias) ) |
Configure the callback function to be notified when a SUBSCRIBE
we previously sent was rejected with an error.
endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
subscribe_error | Pointer to the function that will fire when a SUBSCRIBE is rejected |
void imquic_set_subscribe_updated_cb | ( | imquic_endpoint * | endpoint, |
void(* | subscribe_updated )(imquic_connection *conn, uint64_t request_id, imquic_moq_location *start_location, uint64_t end_group, uint8_t priority, gboolean forward) ) |
Configure the callback function to be notified when an update is received for a SUBSCRIBE
we previously sent.
endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
subscribe_updated | Pointer to the function that will fire when a SUBSCRIBE is done |
void imquic_set_track_status_cb | ( | imquic_endpoint * | endpoint, |
void(* | incoming_track_status )(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_name *tn, imquic_moq_track_status_code status_code, imquic_moq_location *largest) ) |
Configure the callback function to be notified when there's an incoming TRACK_STATUS
message.
endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
incoming_track_status | Pointer to the function that will handle the incoming TRACK_STATUS |
void imquic_set_track_status_request_cb | ( | imquic_endpoint * | endpoint, |
void(* | incoming_track_status_request )(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_name *tn) ) |
Configure the callback function to be notified when there's an incoming TRACK_STATUS_REQUEST
request.
endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
incoming_track_status_request | Pointer to the function that will handle the incoming TRACK_STATUS_REQUEST |