3 // state machine for DeviceState
7 #include "../asn.1/DeviceGroup-Protocol.h"
15 typedef pEp_identity * Identity;
16 typedef stringlist_t * Stringlist;
17 typedef union _param { Identity partner; stringlist_t *keylist; } param_t;
21 typedef enum _fsm_error {
24 invalid_condition = -4,
30 int storedGroupKeys(PEP_SESSION session);
31 int keyElectionWon(PEP_SESSION session, Identity partner);
35 typedef enum _DeviceState_state {
36 DeviceState_state_NONE = 0,
46 typedef enum _DeviceState_event {
47 DeviceState_event_NONE = 0,
63 PEP_STATUS sendBeacon(PEP_SESSION session, DeviceState_state state, Identity partner, void *extra);
64 PEP_STATUS sendHandshakeRequest(PEP_SESSION session, DeviceState_state state, Identity partner, void *extra);
65 PEP_STATUS showHandshake(PEP_SESSION session, DeviceState_state state, Identity partner, void *extra);
66 PEP_STATUS reject(PEP_SESSION session, DeviceState_state state, Identity partner, void *extra);
67 PEP_STATUS storeGroupKeys(PEP_SESSION session, DeviceState_state state, Identity partner, void *extra);
68 PEP_STATUS sendGroupKeys(PEP_SESSION session, DeviceState_state state, Identity partner, void *extra);
72 PEP_STATUS receive_DeviceState_msg(PEP_SESSION session, message *msg);
76 DeviceState_state fsm_DeviceState(
78 DeviceState_state state,
79 DeviceState_event event,
86 DYNAMIC_API PEP_STATUS fsm_DeviceState_inject(
88 DeviceState_event event,