ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
acds_handlers.h
Go to the documentation of this file.
1
11
12#pragma once
13
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,
40 const uint8_t *extension, size_t extension_length, void *app_ctx);
41
43 void (*on_session_lookup)(const acip_session_lookup_t *req, acip_transport_t *transport, const char *client_ip,
44 void *app_ctx);
45
47 void (*on_session_join)(const acip_session_join_t *req, acip_transport_t *transport, const char *client_ip,
48 void *app_ctx);
49
51 void (*on_session_leave)(const acip_session_leave_t *req, acip_transport_t *transport, const char *client_ip,
52 void *app_ctx);
53
55 void (*on_webrtc_sdp)(const acip_webrtc_sdp_t *sdp, size_t payload_len, acip_transport_t *transport,
56 const char *client_ip, void *app_ctx);
57
59 void (*on_webrtc_ice)(const acip_webrtc_ice_t *ice, size_t payload_len, acip_transport_t *transport,
60 const char *client_ip, void *app_ctx);
61
63 void (*on_discovery_ping)(const void *payload, size_t payload_len, acip_transport_t *transport, const char *client_ip,
64 void *app_ctx);
65
67 void (*on_host_announcement)(const acip_host_announcement_t *announcement, acip_transport_t *transport,
68 const char *client_ip, void *app_ctx);
69
71 void (*on_host_announcement_ex)(const acip_host_announcement_t *announcement, const void *metadata,
72 size_t metadata_length, acip_transport_t *transport, const char *client_ip,
73 void *app_ctx);
74
76 void (*on_host_lost)(const acip_host_lost_t *host_lost, acip_transport_t *transport, const char *client_ip,
77 void *app_ctx);
78
80 void (*on_network_quality)(const void *payload, size_t payload_len, acip_transport_t *transport,
81 const char *client_ip, void *app_ctx);
82
83 asciichat_error_t (*on_handoff)(const void *, size_t, acip_transport_t *, void *);
84
86 void *app_ctx;
88
104asciichat_error_t acip_handle_acds_packet(acip_transport_t *transport, packet_type_t type, const void *payload,
105 size_t payload_len, const char *client_ip,
106 const acip_acds_callbacks_t *callbacks);
ascii-chat Discovery Service (ACDS) Protocol Message Formats
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)
ACDS packet handler callbacks.
Synchronized per-thread pending error stacks and value snapshots. SET_ERRNO pushes,...
unsigned char uint8_t
Definition common.h:60
asciichat_error_t
Error and exit codes - unified status values (0-255).
Definition error_codes.h:44
acip_session_join_t
Definition acds.h:408
acip_session_lookup_t
Definition acds.h:309
acip_webrtc_ice_t
Definition acds.h:655
acip_host_lost_t
Definition acds.h:961
acip_host_announcement_t
Definition acds.h:917
acip_webrtc_sdp_t
Definition acds.h:609
acip_session_create_t
Definition acds.h:226
acip_session_leave_t
Definition acds.h:529
packet_type_t
Network protocol packet type enumeration.
Definition packet.h:301
struct acip_transport acip_transport_t
Forward declaration of ACIP transport.
Definition host.h:506
Transport abstraction layer for ACIP protocol.
ACIP protocol message structures and helpers.
ACDS packet handler callbacks.
void(* on_webrtc_sdp)(const acip_webrtc_sdp_t *sdp, size_t payload_len, acip_transport_t *transport, const char *client_ip, void *app_ctx)
Called when client sends WebRTC SDP offer/answer.
void(* on_webrtc_ice)(const acip_webrtc_ice_t *ice, size_t payload_len, acip_transport_t *transport, const char *client_ip, void *app_ctx)
Called when client sends WebRTC ICE candidate.
void(* on_session_join)(const acip_session_join_t *req, acip_transport_t *transport, const char *client_ip, void *app_ctx)
Called when client joins a session.
void(* on_network_quality)(const void *payload, size_t payload_len, acip_transport_t *transport, const char *client_ip, void *app_ctx)
Called when client sends NAT network quality for negotiation (discovery mode).
void(* on_host_announcement)(const acip_host_announcement_t *announcement, acip_transport_t *transport, const char *client_ip, void *app_ctx)
Called when client announces they are hosting (discovery mode).
void(* on_session_lookup)(const acip_session_lookup_t *req, acip_transport_t *transport, const char *client_ip, void *app_ctx)
Called when client looks up session info.
void(* on_discovery_ping)(const void *payload, size_t payload_len, acip_transport_t *transport, const char *client_ip, void *app_ctx)
Called when client sends discovery ping.
void * app_ctx
Application context (passed to all callbacks).
asciichat_error_t(* on_handoff)(const void *, size_t, acip_transport_t *, void *)
void(* on_host_announcement_ex)(const acip_host_announcement_t *announcement, const void *metadata, size_t metadata_length, acip_transport_t *transport, const char *client_ip, void *app_ctx)
void(* on_session_leave)(const acip_session_leave_t *req, acip_transport_t *transport, const char *client_ip, void *app_ctx)
Called when client leaves a session.
void(* on_host_lost)(const acip_host_lost_t *host_lost, acip_transport_t *transport, const char *client_ip, void *app_ctx)
Called when participant reports host has disconnected (discovery mode).
void(* on_session_create)(const acip_session_create_t *req, acip_transport_t *transport, const char *client_ip, const uint8_t *extension, size_t extension_length, void *app_ctx)
Called when client requests session creation.