ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
metrics.h
Go to the documentation of this file.
1
16
17#pragma once
18
22#include <stdint.h>
23#include <stddef.h>
24
25#ifdef _WIN32
26#pragma pack(push, 1)
27#endif
28
48
49#ifdef _WIN32
50#pragma pack(pop)
51#endif
52
53#ifdef __cplusplus
54extern "C" {
55#endif
56
61
81asciichat_error_t consensus_metrics_measure(const uint8_t my_id[SESSION_ID_SIZE], participant_metrics_t *out_metrics);
82
100asciichat_error_t consensus_metrics_to_wire(const participant_metrics_t *metrics, participant_metrics_t *out_wire);
101
114asciichat_error_t consensus_metrics_from_wire(const participant_metrics_t *wire_metrics,
115 participant_metrics_t *out_metrics);
116
129
141 const participant_metrics_t *metrics);
142
157 const participant_metrics_t **out_metrics, int *out_count);
158
167
168#ifdef __cplusplus
169}
170#endif
Synchronized per-thread pending error stacks and value snapshots. SET_ERRNO pushes,...
Application limits and constraints.
unsigned short uint16_t
Definition common.h:61
unsigned int uint32_t
Definition common.h:62
unsigned long long uint64_t
Definition common.h:63
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
#define SESSION_ID_SIZE
#define IP_ADDRESS_BUFFER_SIZE
int32_t vec_t __attribute__((vector_size(4 *4)))
SESSION_CREATED (PACKET_TYPE_ACIP_SESSION_CREATED) - Session created response.
Definition vector.h:42
struct consensus_metrics_collection consensus_metrics_collection_t
Growable collection of participant-quality measurements. metrics, count, and capacity form the pointe...
asciichat_error_t consensus_metrics_measure(const uint8_t my_id[SESSION_ID_SIZE], participant_metrics_t *out_metrics)
Measure participant network quality metrics.
Definition metrics.c:33
asciichat_error_t consensus_metrics_from_wire(const participant_metrics_t *wire_metrics, participant_metrics_t *out_metrics)
Deserialize metrics from wire format.
Definition metrics.c:60
asciichat_error_t consensus_metrics_to_wire(const participant_metrics_t *metrics, participant_metrics_t *out_wire)
Serialize metrics to wire format with network byte order.
Definition metrics.c:42
void consensus_metrics_collection_destroy(consensus_metrics_collection_t *collection)
Destroy metrics collection.
Definition metrics.c:144
asciichat_error_t consensus_metrics_collection_add(consensus_metrics_collection_t *collection, const participant_metrics_t *metrics)
Add metrics to collection.
Definition metrics.c:95
asciichat_error_t consensus_metrics_collection_get(const consensus_metrics_collection_t *collection, const participant_metrics_t **out_metrics, int *out_count)
Get all accumulated metrics.
Definition metrics.c:132
asciichat_error_t consensus_metrics_collection_create(consensus_metrics_collection_t **out_collection)
Create empty metrics collection.
Definition metrics.c:79
uint64_t measurement_window_ns
Duration of measurement in ns (network byte order).
Definition metrics.h:46
uint16_t public_port
Detected public port (network byte order).
Definition metrics.h:43
uint32_t rtt_ns
RTT to current host in nanoseconds (network byte order).
Definition metrics.h:40
char public_address[IP_ADDRESS_BUFFER_SIZE]
Detected public IP address.
Definition metrics.h:42
uint8_t nat_tier
0=LAN, 1=Public, 2=UPnP, 3=STUN, 4=TURN
Definition metrics.h:38
uint8_t connection_type
Direct=0, UPnP=1, STUN=2, TURN=3.
Definition metrics.h:44
uint64_t measurement_time_ns
Unix ns when measured (network byte order).
Definition metrics.h:45
uint8_t stun_probe_success_pct
0-100: percentage of successful STUN probes
Definition metrics.h:41
uint8_t participant_id[SESSION_ID_SIZE]
UUID of participant.
Definition metrics.h:37
uint32_t upload_kbps
Upload bandwidth in Kbps (network byte order).
Definition metrics.h:39
Growable collection of participant-quality measurements. metrics, count, and capacity form the pointe...
Definition metrics.c:27