ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
queue.c File Reference

Go to the source code of this file.

Functions

node_pool_t * node_pool_create (size_t pool_size)
 Create a memory pool for packet queue nodes.
 
void node_pool_destroy (node_pool_t *pool)
 Destroy a node pool and free all memory.
 
packet_node_t * node_pool_get (node_pool_t *pool)
 Get a free node from the pool.
 
void node_pool_put (node_pool_t *pool, packet_node_t *node)
 Return a node to the pool.
 
packet_queue_t * packet_queue_create (size_t max_size)
 Create a new packet queue.
 
packet_queue_t * packet_queue_create_with_pool (size_t max_size, size_t pool_size)
 Create a packet queue with node pool.
 
packet_queue_t * packet_queue_create_with_pools (size_t max_size, size_t node_pool_size, bool use_buffer_pool)
 Create a packet queue with both node and buffer pools.
 
void packet_queue_destroy (packet_queue_t *queue)
 Signal queue shutdown (causes dequeue to return NULL)
 
int packet_queue_enqueue (packet_queue_t *queue, packet_type_t type, const void *data, size_t data_len, uint32_t client_id, bool copy_data)
 Enqueue a packet into the queue.
 
int packet_queue_enqueue_packet (packet_queue_t *queue, const queued_packet_t *packet)
 Enqueue a pre-built packet (for special cases like compressed frames)
 
queued_packet_t * packet_queue_dequeue (packet_queue_t *queue)
 Dequeue a packet from the queue (non-blocking)
 
queued_packet_t * packet_queue_try_dequeue (packet_queue_t *queue)
 Try to dequeue a packet without blocking.
 
void packet_queue_free_packet (queued_packet_t *packet)
 Free a dequeued packet.
 
size_t packet_queue_size (packet_queue_t *queue)
 Get current number of packets in queue.
 
bool packet_queue_is_empty (packet_queue_t *queue)
 Check if queue is empty.
 
bool packet_queue_is_full (packet_queue_t *queue)
 Check if queue is full.
 
void packet_queue_stop (packet_queue_t *queue)
 Destroy a packet queue and free all resources.
 
void packet_queue_clear (packet_queue_t *queue)
 Clear all packets from queue.
 
void packet_queue_get_stats (packet_queue_t *queue, uint64_t *enqueued, uint64_t *dequeued, uint64_t *dropped)
 Get queue statistics.
 
bool packet_queue_validate_packet (const queued_packet_t *packet)
 Validate packet integrity.