/**
hsmCommunicator_submach.h
This file automatically generated by FSMLang
*/
#ifndef _HSMCOMMUNICATOR_SUBMACH_H_
#define _HSMCOMMUNICATOR_SUBMACH_H_
#include "hsmCommunicator.h"
#ifndef HSM_COMMUNICATOR_NATIVE_PROLOG
#define HSM_COMMUNICATOR_NATIVE_PROLOG
#ifndef DBG_PRINTF
#include <stdio.h>
#define DBG_PRINTF(...) printf(__VA_ARGS__); printf("\n")
#endif
extern unsigned queue_count;
#endif
/* Sub Machine Declarations */
typedef enum {
establishSession_e
, hsmCommunicator_firstSubMachine = establishSession_e
, sendMessage_e
, hsmCommunicator_numSubMachines
} HSM_COMMUNICATOR_SUB_MACHINES;
typedef HSM_COMMUNICATOR_EVENT (*HSM_COMMUNICATOR_SUB_MACHINE_FN)(HSM_COMMUNICATOR_EVENT);
typedef struct _hsmCommunicator_sub_fsm_if_ HSM_COMMUNICATOR_SUB_FSM_IF, *pHSM_COMMUNICATOR_SUB_FSM_IF;
struct _hsmCommunicator_sub_fsm_if_
{
HSM_COMMUNICATOR_EVENT first_event;
HSM_COMMUNICATOR_EVENT last_event;
HSM_COMMUNICATOR_SUB_MACHINE_FN subFSM;
};
/* Some sub-machines share parent events. */
typedef struct _hsmCommunicator_shared_event_str_ HSM_COMMUNICATOR_SHARED_EVENT_STR, *pHSM_COMMUNICATOR_SHARED_EVENT_STR;
struct _hsmCommunicator_shared_event_str_
{
HSM_COMMUNICATOR_EVENT event;
pHSM_COMMUNICATOR_SUB_FSM_IF psub_fsm_if;
};
extern HSM_COMMUNICATOR_EVENT hsmCommunicator_pass_shared_event(pHSM_COMMUNICATOR_SHARED_EVENT_STR[]);
extern HSM_COMMUNICATOR_SHARED_EVENT_STR sendMessage_share_hsmCommunicator_SEND_MESSAGE_str;
extern pHSM_COMMUNICATOR_SHARED_EVENT_STR sharing_hsmCommunicator_SEND_MESSAGE[];
extern HSM_COMMUNICATOR_SHARED_EVENT_STR establishSession_share_hsmCommunicator_MESSAGE_RECEIVED_str;
extern HSM_COMMUNICATOR_SHARED_EVENT_STR sendMessage_share_hsmCommunicator_MESSAGE_RECEIVED_str;
extern pHSM_COMMUNICATOR_SHARED_EVENT_STR sharing_hsmCommunicator_MESSAGE_RECEIVED[];
#endif