ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
acds_handlers.h
Go to the documentation of this file.
1
12#pragma once
13
14#include "../../network/acip/transport.h"
15#include "../../network/acip/messages.h"
16#include "../../network/acip/acds.h"
17#include "../../asciichat_errno.h"
18#include <stddef.h>
19
20// =============================================================================
21// ACDS Handler Callbacks
22// =============================================================================
23
37typedef struct {
39 void (*on_session_create)(const acip_session_create_t *req, acip_transport_t *transport, const char *client_ip, void *app_ctx);
40
42 void (*on_session_lookup)(const acip_session_lookup_t *req, acip_transport_t *transport, const char *client_ip, void *app_ctx);
43
45 void (*on_session_join)(const acip_session_join_t *req, acip_transport_t *transport, const char *client_ip, void *app_ctx);
46
48 void (*on_session_leave)(const acip_session_leave_t *req, acip_transport_t *transport, const char *client_ip, void *app_ctx);
49
51 void (*on_webrtc_sdp)(const acip_webrtc_sdp_t *sdp, size_t payload_len, acip_transport_t *transport, const char *client_ip,
52 void *app_ctx);
53
55 void (*on_webrtc_ice)(const acip_webrtc_ice_t *ice, size_t payload_len, acip_transport_t *transport, const char *client_ip,
56 void *app_ctx);
57
59 void (*on_discovery_ping)(const void *payload, size_t payload_len, acip_transport_t *transport, const char *client_ip,
60 void *app_ctx);
61
63 void (*on_host_announcement)(const acip_host_announcement_t *announcement, acip_transport_t *transport, const char *client_ip,
64 void *app_ctx);
65
67 void (*on_host_lost)(const acip_host_lost_t *host_lost, acip_transport_t *transport, const char *client_ip, void *app_ctx);
68
70 void (*on_network_quality)(const void *payload, size_t payload_len, acip_transport_t *transport, const char *client_ip,
71 void *app_ctx);
72
74 void *app_ctx;
76
92 size_t payload_len, const char *client_ip,
93 const acip_acds_callbacks_t *callbacks);
asciichat_error_t acip_handle_acds_packet(acip_transport_t *transport, packet_type_t type, const void *payload, size_t payload_len, const char *client_ip, const acip_acds_callbacks_t *callbacks)
Handle incoming ACDS packet with O(1) dispatch.
acip_session_join_t
Definition acds.h:403
acip_session_lookup_t
Definition acds.h:304
acip_webrtc_ice_t
Definition acds.h:650
acip_host_lost_t
Definition acds.h:952
acip_host_announcement_t
Definition acds.h:910
acip_webrtc_sdp_t
Definition acds.h:604
acip_session_create_t
Definition acds.h:221
acip_session_leave_t
Definition acds.h:524
asciichat_error_t
Error and exit codes - unified status values (0-255)
Definition error_codes.h:49
packet_type_t
Network protocol packet type enumeration.
Definition packet.h:286
ACDS packet handler callbacks.
void * app_ctx
Application context (passed to all callbacks)
Transport instance structure.
Definition transport.h:214