41#ifndef __OPENLCB_OPENLCB_LOGIN_STATEMACHINE__
42#define __OPENLCB_OPENLCB_LOGIN_STATEMACHINE__
74 bool (*handle_outgoing_openlcb_message)(void);
77 bool (*handle_try_reenumerate)(void);
80 bool (*handle_try_enumerate_first_node)(void);
83 bool (*handle_try_enumerate_next_node)(void);
void OpenLcbLoginStateMachine_process(openlcb_login_statemachine_info_t *openlcb_statemachine_info)
Dispatches to the handler matching node->run_state. Exposed for unit testing.
Definition openlcb_login_statemachine.c:138
bool OpenLcbLoginStatemachine_handle_outgoing_openlcb_message(void)
Tries to send the pending message; returns true if one was pending. Exposed for unit testing.
Definition openlcb_login_statemachine.c:194
bool OpenLcbLoginStatemachine_handle_try_enumerate_next_node(void)
Advances to the next node needing login. Exposed for unit testing.
Definition openlcb_login_statemachine.c:284
void OpenLcbLoginStateMachine_initialize(const interface_openlcb_login_state_machine_t *interface_openlcb_login_state_machine)
Stores the callback interface. Call once at startup after OpenLcbLoginMessageHandler_initialize().
Definition openlcb_login_statemachine.c:108
bool OpenLcbLoginStatemachine_handle_try_reenumerate(void)
Re-enters the state processor if the enumerate flag is set. Exposed for unit testing.
Definition openlcb_login_statemachine.c:222
void OpenLcbLoginMainStatemachine_run(void)
Runs one non-blocking step of login processing. Call from main loop.
Definition openlcb_login_statemachine.c:320
bool OpenLcbLoginStatemachine_handle_try_enumerate_first_node(void)
Starts enumeration from the first node if none is active. Exposed for unit testing.
Definition openlcb_login_statemachine.c:247
openlcb_login_statemachine_info_t * OpenLcbLoginStatemachine_get_statemachine_info(void)
Returns pointer to internal static state machine info. For unit testing only — do not modify.
Definition openlcb_login_statemachine.c:353
Core type definitions, structures, and configuration constants for the OpenLCB library.
Callback interface for the login state machine. All pointers are REQUIRED unless noted....
Definition openlcb_login_statemachine.h:48
Login state machine context.
Definition openlcb_types.h:771
Core OpenLCB message structure.
Definition openlcb_types.h:480
OpenLCB virtual node.
Definition openlcb_types.h:679