/**
hsmCommunicator.h
This file automatically generated by FSMLang
*/
#ifndef _HSMCOMMUNICATOR_H_
#define _HSMCOMMUNICATOR_H_
#include "hsmCommunicator_events.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
typedef enum
{
msg_none
, msg_step0_response
, msg_step1_response
, msg_session_rejected
, msg_ack
} msg_e_t;
typedef struct _queue_str_
{
unsigned queue_count;
} queue_str_t;
#endif
#define FSM_VERSION "1.45.1"
#ifndef NO_CONVENIENCE_MACROS
#undef UFMN
#define UFMN(A) hsmCommunicator_##A
#undef THIS
#define THIS(A) hsmCommunicator_##A
#endif
#undef STATE
#define STATE(A) hsmCommunicator_##A
#undef HSM_COMMUNICATOR
#define HSM_COMMUNICATOR(A) hsmCommunicator_##A
#undef ESTABLISH_SESSION
#define ESTABLISH_SESSION(A) hsmCommunicator_establishSession_##A
#undef SEND_MESSAGE
#define SEND_MESSAGE(A) hsmCommunicator_sendMessage_##A
#undef ACTION_RETURN_TYPE
#define ACTION_RETURN_TYPE HSM_COMMUNICATOR_EVENT_ENUM
typedef struct _hsmCommunicator_MESSAGE_RECEIVED_data_ {
msg_e_t message;
} HSM_COMMUNICATOR_MESSAGE_RECEIVED_DATA, *pHSM_COMMUNICATOR_MESSAGE_RECEIVED_DATA;
typedef union {
HSM_COMMUNICATOR_MESSAGE_RECEIVED_DATA MESSAGE_RECEIVED_data;
} HSM_COMMUNICATOR_EVENT_DATA, *pHSM_COMMUNICATOR_EVENT_DATA;
typedef struct {
HSM_COMMUNICATOR_EVENT_ENUM event;
HSM_COMMUNICATOR_EVENT_DATA event_data;
} HSM_COMMUNICATOR_EVENT, *pHSM_COMMUNICATOR_EVENT;
void run_hsmCommunicator(pHSM_COMMUNICATOR_EVENT);
typedef struct _hsmCommunicator_struct_ *pHSM_COMMUNICATOR;
extern pHSM_COMMUNICATOR phsmCommunicator;
#endif