ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
queue.h
Go to the documentation of this file.
1#pragma once
2#include <ascii-chat/buffer.h>
3#include "packet.h"
4
6typedef struct {
8 const void *data;
9 size_t data_len;
11
14
20
23packet_queue_t *packet_queue_create(size_t max_packets);
29
31asciichat_error_t packet_queue_push_copy(packet_queue_t *queue, packet_type_t type, const void *data, size_t length,
32 uint32_t client_id);
35asciichat_error_t packet_queue_push_take(packet_queue_t *queue, packet_type_t type, void **data, size_t length,
36 uint32_t client_id);
38asciichat_error_t packet_queue_push_shared(packet_queue_t *queue, packet_type_t type, const void *data, size_t length,
39 uint32_t client_id);
46void packet_queue_get_stats(packet_queue_t *queue, uint64_t *enqueued, uint64_t *dequeued, uint64_t *dropped);
unsigned int uint32_t
Definition common.h:62
unsigned long long uint64_t
Definition common.h:63
asciichat_error_t
Error and exit codes - unified status values (0-255).
Definition error_codes.h:44
packet_type_t
Network protocol packet type enumeration.
Definition packet.h:301
void packet_queue_clear(packet_queue_t *queue)
Definition queue.c:195
packet_queue_t * packet_queue_create_config(const packet_queue_config_t *config)
Definition queue.c:37
void packet_queue_stop(packet_queue_t *queue)
Definition queue.c:205
packet_queue_t * packet_queue_create(size_t max_packets)
Definition queue.c:59
asciichat_error_t packet_queue_push_shared(packet_queue_t *queue, packet_type_t type, const void *data, size_t length, uint32_t client_id)
Definition queue.c:147
void packet_queue_get_stats(packet_queue_t *queue, uint64_t *enqueued, uint64_t *dequeued, uint64_t *dropped)
Definition queue.c:246
bool packet_queue_is_empty(packet_queue_t *queue)
Definition queue.c:232
packet_queue_overflow_t
Definition queue.h:13
@ PACKET_QUEUE_REJECT
Definition queue.h:13
@ PACKET_QUEUE_DROP_OLDEST
Definition queue.h:13
void packet_queue_free_packet(queued_packet_t *packet)
Definition queue.c:78
struct packet_queue packet_queue_t
Definition queue.h:12
bool packet_queue_is_full(packet_queue_t *queue)
Definition queue.c:236
queued_packet_t * packet_queue_try_dequeue(packet_queue_t *queue)
Definition queue.c:176
asciichat_error_t packet_queue_push_copy(packet_queue_t *queue, packet_type_t type, const void *data, size_t length, uint32_t client_id)
Definition queue.c:160
void packet_queue_destroy(packet_queue_t *queue)
Definition queue.c:213
bool packet_queue_validate_packet(const queued_packet_t *packet)
Definition queue.c:259
asciichat_error_t packet_queue_push_take(packet_queue_t *queue, packet_type_t type, void **data, size_t length, uint32_t client_id)
Definition queue.c:137
queued_packet_t * packet_queue_dequeue(packet_queue_t *queue)
Definition queue.c:191
size_t packet_queue_size(packet_queue_t *queue)
Definition queue.c:223
Fixed prefix shared by every ACIP packet on the wire.
Definition packet.h:628
packet_queue_overflow_t overflow
Definition queue.h:18
For packet node, this is the live record that ties packet, next together. The owning code creates it,...
Definition queue.c:23
const void * data
Definition queue.h:8
size_t data_len
Definition queue.h:9
packet_header_t header
Definition queue.h:7