23 #ifndef JABBERWERX_UTIL_STATES_H
24 #define JABBERWERX_UTIL_STATES_H
27 #include "../eventing.h"
36 #define JW_STATES_EVENT "stateChanged"
42 #define JW_STATES_NAME(num) #num
JABBERWERX_API void * jw_states_event_data_get_extra(jw_states_event_data *event_data)
#define JABBERWERX_API
Definition: basics.h:32
This file contains JabberWerxC allocation related functions and jw_pool objects.
void(* jw_event_notify_callback)(jw_event_data evt, void *arg)
Definition: eventing.h:75
JABBERWERX_API const char * jw_states_get_name_for(jw_states *states, jw_state_val state_val)
void(* jw_data_free_func)(void *ptr)
Definition: mem.h:85
struct _jw_states jw_states
Definition: states.h:49
JABBERWERX_API bool jw_states_register_for(jw_states *states, jw_state_val current, jw_event *evt, jw_event_notify_callback cb, void *arg, jw_err *err)
JABBERWERX_API jw_state_val jw_states_get_current(jw_states *states)
JABBERWERX_API jw_state_val jw_states_event_data_get_prev(jw_states_event_data *event_data)
JABBERWERX_API bool jw_states_change(jw_states *states, jw_state_val next, void *extra, jw_data_free_func extra_cleaner, jw_err *err)
JABBERWERX_API jw_event * jw_states_event(jw_states *states, const char *name)
struct jw_workq_t jw_workq
Definition: workq.h:30
JABBERWERX_API void jw_states_destroy(jw_states *states)
JABBERWERX_API jw_state_val jw_states_event_data_get_next(jw_states_event_data *event_data)
uint8_t jw_state_val
Definition: states.h:46
This file contains JabberWerxC Work Queue types and functions.
JABBERWERX_API bool jw_states_create(const char **names, jw_state_val initial, jw_workq *workq, jw_states **states, jw_err *err)
struct _jw_states_event_data jw_states_event_data
Definition: states.h:55
struct _jw_event_t jw_event
Definition: eventing.h:39