|
ascii-chat 0.8.38
Real-time terminal-based video chat with ASCII art conversion
|
Ring consensus state machine implementation. More...
Go to the source code of this file.
Data Structures | |
| struct | election_result_t |
| Election result storage. More... | |
| struct | consensus_state |
| State machine instance. More... | |
Typedefs | |
| typedef struct consensus_state | consensus_state_t |
| State machine instance. | |
Ring consensus state machine implementation.
Definition in file state.c.
| typedef struct consensus_state consensus_state_t |
State machine instance.
| asciichat_error_t consensus_state_add_metrics | ( | consensus_state_t * | state, |
| const participant_metrics_t * | metrics | ||
| ) |
Definition at line 100 of file state.c.
References consensus_state::current_state, consensus_state::metrics, consensus_state::metrics_capacity, and consensus_state::metrics_count.
Referenced by consensus_coordinator_on_stats_update().
| asciichat_error_t consensus_state_collection_complete | ( | consensus_state_t * | state | ) |
Definition at line 125 of file state.c.
References consensus_topology_am_leader(), consensus_state::current_state, and consensus_state::topology.
| asciichat_error_t consensus_state_compute_election | ( | consensus_state_t * | state | ) |
Definition at line 144 of file state.c.
References election_result_t::backup_id, consensus_state::current_state, consensus_state::election_result, election_result_t::host_id, consensus_state::metrics, consensus_state::metrics_count, time_get_realtime_ns(), and election_result_t::timestamp_ns.
| asciichat_error_t consensus_state_create | ( | const uint8_t | my_id[16], |
| const consensus_topology_t * | topology, | ||
| consensus_state_t ** | out_state | ||
| ) |
Definition at line 50 of file state.c.
References consensus_state::current_state, consensus_state::election_result, consensus_state::metrics, consensus_state::metrics_capacity, consensus_state::metrics_count, consensus_state::my_id, and consensus_state::topology.
Referenced by consensus_coordinator_create(), and consensus_coordinator_on_ring_members().
| void consensus_state_destroy | ( | consensus_state_t * | state | ) |
Definition at line 74 of file state.c.
References consensus_state::metrics.
Referenced by consensus_coordinator_destroy(), and consensus_coordinator_on_ring_members().
| consensus_state_machine_t consensus_state_get_current_state | ( | const consensus_state_t * | state | ) |
Definition at line 210 of file state.c.
References consensus_state::current_state.
Referenced by consensus_coordinator_get_current_host(), consensus_coordinator_get_state(), consensus_coordinator_on_collection_start(), consensus_coordinator_on_election_result(), consensus_coordinator_on_ring_members(), consensus_coordinator_on_stats_update(), and consensus_coordinator_process().
| asciichat_error_t consensus_state_get_elected_backup | ( | const consensus_state_t * | state, |
| uint8_t | out_backup_id[16] | ||
| ) |
Definition at line 230 of file state.c.
References election_result_t::backup_id, consensus_state::current_state, and consensus_state::election_result.
Referenced by consensus_coordinator_get_current_host().
| asciichat_error_t consensus_state_get_elected_host | ( | const consensus_state_t * | state, |
| uint8_t | out_host_id[16] | ||
| ) |
Definition at line 217 of file state.c.
References consensus_state::current_state, consensus_state::election_result, and election_result_t::host_id.
Referenced by consensus_coordinator_get_current_host().
| asciichat_error_t consensus_state_get_metric_at | ( | const consensus_state_t * | state, |
| int | index, | ||
| participant_metrics_t * | out_metrics | ||
| ) |
Definition at line 257 of file state.c.
References consensus_state::current_state, consensus_state::metrics, and consensus_state::metrics_count.
| int consensus_state_get_metrics_count | ( | const consensus_state_t * | state | ) |
Definition at line 250 of file state.c.
References consensus_state::metrics_count.
Referenced by consensus_coordinator_get_metrics_count().
| bool consensus_state_is_leader | ( | const consensus_state_t * | state | ) |
Definition at line 243 of file state.c.
References consensus_topology_am_leader(), and consensus_state::topology.
| asciichat_error_t consensus_state_reset_to_idle | ( | consensus_state_t * | state | ) |
Definition at line 197 of file state.c.
References consensus_state::current_state.
Referenced by consensus_coordinator_on_election_result().
| asciichat_error_t consensus_state_start_collection | ( | consensus_state_t * | state | ) |
Definition at line 83 of file state.c.
References consensus_state::current_state, consensus_state::election_result, and consensus_state::metrics_count.
Referenced by consensus_coordinator_on_collection_start().