|
ascii-chat 0.8.38
Real-time terminal-based video chat with ASCII art conversion
|
Mode-agnostic ring consensus abstraction implementation. More...
Go to the source code of this file.
Data Structures | |
| struct | session_consensus |
| Session consensus handle - wraps all consensus modules. More... | |
Typedefs | |
| typedef struct session_consensus | session_consensus_t |
| Session consensus handle - wraps all consensus modules. | |
Functions | |
| asciichat_error_t | session_consensus_create (const uint8_t my_id[16], bool is_leader, const uint8_t participant_ids[64][16], int num_participants, const session_consensus_callbacks_t *callbacks, session_consensus_t **out_consensus) |
| void | session_consensus_destroy (session_consensus_t *consensus) |
| asciichat_error_t | session_consensus_process (session_consensus_t *consensus, uint32_t timeout_ms) |
| asciichat_error_t | session_consensus_set_topology (session_consensus_t *consensus, const uint8_t participant_ids[64][16], int num_participants) |
| asciichat_error_t | session_consensus_on_collection_start (session_consensus_t *consensus, uint32_t round_id, uint64_t deadline_ns) |
| asciichat_error_t | session_consensus_on_stats_update (session_consensus_t *consensus, const uint8_t sender_id[16], const participant_metrics_t *metrics, uint8_t num_metrics) |
| asciichat_error_t | session_consensus_on_election_result (session_consensus_t *consensus, const uint8_t host_id[16], const char host_address[64], uint16_t host_port, const uint8_t backup_id[16], const char backup_address[64], uint16_t backup_port) |
| asciichat_error_t | session_consensus_get_elected_host (session_consensus_t *consensus, uint8_t out_host_id[16], char out_host_address[64], uint16_t *out_host_port, uint8_t out_backup_id[16], char out_backup_address[64], uint16_t *out_backup_port) |
| bool | session_consensus_is_ready (session_consensus_t *consensus) |
| int | session_consensus_get_state (session_consensus_t *consensus) |
| uint64_t | session_consensus_time_until_next_round (session_consensus_t *consensus) |
| int | session_consensus_get_metrics_count (session_consensus_t *consensus) |
Mode-agnostic ring consensus abstraction implementation.
Definition in file consensus.c.
| typedef struct session_consensus session_consensus_t |
Session consensus handle - wraps all consensus modules.
| asciichat_error_t session_consensus_create | ( | const uint8_t | my_id[16], |
| bool | is_leader, | ||
| const uint8_t | participant_ids[64][16], | ||
| int | num_participants, | ||
| const session_consensus_callbacks_t * | callbacks, | ||
| session_consensus_t ** | out_consensus | ||
| ) |
Definition at line 108 of file consensus.c.
References consensus_coordinator_create(), consensus_topology_create(), consensus_topology_destroy(), session_consensus::context, session_consensus::coordinator, session_consensus::election, session_consensus::get_metrics, session_consensus::is_leader, session_consensus::my_id, session_consensus::on_election, session_consensus::send_packet, and session_consensus::topology.
Referenced by consensus_create_for_discovery().
| void session_consensus_destroy | ( | session_consensus_t * | consensus | ) |
Definition at line 166 of file consensus.c.
References consensus_coordinator_destroy(), consensus_topology_destroy(), session_consensus::coordinator, and session_consensus::topology.
| asciichat_error_t session_consensus_get_elected_host | ( | session_consensus_t * | consensus, |
| uint8_t | out_host_id[16], | ||
| char | out_host_address[64], | ||
| uint16_t * | out_host_port, | ||
| uint8_t | out_backup_id[16], | ||
| char | out_backup_address[64], | ||
| uint16_t * | out_backup_port | ||
| ) |
Definition at line 259 of file consensus.c.
References consensus_coordinator_get_current_host(), and session_consensus::coordinator.
| int session_consensus_get_metrics_count | ( | session_consensus_t * | consensus | ) |
Definition at line 314 of file consensus.c.
References consensus_coordinator_get_metrics_count(), and session_consensus::coordinator.
| int session_consensus_get_state | ( | session_consensus_t * | consensus | ) |
Definition at line 298 of file consensus.c.
References consensus_coordinator_get_state(), and session_consensus::coordinator.
| bool session_consensus_is_ready | ( | session_consensus_t * | consensus | ) |
Definition at line 285 of file consensus.c.
References consensus_coordinator_get_current_host(), and session_consensus::coordinator.
| asciichat_error_t session_consensus_on_collection_start | ( | session_consensus_t * | consensus, |
| uint32_t | round_id, | ||
| uint64_t | deadline_ns | ||
| ) |
Definition at line 218 of file consensus.c.
References consensus_coordinator_on_collection_start(), and session_consensus::coordinator.
| asciichat_error_t session_consensus_on_election_result | ( | session_consensus_t * | consensus, |
| const uint8_t | host_id[16], | ||
| const char | host_address[64], | ||
| uint16_t | host_port, | ||
| const uint8_t | backup_id[16], | ||
| const char | backup_address[64], | ||
| uint16_t | backup_port | ||
| ) |
Definition at line 236 of file consensus.c.
References consensus_coordinator_on_election_result(), session_consensus::context, session_consensus::coordinator, and session_consensus::on_election.
| asciichat_error_t session_consensus_on_stats_update | ( | session_consensus_t * | consensus, |
| const uint8_t | sender_id[16], | ||
| const participant_metrics_t * | metrics, | ||
| uint8_t | num_metrics | ||
| ) |
Definition at line 227 of file consensus.c.
References consensus_coordinator_on_stats_update(), and session_consensus::coordinator.
| asciichat_error_t session_consensus_process | ( | session_consensus_t * | consensus, |
| uint32_t | timeout_ms | ||
| ) |
Definition at line 182 of file consensus.c.
References consensus_coordinator_process(), and session_consensus::coordinator.
| asciichat_error_t session_consensus_set_topology | ( | session_consensus_t * | consensus, |
| const uint8_t | participant_ids[64][16], | ||
| int | num_participants | ||
| ) |
Definition at line 191 of file consensus.c.
References consensus_coordinator_on_ring_members(), consensus_topology_create(), consensus_topology_destroy(), session_consensus::coordinator, session_consensus::my_id, and session_consensus::topology.
| uint64_t session_consensus_time_until_next_round | ( | session_consensus_t * | consensus | ) |
Definition at line 306 of file consensus.c.
References consensus_coordinator_time_until_next_round(), and session_consensus::coordinator.
Referenced by consensus_suggest_timeout_ms().