ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
metrics.h
Go to the documentation of this file.
1
17#pragma once
18
20#include <stdint.h>
21#include <stddef.h>
22
23#ifdef _WIN32
24#pragma pack(push, 1)
25#endif
26
45
46#ifdef _WIN32
47#pragma pack(pop)
48#endif
49
50#ifdef __cplusplus
51extern "C" {
52#endif
53
58
77asciichat_error_t consensus_metrics_measure(const uint8_t my_id[16], participant_metrics_t *out_metrics);
78
96asciichat_error_t consensus_metrics_to_wire(const participant_metrics_t *metrics, participant_metrics_t *out_wire);
97
110asciichat_error_t consensus_metrics_from_wire(const participant_metrics_t *wire_metrics,
111 participant_metrics_t *out_metrics);
112
125
137 const participant_metrics_t *metrics);
138
153 const participant_metrics_t **out_metrics, int *out_count);
154
163
164#ifdef __cplusplus
165}
166#endif
⚠️‼️ Comprehensive thread-local error context system for ascii-chat
unsigned short uint16_t
Definition common.h:57
unsigned int uint32_t
Definition common.h:58
unsigned long long uint64_t
Definition common.h:59
unsigned char uint8_t
Definition common.h:56
asciichat_error_t
Error and exit codes - unified status values (0-255)
Definition error_codes.h:49
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:144
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:126
asciichat_error_t consensus_metrics_measure(const uint8_t my_id[16], participant_metrics_t *out_metrics)
Measure participant network quality metrics.
Definition metrics.c:86
void consensus_metrics_collection_destroy(consensus_metrics_collection_t *collection)
Destroy metrics collection.
Definition metrics.c:228
asciichat_error_t consensus_metrics_collection_add(consensus_metrics_collection_t *collection, const participant_metrics_t *metrics)
Add metrics to collection.
Definition metrics.c:179
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:216
asciichat_error_t consensus_metrics_collection_create(consensus_metrics_collection_t **out_collection)
Create empty metrics collection.
Definition metrics.c:163
uint8_t participant_id[16]
Network quality metrics for a single participant.
Definition metrics.h:33
uint64_t measurement_window_ns
Duration of measurement in ns (network byte order)
Definition metrics.h:43
uint16_t public_port
Detected public port (network byte order)
Definition metrics.h:40
uint32_t rtt_ns
RTT to current host in nanoseconds (network byte order)
Definition metrics.h:37
uint8_t nat_tier
0=LAN, 1=Public, 2=UPnP, 3=STUN, 4=TURN
Definition metrics.h:35
uint8_t connection_type
Direct=0, UPnP=1, STUN=2, TURN=3.
Definition metrics.h:41
uint64_t measurement_time_ns
Unix ns when measured (network byte order)
Definition metrics.h:42
uint8_t stun_probe_success_pct
0-100: percentage of successful STUN probes
Definition metrics.h:38
uint32_t upload_kbps
Upload bandwidth in Kbps (network byte order)
Definition metrics.h:36
Metrics collection structure for participant quality measurements.
Definition metrics.c:20
participant_metrics_t * metrics
Array of participant metrics.
Definition metrics.c:21