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/common/session/connection.h
Go to the documentation of this file.
1#pragma once
3#include <libplatform/atomic.h>
4#include <libplatform/thread.h>
7
14
15/* The enclosing owner supplies its resources. Interrupt must not free them;
16 * join must retain every dependency on failure; release runs only after success.
17 * Only request_stop may run outside the controlling thread. Callers must retain
18 * the owner until request_stop callers and all workers have quiesced. */
19typedef struct {
20 void (*interrupt)(void *context);
21 asciichat_error_t (*join)(void *context);
22 void (*release)(void *context);
26
31typedef struct {
32 atomic_t state;
33 thread_id_t owner_thread;
35 void *context;
42
47/* Normal-thread interruption; retains the transport and its callback context. */
49
50/* Establish one media connection, retrying only a server password challenge.
51 * prepare retains mode-specific identity policy and publishes borrowed aliases.
52 * The caller owns the resulting network object, including on startup failure;
53 * no workers may use it until this call succeeds. Password storage is borrowed.
54 * detach clears borrowed aliases before a password retry releases its owner. */
55asciichat_error_t session_connection_establish(const char *name, const char *address, uint16_t port,
57 char *password, size_t capacity, network_connection_prepare_fn prepare,
58 void (*detach)(void *), void *context);
Synchronized per-thread pending error stacks and value snapshots. SET_ERRNO pushes,...
asciichat_error_t(* network_connection_prepare_fn)(network_connection_t *, const connection_endpoint_t *, const char *, void *)
Definition establish.h:5
unsigned short uint16_t
Definition common.h:61
asciichat_error_t
Error and exit codes - unified status values (0-255).
Definition error_codes.h:44
struct acip_transport acip_transport_t
Forward declaration of ACIP transport.
Definition host.h:506
Transport abstraction layer for ACIP protocol.
struct network_connection network_connection_t
asciichat_error_t session_connection_stop(session_connection_t *connection)
void session_connection_request_stop(session_connection_t *connection)
void session_connection_init(session_connection_t *connection, session_connection_ops_t ops, void *context)
asciichat_error_t session_connection_start(session_connection_t *connection)
asciichat_error_t session_connection_establish(const char *name, const char *address, uint16_t port, const network_connect_config_t *config, network_connection_t **owner, char *password, size_t capacity, network_connection_prepare_fn prepare, void(*detach)(void *), void *context)
void session_connection_interrupt_transport(acip_transport_t *transport)
@ SESSION_CONNECTION_STARTING
For network connect config, this is the live record that ties timeout_ms, callback_data,...
asciichat_error_t(* join)(void *context)
Groups the callbacks and caller data for session connection ops. The owner invokes these function poi...