456 struct imquic_moq_object_extension_data {
894 void (* incoming_joining_fetch)(
imquic_connection *conn, uint64_t request_id, uint64_t joining_request_id,
895 gboolean absolute, uint64_t joining_start, gboolean descending, uint8_t *auth,
size_t authlen));
1164 gboolean absolute, uint64_t joining_start, gboolean descending, uint8_t *auth,
size_t authlen);
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.
Definition imquic-moq.c:327
int imquic_moq_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)
Function to send a SUBSCRIBE request.
Definition moq.c:5890
const char * imquic_moq_track_str(imquic_moq_name *tn, char *buffer, size_t blen)
Definition imquic-moq.c:242
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.
Definition imquic-moq.c:627
int imquic_moq_announce(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns)
Function to send an ANNOUNCE request.
Definition moq.c:5771
struct imquic_moq_fetch_range imquic_moq_fetch_range
MoQ FETCH range (from where to where)
imquic_moq_object_status
MoQ Object status.
Definition imquic/moq.h:428
@ IMQUIC_MOQ_END_OF_TRACK
End of track.
Definition imquic/moq.h:438
@ IMQUIC_MOQ_END_OF_GROUP
End of group.
Definition imquic/moq.h:434
@ IMQUIC_MOQ_OBJECT_DOESNT_EXIST
Object doesn't exist.
Definition imquic/moq.h:432
@ IMQUIC_MOQ_END_OF_TRACK_AND_GROUP
End of track and group.
Definition imquic/moq.h:436
@ IMQUIC_MOQ_NORMAL_OBJECT
Normal object.
Definition imquic/moq.h:430
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.
Definition imquic-moq.c:471
struct imquic_moq_location imquic_moq_location
MoQ Group/Object couple (for ranges)
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.
Definition imquic-moq.c:405
int imquic_moq_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)
Function to send a TRACK_STATUS request.
Definition moq.c:6452
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,...
Definition imquic-moq.c:537
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 ...
Definition imquic-moq.c:361
const char * imquic_moq_sub_done_code_str(imquic_moq_sub_done_code code)
Helper function to serialize to string the name of a imquic_moq_sub_done_code value.
Definition moq.c:369
GList * imquic_moq_parse_object_extensions(uint8_t *extensions, size_t elen)
Helper mode to parse an extensions buffer to a GList of imquic_moq_object_extension.
Definition moq.c:5630
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.
Definition imquic-moq.c:416
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 acc...
Definition imquic-moq.c:427
struct imquic_moq_auth_token imquic_moq_auth_token
MoQ Authorization Token.
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.
Definition imquic-moq.c:338
imquic_moq_filter_type
MoQ filter type, for subscriptions.
Definition imquic/moq.h:386
@ IMQUIC_MOQ_FILTER_NEXT_GROUP_START
Definition imquic/moq.h:387
@ IMQUIC_MOQ_FILTER_ABSOLUTE_RANGE
Definition imquic/moq.h:390
@ IMQUIC_MOQ_FILTER_ABSOLUTE_START
Definition imquic/moq.h:389
@ IMQUIC_MOQ_FILTER_LATEST_OBJECT
Definition imquic/moq.h:388
int imquic_moq_accept_subscribe(imquic_connection *conn, uint64_t request_id, uint64_t expires, gboolean descending, imquic_moq_location *largest)
Function to accept an incoming SUBSCRIBE request.
Definition moq.c:5958
int imquic_moq_set_version(imquic_connection *conn, imquic_moq_version version)
Method to set the MoQ version on a connection. Must be done as soon as the connection is established,...
Definition moq.c:5540
const char * imquic_moq_role_str(imquic_moq_role role)
Helper function to serialize to string the name of a imquic_moq_role property.
Definition imquic-moq.c:571
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.
Definition imquic-moq.c:350
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 establishe...
Definition imquic-moq.c:272
size_t imquic_moq_build_object_extensions(GList *extensions, uint8_t *bytes, size_t blen)
Helper mode to craft an extensions buffer out of a GList of imquic_moq_object_extension.
Definition moq.c:5683
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.
Definition imquic-moq.c:548
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...
Definition imquic-moq.c:449
struct imquic_moq_object imquic_moq_object
MoQ Object.
const char * imquic_moq_delivery_str(imquic_moq_delivery type)
Helper function to serialize to string the name of a imquic_moq_delivery property.
Definition imquic-moq.c:611
imquic_moq_announce_error_code
Announce error codes.
Definition imquic/moq.h:591
@ IMQUIC_MOQ_ANNCERR_UNINTERESTED
Definition imquic/moq.h:596
@ IMQUIC_MOQ_ANNCERR_UNKNOWN_AUTH_TOKEN_ALIAS
Definition imquic/moq.h:598
@ IMQUIC_MOQ_ANNCERR_TIMEOUT
Definition imquic/moq.h:594
@ IMQUIC_MOQ_ANNCERR_INTERNAL_ERROR
Definition imquic/moq.h:592
@ IMQUIC_MOQ_ANNCERR_EXPIRED_AUTH_TOKEN
Definition imquic/moq.h:599
@ IMQUIC_MOQ_ANNCERR_UNAUTHORIZED
Definition imquic/moq.h:593
@ IMQUIC_MOQ_ANNCERR_MALFORMED_AUTH_TOKEN
Definition imquic/moq.h:597
@ IMQUIC_MOQ_ANNCERR_NOT_SUPPORTED
Definition imquic/moq.h:595
uint64_t imquic_moq_get_next_request_id(imquic_connection *conn)
Helper function to get the next Request ID we can use.
Definition moq.c:5617
const char * imquic_moq_auth_token_alias_type_str(imquic_moq_auth_token_alias_type type)
Helper function to serialize to string the name of a imquic_moq_auth_token_alias_type property.
Definition moq.c:598
int imquic_moq_track_status_request(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_name *tn)
Function to send a TRACK_STATUS_REQUEST request.
Definition moq.c:6427
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 previous...
Definition imquic-moq.c:372
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.
Definition imquic-moq.c:294
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....
Definition imquic-moq.c:116
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 ...
Definition imquic-moq.c:316
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.
Definition imquic-moq.c:383
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 rej...
Definition imquic-moq.c:438
int imquic_moq_reject_subscribe_announces(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_subannc_error_code error_code, const char *reason)
Function to reject an incoming SUBSCRIBE_ANNOUNCES request.
Definition moq.c:6189
int imquic_moq_cancel_fetch(imquic_connection *conn, uint64_t request_id)
Function to send a FETCH_CANCEL request.
Definition moq.c:6402
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....
Definition imquic-moq.c:20
imquic_moq_role imquic_moq_get_role(imquic_connection *conn)
Helper function to get the MoQ role associated with a connection.
Definition moq.c:5508
const char * imquic_moq_fetch_error_code_str(imquic_moq_fetch_error_code code)
Helper function to serialize to string the name of a imquic_moq_fetch_error_code value.
Definition moq.c:340
struct imquic_moq_namespace imquic_moq_namespace
MoQ Track Namespace.
int imquic_moq_set_role(imquic_connection *conn, imquic_moq_role role)
Method to set the MoQ role on a connection. Must be done as soon as the connection is established,...
Definition moq.c:5474
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)
Definition imquic-moq.c:212
int imquic_moq_accept_announce(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns)
Function to accept an incoming ANNOUNCE request.
Definition moq.c:5812
const char * imquic_moq_track_status_code_str(imquic_moq_track_status_code code)
Helper function to serialize to string the name of a imquic_moq_track_status_code value.
Definition moq.c:390
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.
Definition imquic-moq.c:305
int imquic_moq_unsubscribe(imquic_connection *conn, uint64_t request_id)
Function to send a UNSUBSCRIBE request.
Definition moq.c:6047
imquic_moq_version imquic_moq_get_version(imquic_connection *conn)
Helper function to get the MoQ version associated with a connection.
Definition moq.c:5574
int imquic_moq_parse_auth_token(uint8_t *bytes, size_t blen, imquic_moq_auth_token *token)
Helper mode to parse an auth token buffer to a imquic_moq_auth_token instance.
Definition moq.c:5706
int imquic_moq_send_object(imquic_connection *conn, imquic_moq_object *object)
Function to send a MoQ object.
Definition moq.c:6526
struct imquic_moq_object_extension imquic_moq_object_extension
MoQ Object Extension.
imquic_moq_subannc_error_code
Subscribe announces error codes.
Definition imquic/moq.h:625
@ IMQUIC_MOQ_SUBANNCERR_UNKNOWN_AUTH_TOKEN_ALIAS
Definition imquic/moq.h:632
@ IMQUIC_MOQ_SUBANNCERR_INTERNAL_ERROR
Definition imquic/moq.h:626
@ IMQUIC_MOQ_SUBANNCERR_TIMEOUT
Definition imquic/moq.h:628
@ IMQUIC_MOQ_SUBANNCERR_UNAUTHORIZED
Definition imquic/moq.h:627
@ IMQUIC_MOQ_SUBANNCERR_NOT_SUPPORTED
Definition imquic/moq.h:629
@ IMQUIC_MOQ_SUBANNCERR_EXPIRED_AUTH_TOKEN
Definition imquic/moq.h:633
@ IMQUIC_MOQ_SUBANNCERR_NAMESPACE_PREFIX_UNKNOWN
Definition imquic/moq.h:630
@ IMQUIC_MOQ_SUBANNCERR_MALFORMED_AUTH_TOKEN
Definition imquic/moq.h:631
const char * imquic_moq_announce_error_code_str(imquic_moq_announce_error_code code)
Helper function to serialize to string the name of a imquic_moq_announce_error_code value.
Definition moq.c:267
imquic_moq_version
Versions that can be negotiated.
Definition imquic/moq.h:973
@ IMQUIC_MOQ_VERSION_ANY_LEGACY
Definition imquic/moq.h:995
@ IMQUIC_MOQ_VERSION_06
Definition imquic/moq.h:978
@ IMQUIC_MOQ_VERSION_MIN
Definition imquic/moq.h:977
@ IMQUIC_MOQ_VERSION_MAX
Definition imquic/moq.h:989
@ IMQUIC_MOQ_VERSION_10
Definition imquic/moq.h:986
@ IMQUIC_MOQ_VERSION_09
Definition imquic/moq.h:984
@ IMQUIC_MOQ_VERSION_08
Definition imquic/moq.h:982
@ IMQUIC_MOQ_VERSION_11
Definition imquic/moq.h:988
@ IMQUIC_MOQ_VERSION_07
Definition imquic/moq.h:980
@ IMQUIC_MOQ_VERSION_BASE
Definition imquic/moq.h:975
@ IMQUIC_MOQ_VERSION_ANY
Definition imquic/moq.h:992
int imquic_moq_subscribe_done(imquic_connection *conn, uint64_t request_id, imquic_moq_sub_done_code status_code, const char *reason)
Function to send a SUBSCRIBE_DONE request.
Definition moq.c:6072
const char * imquic_moq_version_str(imquic_moq_version version)
Helper function to serialize to string the name of a imquic_moq_version property.
Definition imquic-moq.c:587
imquic_moq_fetch_error_code
Fetch error codes.
Definition imquic/moq.h:641
@ IMQUIC_MOQ_FETCHERR_TRACK_DOES_NOT_EXIST
Definition imquic/moq.h:646
@ IMQUIC_MOQ_FETCHERR_MALFORMED_AUTH_TOKEN
Definition imquic/moq.h:650
@ IMQUIC_MOQ_FETCHERR_INVALID_JOINING_SUBSCRIBE_ID
Definition imquic/moq.h:649
@ IMQUIC_MOQ_FETCHERR_NO_OBJECTS
Definition imquic/moq.h:648
@ IMQUIC_MOQ_FETCHERR_NOT_SUPPORTED
Definition imquic/moq.h:645
@ IMQUIC_MOQ_FETCHERR_UNAUTHORIZED
Definition imquic/moq.h:643
@ IMQUIC_MOQ_FETCHERR_INVALID_RANGE
Definition imquic/moq.h:647
@ IMQUIC_MOQ_FETCHERR_INTERNAL_ERROR
Definition imquic/moq.h:642
@ IMQUIC_MOQ_FETCHERR_EXPIRED_AUTH_TOKEN
Definition imquic/moq.h:652
@ IMQUIC_MOQ_FETCHERR_TIMEOUT
Definition imquic/moq.h:644
@ IMQUIC_MOQ_FETCHERR_UNKNOWN_AUTH_TOKEN_ALIAS
Definition imquic/moq.h:651
struct imquic_moq_name imquic_moq_name
MoQ Track Name.
imquic_moq_auth_token_alias_type
MoQ Authorization Token Alias Type.
Definition imquic/moq.h:512
@ IMQUIC_MOQ_AUTH_TOKEN_DELETE
DELETE.
Definition imquic/moq.h:514
@ IMQUIC_MOQ_AUTH_TOKEN_USE_ALIAS
USE_ALIAS.
Definition imquic/moq.h:518
@ IMQUIC_MOQ_AUTH_TOKEN_USE_VALUE
USE_VALUE.
Definition imquic/moq.h:520
@ IMQUIC_MOQ_AUTH_TOKEN_REGISTER
REGISTER.
Definition imquic/moq.h:516
int imquic_moq_update_subscribe(imquic_connection *conn, uint64_t request_id, imquic_moq_location *start_location, uint64_t end_group, uint8_t priority, gboolean forward)
Function to send a SUBSCRIBE_UPDATE request.
Definition moq.c:6013
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.
Definition imquic-moq.c:283
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.
Definition imquic-moq.c:515
int imquic_moq_set_max_request_id(imquic_connection *conn, uint64_t max_request_id)
Helper function to set the Maximum Request ID a subscriber can send.
Definition moq.c:5590
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 endpoi...
Definition imquic-moq.c:559
imquic_moq_error_code
Generic error codes.
Definition imquic/moq.h:565
@ IMQUIC_MOQ_DUPLICATE_AUTH_TOKEN_ALIAS
Definition imquic/moq.h:580
@ IMQUIC_MOQ_CONTROL_MESSAGE_TIMEOUT
Definition imquic/moq.h:577
@ IMQUIC_MOQ_INTERNAL_ERROR
Definition imquic/moq.h:567
@ IMQUIC_MOQ_KEYVALUE_FORMATTING_ERROR
Definition imquic/moq.h:572
@ IMQUIC_MOQ_VERSION_NEGOTIATION_FAILED
Definition imquic/moq.h:581
@ IMQUIC_MOQ_INVALID_REQUEST_ID
Definition imquic/moq.h:570
@ IMQUIC_MOQ_INVALID_PATH
Definition imquic/moq.h:574
@ IMQUIC_MOQ_DATA_STREAM_TIMEOUT
Definition imquic/moq.h:578
@ IMQUIC_MOQ_AUTH_TOKEN_CACHE_OVERFLOW
Definition imquic/moq.h:579
@ IMQUIC_MOQ_PROTOCOL_VIOLATION
Definition imquic/moq.h:569
@ IMQUIC_MOQ_DUPLICATE_TRACK_ALIAS
Definition imquic/moq.h:571
@ IMQUIC_MOQ_UNKNOWN_ERROR
Definition imquic/moq.h:583
@ IMQUIC_MOQ_UNAUTHORIZED
Definition imquic/moq.h:568
@ IMQUIC_MOQ_MALFORMED_PATH
Definition imquic/moq.h:575
@ IMQUIC_MOQ_NO_ERROR
Definition imquic/moq.h:566
@ IMQUIC_MOQ_GOAWAY_TIMEOUT
Definition imquic/moq.h:576
@ IMQUIC_MOQ_TOO_MANY_REQUESTS
Definition imquic/moq.h:573
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.
Definition imquic-moq.c:460
const char * imquic_moq_sub_error_code_str(imquic_moq_sub_error_code code)
Helper function to serialize to string the name of a imquic_moq_sub_error_code value.
Definition moq.c:290
imquic_moq_track_status_code
Track status codes.
Definition imquic/moq.h:675
@ IMQUIC_MOQ_STATUS_DOES_NOT_EXIST
Definition imquic/moq.h:677
@ IMQUIC_MOQ_STATUS_NOT_YET_BEGUN
Definition imquic/moq.h:678
@ IMQUIC_MOQ_STATUS_PROGRESS
Definition imquic/moq.h:676
@ IMQUIC_MOQ_STATUS_CANNOT_OBTAIN
Definition imquic/moq.h:680
@ IMQUIC_MOQ_STATUS_FINISHED
Definition imquic/moq.h:679
imquic_moq_sub_error_code
Subscribe error codes.
Definition imquic/moq.h:607
@ IMQUIC_MOQ_SUBERR_TRACK_DOES_NOT_EXIST
Definition imquic/moq.h:612
@ IMQUIC_MOQ_SUBERR_NOT_SUPPORTED
Definition imquic/moq.h:611
@ IMQUIC_MOQ_SUBERR_MALFORMED_AUTH_TOKEN
Definition imquic/moq.h:615
@ IMQUIC_MOQ_SUBERR_UNAUTHORIZED
Definition imquic/moq.h:609
@ IMQUIC_MOQ_SUBERR_INVALID_RANGE
Definition imquic/moq.h:613
@ IMQUIC_MOQ_SUBERR_TIMEOUT
Definition imquic/moq.h:610
@ IMQUIC_MOQ_SUBERR_INTERNAL_ERROR
Definition imquic/moq.h:608
@ IMQUIC_MOQ_SUBERR_RETRY_TRACK_ALIAS
Definition imquic/moq.h:614
@ IMQUIC_MOQ_SUBERR_UNKNOWN_AUTH_TOKEN_ALIAS
Definition imquic/moq.h:616
@ IMQUIC_MOQ_SUBERR_EXPIRED_AUTH_TOKEN
Definition imquic/moq.h:617
const char * imquic_moq_filter_type_str(imquic_moq_filter_type type)
Helper function to serialize to string the name of a imquic_moq_filter_type value.
Definition moq.c:557
int imquic_moq_reject_announce(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_announce_error_code error_code, const char *reason)
Function to reject an incoming ANNOUNCE request.
Definition moq.c:5838
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 ...
Definition imquic-moq.c:504
int imquic_moq_reject_fetch(imquic_connection *conn, uint64_t request_id, imquic_moq_fetch_error_code error_code, const char *reason)
Function to reject an incoming FETCH request.
Definition moq.c:6377
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.
Definition imquic-moq.c:493
imquic_moq_sub_done_code
Subscribe done codes.
Definition imquic/moq.h:660
@ IMQUIC_MOQ_SUBDONE_INTERNAL_ERROR
Definition imquic/moq.h:661
@ IMQUIC_MOQ_SUBDONE_GOING_AWAY
Definition imquic/moq.h:665
@ IMQUIC_MOQ_SUBDONE_SUBSCRIPTION_ENDED
Definition imquic/moq.h:664
@ IMQUIC_MOQ_SUBDONE_TRACK_ENDED
Definition imquic/moq.h:663
@ IMQUIC_MOQ_SUBDONE_EXPIRED
Definition imquic/moq.h:666
@ IMQUIC_MOQ_SUBDONE_UNAUTHORIZED
Definition imquic/moq.h:662
@ IMQUIC_MOQ_SUBDONE_TOO_FAR_BEHIND
Definition imquic/moq.h:667
int imquic_moq_unsubscribe_announces(imquic_connection *conn, imquic_moq_namespace *tns)
Function to send a UNSUBSCRIBE_ANNOUNCES request.
Definition moq.c:6216
size_t imquic_moq_build_auth_token(imquic_moq_auth_token *token, uint8_t *bytes, size_t blen)
Helper mode to craft an auth token buffer out of a imquic_moq_auth_token instance.
Definition moq.c:5740
int imquic_moq_goaway(imquic_connection *conn, const char *uri)
Function to send a GOAWAY request.
Definition moq.c:6502
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.
Definition imquic-moq.c:526
int imquic_moq_reject_subscribe(imquic_connection *conn, uint64_t request_id, imquic_moq_sub_error_code error_code, const char *reason, uint64_t track_alias)
Function to reject an incoming SUBSCRIBE request.
Definition moq.c:5988
const char * imquic_moq_subannc_error_code_str(imquic_moq_subannc_error_code code)
Helper function to serialize to string the name of a imquic_moq_subannc_error_code value.
Definition moq.c:317
imquic_moq_role
Roles that can be specified once connected.
Definition imquic/moq.h:948
@ IMQUIC_MOQ_PUBSUB
Definition imquic/moq.h:952
@ IMQUIC_MOQ_PUBLISHER
Definition imquic/moq.h:950
@ IMQUIC_MOQ_SUBSCRIBER
Definition imquic/moq.h:951
@ IMQUIC_MOQ_ENDPOINT
Definition imquic/moq.h:949
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.
Definition imquic-moq.c:482
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....
Definition imquic-moq.c:261
int imquic_moq_accept_fetch(imquic_connection *conn, uint64_t request_id, gboolean descending, imquic_moq_location *largest)
Function to accept an incoming FETCH request.
Definition moq.c:6345
const char * imquic_moq_error_code_str(imquic_moq_error_code code)
Helper function to serialize to string the name of a imquic_moq_error_code value.
Definition moq.c:226
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.
Definition imquic-moq.c:394
int imquic_moq_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)
Function to send a standalone FETCH request.
Definition moq.c:6241
int imquic_moq_accept_subscribe_announces(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns)
Function to accept an incoming SUBSCRIBE_ANNOUNCES request.
Definition moq.c:6163
int imquic_moq_unannounce(imquic_connection *conn, imquic_moq_namespace *tns)
Function to send an UNANNOUNCE request.
Definition moq.c:5865
int imquic_moq_requests_blocked(imquic_connection *conn)
Function to send a REQUESTS_BLOCKED request.
Definition moq.c:6478
int imquic_moq_subscribe_announces(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, uint8_t *auth, size_t authlen)
Function to send a SUBSCRIBE_ANNOUNCES request.
Definition moq.c:6109
imquic_moq_delivery
Ways of sending objects.
Definition imquic/moq.h:412
@ IMQUIC_MOQ_USE_TRACK
All objects of the same track on the same STREAM (only v06)
Definition imquic/moq.h:418
@ IMQUIC_MOQ_USE_FETCH
All fetched objects on the same STREAM (starting from v07)
Definition imquic/moq.h:420
@ IMQUIC_MOQ_USE_DATAGRAM
A single object on a DATAGRAM.
Definition imquic/moq.h:414
@ IMQUIC_MOQ_USE_SUBGROUP
All objects of the same subgroup on the same STREAM.
Definition imquic/moq.h:416
int imquic_moq_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)
Function to send a joining FETCH request.
Definition moq.c:6292
imquic public interface (headers)
QUIC Connection.
Definition connection.h:114
Token value, if any.
Definition imquic/moq.h:540
uint8_t * buffer
Definition imquic/moq.h:542
uint64_t length
Definition imquic/moq.h:541
MoQ Authorization Token.
Definition imquic/moq.h:528
imquic_moq_auth_token_alias_type alias_type
Alias type.
Definition imquic/moq.h:530
uint64_t token_alias
Token alias, if any.
Definition imquic/moq.h:534
gboolean token_type_set
Whether there is a token type.
Definition imquic/moq.h:536
uint64_t token_type
Token type, if any.
Definition imquic/moq.h:538
struct imquic_moq_auth_token::imquic_moq_auth_token_value token_value
gboolean token_alias_set
Whether there is a token alias.
Definition imquic/moq.h:532
MoQ FETCH range (from where to where)
Definition imquic/moq.h:404
imquic_moq_location end
End group/object.
Definition imquic/moq.h:408
imquic_moq_location start
Start group/object.
Definition imquic/moq.h:406
MoQ Group/Object couple (for ranges)
Definition imquic/moq.h:398
uint64_t object
Definition imquic/moq.h:400
uint64_t group
Definition imquic/moq.h:399
MoQ Track Name.
Definition imquic/moq.h:372
size_t length
Size of the name data.
Definition imquic/moq.h:376
uint8_t * buffer
Name data (typically a non-null terminated string)
Definition imquic/moq.h:374
MoQ Track Namespace.
Definition imquic/moq.h:352
size_t length
Size of the namespace data.
Definition imquic/moq.h:356
uint8_t * buffer
Namespace data (typically a non-null terminated string)
Definition imquic/moq.h:354
struct imquic_moq_namespace * next
Next namespace in this list, if this is a tuple.
Definition imquic/moq.h:358
MoQ Object Extension.
Definition imquic/moq.h:449
uint64_t number
Definition imquic/moq.h:455
struct imquic_moq_object_extension::@1::imquic_moq_object_extension_data data
uint64_t length
Definition imquic/moq.h:457
uint32_t id
MoQ extension ID.
Definition imquic/moq.h:451
uint8_t * buffer
Definition imquic/moq.h:458
union imquic_moq_object_extension::@1 value
Extension value, which could be either a number (even extension ID) or an octet of data with length (...
MoQ Object.
Definition imquic/moq.h:479
size_t extensions_count
Count of the MoQ object extensions (only v08, deprecated in v09)
Definition imquic/moq.h:503
imquic_moq_delivery delivery
How to send this object (or how it was received)
Definition imquic/moq.h:505
size_t payload_len
Size of the MoQ object payload.
Definition imquic/moq.h:497
uint64_t subgroup_id
MoQ subgroup_id.
Definition imquic/moq.h:487
gboolean end_of_stream
Whether this signals the end of the stream.
Definition imquic/moq.h:507
uint64_t group_id
MoQ group_id.
Definition imquic/moq.h:485
uint64_t object_id
MoQ object_id.
Definition imquic/moq.h:489
size_t extensions_len
Size of the MoQ object extensions (only since v08)
Definition imquic/moq.h:501
uint8_t * payload
MoQ object payload.
Definition imquic/moq.h:495
uint8_t priority
MoQ publisher priority.
Definition imquic/moq.h:493
uint64_t track_alias
MoQ track_alias.
Definition imquic/moq.h:483
imquic_moq_object_status object_status
MoQ object status.
Definition imquic/moq.h:491
uint64_t request_id
MoQ request_id.
Definition imquic/moq.h:481
uint8_t * extensions
MoQ object extensions, if any (only since v08)
Definition imquic/moq.h:499
Abstraction of a network endpoint (client or server)
Definition network.h:53