wlmaker
Loading...
Searching...
No Matches
fsm.h
Go to the documentation of this file.
1/* ========================================================================= */
21#ifndef __WLMTK_FSM_H__
22#define __WLMTK_FSM_H__
23
24#include <libbase/libbase.h>
25#include <stdbool.h>
26#include <stddef.h>
27
28struct _wlmtk_fsm_t;
29
30#ifdef __cplusplus
31extern "C" {
32#endif // __cplusplus
33
36
38typedef struct {
40 int state;
42 int event;
46 bool (*handler)(wlmtk_fsm_t *fsm_ptr, void *ud_ptr);
48
56
58#define WLMTK_FSM_TRANSITION_SENTINEL { \
59 .state = -1, \
60 .event = -1, \
61 .to_state = -1, \
62 .handler = NULL, \
63 }
64
73 wlmtk_fsm_t *fsm_ptr,
74 const wlmtk_fsm_transition_t *transitions,
75 int initial_state);
76
92 wlmtk_fsm_t *fsm_ptr,
93 int event,
94 void *ud_ptr);
95
97extern const bs_test_case_t wlmtk_fsm_test_cases[];
98
99#ifdef __cplusplus
100} // extern "C"
101#endif // __cplusplus
102
103#endif /* __WLMTK_FSM_H__ */
104/* == End of fsm.h ====================================================== */
bool wlmtk_fsm_event(wlmtk_fsm_t *fsm_ptr, int event, void *ud_ptr)
Definition fsm.c:39
const bs_test_case_t wlmtk_fsm_test_cases[]
Definition fsm.c:64
void wlmtk_fsm_init(wlmtk_fsm_t *fsm_ptr, const wlmtk_fsm_transition_t *transitions, int initial_state)
Definition fsm.c:29
Definition fsm.h:50
int state
Definition fsm.h:54
const wlmtk_fsm_transition_t * transitions
Definition fsm.h:52
Definition fsm.h:38
int event
Definition fsm.h:42
int to_state
Definition fsm.h:44
int state
Definition fsm.h:40