ascii-chat
0.6.0
Real-time terminal-based video chat with ASCII art conversion
Loading...
Searching...
No Matches
src/acds/server.h
Go to the documentation of this file.
1
#pragma once
2
26
#include <stdint.h>
27
#include <
stdbool.h
>
28
#include <sqlite3.h>
29
#include "common.h"
30
#include "
platform/abstraction.h
"
31
#include "
platform/socket.h
"
32
#include "
network/tcp/server.h
"
33
#include "
thread_pool.h
"
34
#include "
acds/main.h
"
35
#include "
acds/session.h
"
36
44
typedef
struct
{
45
uint8_t
session_id
[16];
46
uint8_t
participant_id
[16];
47
bool
joined_session
;
48
}
acds_client_data_t
;
49
56
typedef
struct
{
57
tcp_server_t
tcp_server
;
58
59
// Identity
60
uint8_t
identity_public[32];
61
uint8_t
identity_secret[64];
62
63
// Session management
64
session_registry_t
*
sessions
;
65
66
// Persistence
67
sqlite3 *
db
;
68
69
// Rate limiting
70
struct
rate_limiter_s
*
rate_limiter
;
71
72
// Background worker threads (cleanup, etc.)
73
thread_pool_t
*
worker_pool
;
74
atomic_bool
shutdown
;
75
76
// Configuration
77
acds_config_t
config
;
78
}
acds_server_t
;
79
90
asciichat_error_t
acds_server_init
(
acds_server_t
*server,
const
acds_config_t
*config);
91
101
asciichat_error_t
acds_server_run
(
acds_server_t
*server);
102
111
void
acds_server_shutdown
(
acds_server_t
*server);
112
122
void
*
acds_client_handler
(
void
*arg);
abstraction.h
๐ Cross-platform abstraction layer umbrella header for ascii-chat
main.h
๐ ASCII-Chat Discovery Service (acds) main entry point
uint8_t
unsigned char uint8_t
Definition
common.h:56
asciichat_error_t
asciichat_error_t
Error and exit codes - unified status values (0-255)
Definition
error_codes.h:46
server.h
session.h
๐ฏ Session registry for discovery service (lock-free RCU implementation)
socket.h
Cross-platform socket interface for ascii-chat.
acds_client_handler
void * acds_client_handler(void *arg)
Per-client connection handler (thread entry point)
Definition
src/acds/server.c:639
acds_server_shutdown
void acds_server_shutdown(acds_server_t *server)
Shutdown discovery server.
Definition
src/acds/server.c:187
acds_server_init
asciichat_error_t acds_server_init(acds_server_t *server, const acds_config_t *config)
Initialize discovery server.
Definition
src/acds/server.c:86
acds_server_run
asciichat_error_t acds_server_run(acds_server_t *server)
Run discovery server main loop.
Definition
src/acds/server.c:176
session_id
uint8_t session_id[16]
Definition
src/client/webrtc.c:61
participant_id
uint8_t participant_id[16]
Definition
src/client/webrtc.c:62
stdbool.h
acds_client_data_t
Per-client connection data.
Definition
src/acds/server.h:44
acds_client_data_t::joined_session
bool joined_session
Whether client has successfully joined a session.
Definition
src/acds/server.h:47
acds_config_t
Discovery server configuration.
Definition
acds/main.h:71
acds_server_t
Discovery server state.
Definition
src/acds/server.h:56
acds_server_t::config
acds_config_t config
Runtime configuration.
Definition
src/acds/server.h:77
acds_server_t::shutdown
atomic_bool shutdown
Shutdown flag for worker threads.
Definition
src/acds/server.h:74
acds_server_t::tcp_server
tcp_server_t tcp_server
TCP server abstraction.
Definition
src/acds/server.h:57
acds_server_t::db
sqlite3 * db
SQLite database handle.
Definition
src/acds/server.h:67
acds_server_t::sessions
session_registry_t * sessions
In-memory session registry.
Definition
src/acds/server.h:64
acds_server_t::rate_limiter
struct rate_limiter_s * rate_limiter
SQLite-backed rate limiter.
Definition
src/acds/server.h:70
acds_server_t::worker_pool
thread_pool_t * worker_pool
Thread pool for background workers.
Definition
src/acds/server.h:73
rate_limiter_s
Rate limiter structure.
Definition
rate_limit.c:63
session_registry_t
Session registry (lock-free RCU)
Definition
session.h:92
tcp_server
TCP server state.
Definition
lib/network/tcp/server.h:156
thread_pool
Thread pool structure.
Definition
thread_pool.h:103
thread_pool.h
๐งต Generic thread pool abstraction for managing worker threads
src
acds
server.h
Generated by
1.9.8