Loading...
Searching...
No Matches
stream.h
Go to the documentation of this file.
1
11
12#ifndef IMQUIC_STREAM_H
13#define IMQUIC_STREAM_H
14
15#include <stdint.h>
16
17#include <glib.h>
18
19#include "refcount.h"
20
38
63imquic_stream *imquic_stream_create(uint64_t stream_id, gboolean is_server);
70gboolean imquic_stream_mark_complete(imquic_stream *stream, gboolean incoming);
74gboolean imquic_stream_is_done(imquic_stream *stream);
78
82
87void imquic_parse_stream_id(uint64_t stream_id, uint64_t *id, gboolean *client_initiated, gboolean *bidirectional);
93uint64_t imquic_build_stream_id(uint64_t id, gboolean client_initiated, gboolean bidirectional);
95
96#endif
GMutex imquic_mutex
imquic mutex implementation
Definition mutex.h:18
Reference counter mechanism.
imquic_stream_state
Stream states.
Definition stream.h:22
@ IMQUIC_STREAM_BLOCKED
Blocked.
Definition stream.h:28
@ IMQUIC_STREAM_INACTIVE
Inactive.
Definition stream.h:24
@ IMQUIC_STREAM_COMPLETE
Complete.
Definition stream.h:32
@ IMQUIC_STREAM_READY
Ready.
Definition stream.h:26
@ IMQUIC_STREAM_RESET
Reset.
Definition stream.h:30
gboolean imquic_stream_is_done(imquic_stream *stream)
Helper method to check whether an existing stream is now done.
Definition stream.c:65
gboolean imquic_stream_mark_complete(imquic_stream *stream, gboolean incoming)
Helper method to mark a stream as complete in one direction.
Definition stream.c:54
imquic_stream * imquic_stream_create(uint64_t stream_id, gboolean is_server)
Helper method to create a new stream.
Definition stream.c:39
void imquic_stream_destroy(imquic_stream *stream)
Helper method to destroy an existing imquic_stream instance.
Definition stream.c:76
void imquic_parse_stream_id(uint64_t stream_id, uint64_t *id, gboolean *client_initiated, gboolean *bidirectional)
Parse a QUIC stream ID to its actual ID and its other properties.
Definition stream.c:82
uint64_t imquic_build_stream_id(uint64_t id, gboolean client_initiated, gboolean bidirectional)
Build a QUIC stream ID out of its actual ID and its other properties.
Definition stream.c:92
const char * imquic_stream_state_str(imquic_stream_state state)
Helper function to serialize to string the name of a imquic_stream_state value.
Definition stream.c:16
Definition refcount.h:77
QUIC stream.
Definition stream.h:40
gboolean can_send
Whether the stream can send and receive data.
Definition stream.h:46
uint64_t stream_id
Stream ID and actual ID.
Definition stream.h:42
imquic_stream_state in_state
Stream incoming and outgoing state.
Definition stream.h:48
gboolean bidirectional
Definition stream.h:44
imquic_refcount ref
Reference counter.
Definition stream.h:57
imquic_mutex mutex
Mutex.
Definition stream.h:53
imquic_stream_state out_state
Definition stream.h:48
volatile gint destroyed
Whether this instance has been destroyed (reference counting)
Definition stream.h:55
size_t skip_in
Number of bytes to skip, when dealing with offsets (e.g., to hide the shifted offsets when a protocol...
Definition stream.h:51
gboolean can_receive
Definition stream.h:46
uint64_t actual_id
Definition stream.h:42
gboolean client_initiated
Whether the stream is client or server originated, and bidirectional or unidirectional.
Definition stream.h:44