18#ifndef IMQUIC_ROQ_INTERNAL_H
19#define IMQUIC_ROQ_INTERNAL_H
28#define IMQUIC_ROQ 7499633
87 uint8_t *bytes, uint64_t offset, uint64_t length, gboolean complete);
imquic public interface (headers)
void imquic_roq_qlog_stream_opened(imquic_qlog *qlog, uint64_t stream_id, uint64_t flow_id)
Add a stream_opened event.
Definition roq.c:311
void imquic_roq_qlog_datagram_packet_created(imquic_qlog *qlog, uint64_t flow_id, uint64_t length)
Add a datagram_packet_created event.
Definition roq.c:341
void imquic_roq_qlog_add_rtp_packet(json_t *data, uint64_t flow_id, uint64_t length)
Helper to add fields for RtpPacket to an event.
Definition roq.c:304
void imquic_roq_datagram_incoming(imquic_connection *conn, uint8_t *bytes, uint64_t length)
Callback the core invokes when there's new incoming data on a DATAGRAM.
Definition roq.c:198
struct imquic_roq_callbacks imquic_roq_callbacks
RoQ public callbacks.
void imquic_roq_init(void)
Initialize the native RoQ stack at startup.
Definition roq.c:50
void imquic_roq_qlog_datagram_packet_parsed(imquic_qlog *qlog, uint64_t flow_id, uint64_t length)
Add a datagram_packet_parsed event.
Definition roq.c:350
struct imquic_roq_stream imquic_roq_stream
RoQ stream (when using the same stream for multiple packets)
void imquic_roq_deinit(void)
Uninitialize the native RoQ stack.
Definition roq.c:54
void imquic_roq_qlog_stream_packet_parsed(imquic_qlog *qlog, uint64_t stream_id, uint64_t flow_id, uint64_t length)
Add a stream_packet_parsed event.
Definition roq.c:331
struct imquic_roq_endpoint imquic_roq_endpoint
RoQ endpoint instance.
void imquic_roq_connection_gone(imquic_connection *conn)
Callback the core invokes when an existing RoQ connection is not available anymore.
Definition roq.c:213
void imquic_roq_stream_incoming(imquic_connection *conn, uint64_t stream_id, uint8_t *bytes, uint64_t offset, uint64_t length, gboolean complete)
Callback the core invokes when there's new incoming data on a STREAM.
Definition roq.c:157
void imquic_roq_new_connection(imquic_connection *conn, void *user_data)
Callback the core invokes when a new QUIC connection using RoQ is available.
Definition roq.c:137
void imquic_roq_qlog_stream_packet_created(imquic_qlog *qlog, uint64_t stream_id, uint64_t flow_id, uint64_t length)
Add a stream_packet_created event.
Definition roq.c:321
Semaphores, Mutexes and Conditions.
GMutex imquic_mutex
imquic mutex implementation
Definition mutex.h:18
Reference counter mechanism.
QUIC Connection.
Definition connection.h:114
QLOG instance.
Definition qlog.h:50
RoQ public callbacks.
Definition internal/roq.h:62
void(* connection_gone)(imquic_connection *conn)
Callback function to be notified about RoQ connections being closed.
Definition internal/roq.h:68
void(* rtp_incoming)(imquic_connection *conn, uint64_t flow_id, uint8_t *bytes, size_t blen)
Callback function to be notified about incoming RTP packets.
Definition internal/roq.h:66
void(* new_connection)(imquic_connection *conn, void *user_data)
Callback function to be notified about new RoQ connections.
Definition internal/roq.h:64
RoQ endpoint instance.
Definition internal/roq.h:36
imquic_connection * conn
Associated QUIC connection.
Definition internal/roq.h:38
GHashTable * packets
Current packet buffer, indexed by stream ID.
Definition internal/roq.h:42
GHashTable * stream_flows_out
Definition internal/roq.h:40
GHashTable * stream_flows_in
Stream flows, indexed by stream ID.
Definition internal/roq.h:40
imquic_mutex mutex
Mutex.
Definition internal/roq.h:44
RoQ stream (when using the same stream for multiple packets)
Definition internal/roq.h:48
uint64_t stream_id
QUIC Stream ID.
Definition internal/roq.h:50
uint64_t offset
Offset in the QUIC STREAM where to write the next packet.
Definition internal/roq.h:54
volatile gint destroyed
Whether this instance has been destroyed (reference counting)
Definition internal/roq.h:56
uint64_t flow_id
RoQ Flow ID.
Definition internal/roq.h:52
imquic_refcount ref
Reference counter.
Definition internal/roq.h:58