455 struct imquic_moq_object_extension_data {
803 uint64_t (* incoming_moq_connection)(
imquic_connection *conn, uint8_t *auth,
size_t authlen));
847 gboolean descending,
imquic_moq_location *largest, gboolean forward, uint8_t *auth,
size_t authlen));
853 void (* publish_accepted)(
imquic_connection *conn, uint64_t request_id, gboolean forward, uint8_t priority, gboolean descending,
888 void (* subscribe_updated)(
imquic_connection *conn, uint64_t request_id, uint64_t sub_request_id,
imquic_moq_location *start_location, uint64_t end_group, uint8_t priority, gboolean forward));
943 void (* incoming_joining_fetch)(
imquic_connection *conn, uint64_t request_id, uint64_t joining_request_id,
944 gboolean absolute, uint64_t joining_start, gboolean descending, uint8_t *auth,
size_t authlen));
1117 uint8_t *auth,
size_t authlen);
1150 gboolean descending,
imquic_moq_location *largest, gboolean forward, uint8_t *auth,
size_t authlen);
1281 gboolean absolute, uint64_t joining_start, gboolean descending, uint8_t *auth,
size_t authlen);
imquic public interface (headers)
struct imquic_network_endpoint imquic_client
Definition imquic.h:154
struct imquic_network_endpoint imquic_endpoint
Definition imquic.h:155
struct imquic_network_endpoint imquic_server
Definition imquic.h:153
struct imquic_connection imquic_connection
Definition imquic.h:152
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.
const char * imquic_moq_track_str(imquic_moq_name *tn, char *buffer, size_t blen)
Definition imquic-moq.c:242
int imquic_moq_reject_publish(imquic_connection *conn, uint64_t request_id, imquic_moq_pub_error_code error_code, const char *reason)
Function to reject an incoming PUBLISH request.
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:695
int imquic_moq_publish(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_name *tn, uint64_t track_alias, gboolean descending, imquic_moq_location *largest, gboolean forward, uint8_t *auth, size_t authlen)
Function to send a PUBLISH request.
void imquic_set_incoming_publish_namespace_cb(imquic_endpoint *endpoint, void(*incoming_publish_namespace)(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 PUBLISH_NAMESPACE request.
Definition imquic-moq.c:298
void imquic_set_subscribe_accepted_cb(imquic_endpoint *endpoint, void(*subscribe_accepted)(imquic_connection *conn, uint64_t request_id, uint64_t track_alias, 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:400
int imquic_moq_subscribe_namespace(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, uint8_t *auth, size_t authlen)
Function to send a SUBSCRIBE_NAMESPACE request.
void imquic_set_incoming_moq_connection_cb(imquic_endpoint *endpoint, uint64_t(*incoming_moq_connection)(imquic_connection *conn, uint8_t *auth, size_t authlen))
Configure the callback function to be notified, as a server, when a CLIENT_SETUP is received....
Definition imquic-moq.c:272
void imquic_set_publish_namespace_done_cb(imquic_endpoint *endpoint, void(*publish_namespace_done)(imquic_connection *conn, imquic_moq_namespace *tns))
Configure the callback function to be notified when there's an incoming PUBLISH_NAMESPACE_DONE reques...
Definition imquic-moq.c:342
int imquic_moq_publish_namespace_done(imquic_connection *conn, imquic_moq_namespace *tns)
Function to send a PUBLISH_NAMESPACE_DONE request.
imquic_moq_object_status
MoQ Object status.
Definition moq.h:427
@ IMQUIC_MOQ_END_OF_TRACK
End of track.
Definition moq.h:437
@ IMQUIC_MOQ_END_OF_GROUP
End of group.
Definition moq.h:433
@ IMQUIC_MOQ_OBJECT_DOESNT_EXIST
Object doesn't exist.
Definition moq.h:431
@ IMQUIC_MOQ_END_OF_TRACK_AND_GROUP
End of track and group.
Definition moq.h:435
@ IMQUIC_MOQ_NORMAL_OBJECT
Normal object.
Definition moq.h:429
int imquic_moq_publish_namespace(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, uint8_t *auth, size_t authlen)
Function to send a PUBLISH_NAMESPACE request.
int imquic_moq_accept_subscribe_namespace(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns)
Function to accept an incoming SUBSCRIBE_NAMESPACE 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.
Definition imquic-moq.c:521
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:455
void imquic_set_track_status_accepted_cb(imquic_endpoint *endpoint, void(*track_status_accepted)(imquic_connection *conn, uint64_t request_id, uint64_t track_alias, uint64_t expires, gboolean descending, imquic_moq_location *largest))
Configure the callback function to be notified when a TRACK_STATUS we previously sent was accepted.
Definition imquic-moq.c:577
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:599
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:411
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.
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.
imquic_moq_pub_error_code
Publish error codes.
Definition moq.h:627
@ IMQUIC_MOQ_PUBERR_UNINTERESTED
Definition moq.h:632
@ IMQUIC_MOQ_PUBERR_TIMEOUT
Definition moq.h:630
@ IMQUIC_MOQ_PUBERR_INTERNAL_ERROR
Definition moq.h:628
@ IMQUIC_MOQ_PUBERR_NOT_SUPPORTED
Definition moq.h:631
@ IMQUIC_MOQ_PUBERR_UNAUTHORIZED
Definition moq.h:629
struct imquic_moq_auth_token imquic_moq_auth_token
MoQ Authorization Token.
void imquic_set_publish_done_cb(imquic_endpoint *endpoint, void(*publish_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 PUBLISH we received or a SUBSCRIBE we sent is n...
Definition imquic-moq.c:433
int imquic_moq_accept_publish_namespace(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns)
Function to accept an incoming PUBLISH_NAMESPACE 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.
Definition imquic-moq.c:388
int imquic_moq_track_status(imquic_connection *conn, uint64_t request_id, 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 TRACK_STATUS request.
void imquic_set_subscribe_namespace_error_cb(imquic_endpoint *endpoint, void(*subscribe_namespace_error)(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_subns_error_code error_code, const char *reason))
Configure the callback function to be notified when an SUBSCRIBE_NAMESPACE we previously sent was rej...
Definition imquic-moq.c:488
int imquic_moq_unsubscribe_namespace(imquic_connection *conn, imquic_moq_namespace *tns)
Function to send a UNSUBSCRIBE_NAMESPACE request.
void imquic_set_incoming_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, 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 TRACK_STATUS request.
Definition imquic-moq.c:565
imquic_moq_filter_type
MoQ filter type, for subscriptions.
Definition moq.h:385
@ IMQUIC_MOQ_FILTER_NEXT_GROUP_START
Definition moq.h:386
@ IMQUIC_MOQ_FILTER_ABSOLUTE_RANGE
Definition moq.h:389
@ IMQUIC_MOQ_FILTER_LARGEST_OBJECT
Definition moq.h:387
@ IMQUIC_MOQ_FILTER_ABSOLUTE_START
Definition moq.h:388
int imquic_moq_accept_subscribe(imquic_connection *conn, uint64_t request_id, uint64_t track_alias, uint64_t expires, gboolean descending, imquic_moq_location *largest)
Function to accept an incoming SUBSCRIBE request.
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,...
void imquic_set_incoming_publish_cb(imquic_endpoint *endpoint, void(*incoming_publish)(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_name *tn, uint64_t track_alias, gboolean descending, imquic_moq_location *largest, gboolean forward, uint8_t *auth, size_t authlen))
Configure the callback function to be notified when there's an incoming PUBLISH request.
Definition imquic-moq.c:353
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:633
void imquic_set_incoming_publish_namespace_cancel_cb(imquic_endpoint *endpoint, void(*incoming_publish_namespace_cancel)(imquic_connection *conn, imquic_moq_namespace *tns, imquic_moq_publish_namespace_error_code error_code, const char *reason))
Configure the callback function to be notified when there's an incoming PUBLISH_NAMESPACE_CANCEL requ...
Definition imquic-moq.c:309
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_location_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:510
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:287
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.
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:610
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:679
uint64_t imquic_moq_get_next_request_id(imquic_connection *conn)
Helper function to get the next Request ID we can use.
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.
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
int imquic_moq_cancel_fetch(imquic_connection *conn, uint64_t request_id)
Function to send a FETCH_CANCEL request.
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.
const char * imquic_moq_publish_namespace_error_code_str(imquic_moq_publish_namespace_error_code code)
Helper function to serialize to string the name of a imquic_moq_publish_namespace_error_code value.
int imquic_moq_reject_subscribe_namespace(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_subns_error_code error_code, const char *reason)
Function to reject an incoming SUBSCRIBE_NAMESPACE request.
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.
const char * imquic_moq_subns_error_code_str(imquic_moq_subns_error_code code)
Helper function to serialize to string the name of a imquic_moq_subns_error_code value.
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,...
const char * imquic_moq_pub_error_code_str(imquic_moq_pub_error_code code)
Helper function to serialize to string the name of a imquic_moq_pub_error_code value.
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_unsubscribe(imquic_connection *conn, uint64_t request_id)
Function to send a UNSUBSCRIBE request.
imquic_moq_version imquic_moq_get_version(imquic_connection *conn)
Helper function to get the MoQ version associated with a connection.
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.
const char * imquic_moq_extension_type_str(imquic_moq_extension_type type)
Helper function to serialize to string the name of a imquic_moq_extension_type value.
Definition imquic-moq.c:713
void imquic_set_incoming_subscribe_namespace_cb(imquic_endpoint *endpoint, void(*incoming_subscribe_namespace)(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_NAMESPACE request.
Definition imquic-moq.c:466
int imquic_moq_send_object(imquic_connection *conn, imquic_moq_object *object)
Function to send a MoQ object.
struct imquic_moq_object_extension imquic_moq_object_extension
MoQ Object Extension.
void imquic_set_publish_error_cb(imquic_endpoint *endpoint, void(*publish_error)(imquic_connection *conn, uint64_t request_id, imquic_moq_pub_error_code error_code, const char *reason))
Configure the callback function to be notified when a PUBLISH we previously sent was rejected with an...
Definition imquic-moq.c:377
void imquic_set_subscribe_updated_cb(imquic_endpoint *endpoint, void(*subscribe_updated)(imquic_connection *conn, uint64_t request_id, uint64_t sub_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:422
imquic_moq_version
Versions that can be negotiated.
Definition moq.h:1029
@ IMQUIC_MOQ_VERSION_ANY_LEGACY
Definition moq.h:1057
@ IMQUIC_MOQ_VERSION_06
Definition moq.h:1034
@ IMQUIC_MOQ_VERSION_MIN
Definition moq.h:1033
@ IMQUIC_MOQ_VERSION_MAX
Definition moq.h:1051
@ IMQUIC_MOQ_VERSION_14
Definition moq.h:1050
@ IMQUIC_MOQ_VERSION_12
Definition moq.h:1046
@ IMQUIC_MOQ_VERSION_10
Definition moq.h:1042
@ IMQUIC_MOQ_VERSION_09
Definition moq.h:1040
@ IMQUIC_MOQ_VERSION_13
Definition moq.h:1048
@ IMQUIC_MOQ_VERSION_08
Definition moq.h:1038
@ IMQUIC_MOQ_VERSION_11
Definition moq.h:1044
@ IMQUIC_MOQ_VERSION_07
Definition moq.h:1036
@ IMQUIC_MOQ_VERSION_BASE
Definition moq.h:1031
@ IMQUIC_MOQ_VERSION_ANY
Definition moq.h:1054
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:649
imquic_moq_fetch_error_code
Fetch error codes.
Definition moq.h:674
@ IMQUIC_MOQ_FETCHERR_TRACK_DOES_NOT_EXIST
Definition moq.h:679
@ IMQUIC_MOQ_FETCHERR_MALFORMED_AUTH_TOKEN
Definition moq.h:685
@ IMQUIC_MOQ_FETCHERR_INVALID_JOINING_REQUEST_ID
Definition moq.h:682
@ IMQUIC_MOQ_FETCHERR_NO_OBJECTS
Definition moq.h:681
@ IMQUIC_MOQ_FETCHERR_NOT_SUPPORTED
Definition moq.h:678
@ IMQUIC_MOQ_FETCHERR_UNAUTHORIZED
Definition moq.h:676
@ IMQUIC_MOQ_FETCHERR_INVALID_RANGE
Definition moq.h:680
@ IMQUIC_MOQ_FETCHERR_INTERNAL_ERROR
Definition moq.h:675
@ IMQUIC_MOQ_FETCHERR_MALFORMED_TRACK
Definition moq.h:684
@ IMQUIC_MOQ_FETCHERR_EXPIRED_AUTH_TOKEN
Definition moq.h:687
@ IMQUIC_MOQ_FETCHERR_UNKNOWN_STATUS_IN_RANGE
Definition moq.h:683
@ IMQUIC_MOQ_FETCHERR_TIMEOUT
Definition moq.h:677
@ IMQUIC_MOQ_FETCHERR_UNKNOWN_AUTH_TOKEN_ALIAS
Definition moq.h:686
struct imquic_moq_name imquic_moq_name
MoQ Track Name.
imquic_moq_auth_token_alias_type
MoQ Authorization Token Alias Type.
Definition moq.h:527
@ IMQUIC_MOQ_AUTH_TOKEN_DELETE
DELETE.
Definition moq.h:529
@ IMQUIC_MOQ_AUTH_TOKEN_USE_ALIAS
USE_ALIAS.
Definition moq.h:533
@ IMQUIC_MOQ_AUTH_TOKEN_USE_VALUE
USE_VALUE.
Definition moq.h:535
@ IMQUIC_MOQ_AUTH_TOKEN_REGISTER
REGISTER.
Definition moq.h:531
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.
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:621
int imquic_moq_update_subscribe(imquic_connection *conn, uint64_t request_id, uint64_t sub_request_id, imquic_moq_location *start_location, uint64_t end_group, uint8_t priority, gboolean forward)
Function to send a SUBSCRIBE_UPDATE request.
imquic_moq_error_code
Generic error codes.
Definition moq.h:580
@ IMQUIC_MOQ_DUPLICATE_AUTH_TOKEN_ALIAS
Definition moq.h:595
@ IMQUIC_MOQ_CONTROL_MESSAGE_TIMEOUT
Definition moq.h:592
@ IMQUIC_MOQ_EXPIRED_AUTH_TOKEN
Definition moq.h:599
@ IMQUIC_MOQ_INTERNAL_ERROR
Definition moq.h:582
@ IMQUIC_MOQ_KEYVALUE_FORMATTING_ERROR
Definition moq.h:587
@ IMQUIC_MOQ_MALFORMED_AUTHORITY
Definition moq.h:601
@ IMQUIC_MOQ_VERSION_NEGOTIATION_FAILED
Definition moq.h:596
@ IMQUIC_MOQ_INVALID_REQUEST_ID
Definition moq.h:585
@ IMQUIC_MOQ_INVALID_AUTHORITY
Definition moq.h:600
@ IMQUIC_MOQ_INVALID_PATH
Definition moq.h:589
@ IMQUIC_MOQ_DATA_STREAM_TIMEOUT
Definition moq.h:593
@ IMQUIC_MOQ_MALFORMED_AUTH_TOKEN
Definition moq.h:597
@ IMQUIC_MOQ_AUTH_TOKEN_CACHE_OVERFLOW
Definition moq.h:594
@ IMQUIC_MOQ_PROTOCOL_VIOLATION
Definition moq.h:584
@ IMQUIC_MOQ_DUPLICATE_TRACK_ALIAS
Definition moq.h:586
@ IMQUIC_MOQ_UNKNOWN_ERROR
Definition moq.h:603
@ IMQUIC_MOQ_UNAUTHORIZED
Definition moq.h:583
@ IMQUIC_MOQ_MALFORMED_PATH
Definition moq.h:590
@ IMQUIC_MOQ_NO_ERROR
Definition moq.h:581
@ IMQUIC_MOQ_GOAWAY_TIMEOUT
Definition moq.h:591
@ IMQUIC_MOQ_UNKNOWN_AUTH_TOKEN_ALIAS
Definition moq.h:598
@ IMQUIC_MOQ_TOO_MANY_REQUESTS
Definition moq.h:588
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.
void imquic_set_subscribe_namespace_accepted_cb(imquic_endpoint *endpoint, void(*subscribe_namespace_accepted)(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns))
Configure the callback function to be notified when an SUBSCRIBE_NAMESPACE we previously sent was acc...
Definition imquic-moq.c:477
imquic_moq_sub_error_code
Subscribe error codes.
Definition moq.h:640
@ IMQUIC_MOQ_SUBERR_TRACK_DOES_NOT_EXIST
Definition moq.h:645
@ IMQUIC_MOQ_SUBERR_NOT_SUPPORTED
Definition moq.h:644
@ IMQUIC_MOQ_SUBERR_MALFORMED_AUTH_TOKEN
Definition moq.h:648
@ IMQUIC_MOQ_SUBERR_UNAUTHORIZED
Definition moq.h:642
@ IMQUIC_MOQ_SUBERR_INVALID_RANGE
Definition moq.h:646
@ IMQUIC_MOQ_SUBERR_TIMEOUT
Definition moq.h:643
@ IMQUIC_MOQ_SUBERR_INTERNAL_ERROR
Definition moq.h:641
@ IMQUIC_MOQ_SUBERR_RETRY_TRACK_ALIAS
Definition moq.h:647
@ IMQUIC_MOQ_SUBERR_UNKNOWN_AUTH_TOKEN_ALIAS
Definition moq.h:649
@ IMQUIC_MOQ_SUBERR_EXPIRED_AUTH_TOKEN
Definition moq.h:650
imquic_moq_extension_type
Known MoQ Object Extension header types.
Definition moq.h:477
@ IMQUIC_MOQ_EXT_PRIOR_OBJECT_ID_GAP
Definition moq.h:481
@ IMQUIC_MOQ_EXT_PRIOR_GROUP_ID_GAP
Definition moq.h:479
@ IMQUIC_MOQ_EXT_IMMUTABLE_EXTENSIONS
Definition moq.h:483
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.
int imquic_moq_reject_track_status(imquic_connection *conn, uint64_t request_id, imquic_moq_sub_error_code error_code, const char *reason)
Function to reject an incoming TRACK_STATUS request.
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:554
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.
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:543
int imquic_moq_set_connection_auth(imquic_connection *conn, uint8_t *auth, size_t authlen)
Method to provide credentials, as a client, on a new connection. If credentials need to provided,...
imquic_moq_sub_done_code
Subscribe done codes.
Definition moq.h:695
@ IMQUIC_MOQ_SUBDONE_INTERNAL_ERROR
Definition moq.h:696
@ IMQUIC_MOQ_SUBDONE_GOING_AWAY
Definition moq.h:700
@ IMQUIC_MOQ_SUBDONE_SUBSCRIPTION_ENDED
Definition moq.h:699
@ IMQUIC_MOQ_SUBDONE_TRACK_ENDED
Definition moq.h:698
@ IMQUIC_MOQ_SUBDONE_MALFORMED_TRACK
Definition moq.h:703
@ IMQUIC_MOQ_SUBDONE_EXPIRED
Definition moq.h:701
@ IMQUIC_MOQ_SUBDONE_UNAUTHORIZED
Definition moq.h:697
@ IMQUIC_MOQ_SUBDONE_TOO_FAR_BEHIND
Definition moq.h:702
void imquic_set_track_status_error_cb(imquic_endpoint *endpoint, void(*track_status_error)(imquic_connection *conn, uint64_t request_id, imquic_moq_sub_error_code error_code, const char *reason))
Configure the callback function to be notified when a TRACK_STATUS we previously sent was rejected wi...
Definition imquic-moq.c:588
imquic_moq_subns_error_code
Subscribe namespaces error codes.
Definition moq.h:658
@ IMQUIC_MOQ_SUBNSERR_UNKNOWN_AUTH_TOKEN_ALIAS
Definition moq.h:665
@ IMQUIC_MOQ_SUBNSERR_NAMESPACE_PREFIX_UNKNOWN
Definition moq.h:663
@ IMQUIC_MOQ_SUBNSERR_MALFORMED_AUTH_TOKEN
Definition moq.h:664
@ IMQUIC_MOQ_SUBNSERR_NOT_SUPPORTED
Definition moq.h:662
@ IMQUIC_MOQ_SUBNSERR_INTERNAL_ERROR
Definition moq.h:659
@ IMQUIC_MOQ_SUBNSERR_UNAUTHORIZED
Definition moq.h:660
@ IMQUIC_MOQ_SUBNSERR_EXPIRED_AUTH_TOKEN
Definition moq.h:666
@ IMQUIC_MOQ_SUBNSERR_TIMEOUT
Definition moq.h:661
void imquic_set_publish_accepted_cb(imquic_endpoint *endpoint, void(*publish_accepted)(imquic_connection *conn, uint64_t request_id, gboolean forward, uint8_t priority, gboolean descending, 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 a PUBLISH we previously sent was accepted.
Definition imquic-moq.c:365
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.
int imquic_moq_standalone_fetch(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_name *tn, gboolean descending, imquic_moq_location_range *range, uint8_t *auth, size_t authlen)
Function to send a standalone FETCH request.
int imquic_moq_goaway(imquic_connection *conn, const char *uri)
Function to send a GOAWAY request.
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.
void imquic_set_publish_namespace_accepted_cb(imquic_endpoint *endpoint, void(*publish_namespace_accepted)(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns))
Configure the callback function to be notified when an PUBLISH_NAMESPACE we previously sent was accep...
Definition imquic-moq.c:320
imquic_moq_role
Roles that can be specified once connected.
Definition moq.h:1004
@ IMQUIC_MOQ_PUBSUB
Definition moq.h:1008
@ IMQUIC_MOQ_PUBLISHER
Definition moq.h:1006
@ IMQUIC_MOQ_SUBSCRIBER
Definition moq.h:1007
@ IMQUIC_MOQ_ENDPOINT
Definition moq.h:1005
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:532
void imquic_set_publish_namespace_error_cb(imquic_endpoint *endpoint, void(*publish_namespace_error)(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_publish_namespace_error_code error_code, const char *reason))
Configure the callback function to be notified when an PUBLISH_NAMESPACE we previously sent was rejec...
Definition imquic-moq.c:331
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 QUIC connections on the configured endpoint....
Definition imquic-moq.c:261
imquic_moq_publish_namespace_error_code
Publish Namespace error codes.
Definition moq.h:611
@ IMQUIC_MOQ_PUBNSERR_TIMEOUT
Definition moq.h:614
@ IMQUIC_MOQ_PUBNSERR_NOT_SUPPORTED
Definition moq.h:615
@ IMQUIC_MOQ_PUBNSERR_UNINTERESTED
Definition moq.h:616
@ IMQUIC_MOQ_PUBNSERR_MALFORMED_AUTH_TOKEN
Definition moq.h:617
@ IMQUIC_MOQ_PUBNSERR_UNAUTHORIZED
Definition moq.h:613
@ IMQUIC_MOQ_PUBNSERR_INTERNAL_ERROR
Definition moq.h:612
@ IMQUIC_MOQ_PUBNSERR_EXPIRED_AUTH_TOKEN
Definition moq.h:619
@ IMQUIC_MOQ_PUBNSERR_UNKNOWN_AUTH_TOKEN_ALIAS
Definition moq.h:618
struct imquic_moq_location_range imquic_moq_location_range
MoQ location range (from where to where, e.g., for FETCH)
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.
int imquic_moq_publish_done(imquic_connection *conn, uint64_t request_id, imquic_moq_sub_done_code status_code, const char *reason)
Function to send a PUBLISH_DONE request.
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.
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:444
int imquic_moq_reject_publish_namespace(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_publish_namespace_error_code error_code, const char *reason)
Function to reject an incoming PUBLISH_NAMESPACE request.
void imquic_set_incoming_unsubscribe_namespace_cb(imquic_endpoint *endpoint, void(*incoming_unsubscribe_namespace)(imquic_connection *conn, imquic_moq_namespace *tns))
Configure the callback function to be notified when there's an incoming UNSUBSCRIBE_NAMESPACE request...
Definition imquic-moq.c:499
int imquic_moq_accept_track_status(imquic_connection *conn, uint64_t request_id, uint64_t track_alias, uint64_t expires, gboolean descending, imquic_moq_location *largest)
Function to accept an incoming TRACK_STATUS request.
int imquic_moq_requests_blocked(imquic_connection *conn)
Function to send a REQUESTS_BLOCKED request.
int imquic_moq_accept_publish(imquic_connection *conn, uint64_t request_id, gboolean forward, uint8_t priority, gboolean descending, imquic_moq_filter_type filter_type, imquic_moq_location *start_location, imquic_moq_location *end_location)
Function to accept an incoming PUBLISH request.
imquic_moq_delivery
Ways of sending objects.
Definition moq.h:411
@ IMQUIC_MOQ_USE_TRACK
All objects of the same track on the same STREAM (only v06)
Definition moq.h:417
@ IMQUIC_MOQ_USE_FETCH
All fetched objects on the same STREAM (starting from v07)
Definition moq.h:419
@ IMQUIC_MOQ_USE_DATAGRAM
A single object on a DATAGRAM.
Definition moq.h:413
@ IMQUIC_MOQ_USE_SUBGROUP
All objects of the same subgroup on the same STREAM.
Definition moq.h:415
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.
Token value, if any.
Definition moq.h:555
uint8_t * buffer
Definition moq.h:557
uint64_t length
Definition moq.h:556
MoQ Authorization Token.
Definition moq.h:543
imquic_moq_auth_token_alias_type alias_type
Alias type.
Definition moq.h:545
uint64_t token_alias
Token alias, if any.
Definition moq.h:549
gboolean token_type_set
Whether there is a token type.
Definition moq.h:551
uint64_t token_type
Token type, if any.
Definition moq.h:553
struct imquic_moq_auth_token::imquic_moq_auth_token_value token_value
gboolean token_alias_set
Whether there is a token alias.
Definition moq.h:547
MoQ location range (from where to where, e.g., for FETCH)
Definition moq.h:403
imquic_moq_location end
End group/object.
Definition moq.h:407
imquic_moq_location start
Start group/object.
Definition moq.h:405
MoQ Group/Object couple (for ranges)
Definition moq.h:397
uint64_t object
Definition moq.h:399
uint64_t group
Definition moq.h:398
MoQ Track Name.
Definition moq.h:371
size_t length
Size of the name data.
Definition moq.h:375
uint8_t * buffer
Name data (typically a non-null terminated string)
Definition moq.h:373
MoQ Track Namespace.
Definition moq.h:351
size_t length
Size of the namespace data.
Definition moq.h:355
uint8_t * buffer
Namespace data (typically a non-null terminated string)
Definition moq.h:353
struct imquic_moq_namespace * next
Next namespace in this list, if this is a tuple.
Definition moq.h:357
MoQ Object Extension.
Definition moq.h:448
uint64_t number
Definition moq.h:454
union imquic_moq_object_extension::@0 value
Extension value, which could be either a number (even extension ID) or an octet of data with length (...
struct imquic_moq_object_extension::@0::imquic_moq_object_extension_data data
uint64_t length
Definition moq.h:456
uint32_t id
MoQ extension ID.
Definition moq.h:450
uint8_t * buffer
Definition moq.h:457
MoQ Object.
Definition moq.h:494
size_t extensions_count
Count of the MoQ object extensions (only v08, deprecated in v09)
Definition moq.h:518
imquic_moq_delivery delivery
How to send this object (or how it was received)
Definition moq.h:520
size_t payload_len
Size of the MoQ object payload.
Definition moq.h:512
uint64_t subgroup_id
MoQ subgroup_id.
Definition moq.h:502
gboolean end_of_stream
Whether this signals the end of the stream.
Definition moq.h:522
uint64_t group_id
MoQ group_id.
Definition moq.h:500
uint64_t object_id
MoQ object_id.
Definition moq.h:504
size_t extensions_len
Size of the MoQ object extensions (only since v08)
Definition moq.h:516
uint8_t * payload
MoQ object payload.
Definition moq.h:510
uint8_t priority
MoQ publisher priority.
Definition moq.h:508
uint64_t track_alias
MoQ track_alias.
Definition moq.h:498
imquic_moq_object_status object_status
MoQ object status.
Definition moq.h:506
uint64_t request_id
MoQ request_id.
Definition moq.h:496
uint8_t * extensions
MoQ object extensions, if any (only since v08)
Definition moq.h:514