ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
src/server/client.h
Go to the documentation of this file.
1
10#pragma once
11
13#include <libplatform/rwlock.h>
14
15// Forward declaration to avoid circular dependency with main.h
16// Files that need the full definition should include main.h themselves
18
74
75// Global client manager
79
80// Client management functions
81client_info_t *add_transport_client(server_context_t *server_ctx, acip_transport_t *transport, const char *client_ip);
82int start_transport_client_threads(server_context_t *server_ctx, const char *client_id);
83int remove_client(server_context_t *server_ctx, const char *client_id);
84client_info_t *find_client_by_id(const char *client_id);
87
88// Client thread functions
89
90// Packet processing functions
91
92// Client initialization
#define MAX_CLIENTS
Maximum possible clients (static array size) - actual runtime limit set by –max-clients (1-128).
struct acip_transport acip_transport_t
Forward declaration of ACIP transport.
Definition host.h:506
struct client_info client_info_t
rwlock_t g_client_manager_rwlock
Reader-writer lock protecting the global client manager.
bool g_client_manager_rwlock_initialized
client_manager_t g_client_manager
Hash table entry for client packet dispatch.
void initialize_client_info(client_info_t *client)
void cleanup_client_media_buffers(client_info_t *client)
void cleanup_client_packet_queues(client_info_t *client)
int start_transport_client_threads(server_context_t *server_ctx, const char *client_id)
client_info_t * find_client_by_id(const char *client_id)
Fast O(1) client lookup by ID using hash table.
int remove_client(server_context_t *server_ctx, const char *client_id)
client_info_t * add_transport_client(server_context_t *server_ctx, acip_transport_t *transport, const char *client_ip)
Global client manager structure for server-side client coordination.
client_info_t * clients_by_id
uthash head pointer for O(1) client_id -> client_info_t* lookups
mutex_t mutex
Legacy mutex (mostly replaced by rwlock).
client_info_t clients[MAX_CLIENTS]
Array of client_info_t structures (backing storage).
int client_count
Current number of active clients.
Read-write lock type (POSIX: pthread_rwlock_t with debug tracking).
Definition rwlock.h:63
Server context - encapsulates all server state.