/**
	hsmCommunicator.h

	This file automatically generated by FSMLang
*/

#ifndef _HSMCOMMUNICATOR_H_
#define _HSMCOMMUNICATOR_H_

#define FSM_VERSION "1.41"

#undef THIS
#define THIS(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

typedef enum HSM_COMMUNICATOR_EVENT {
	 hsmCommunicator_SEND_MESSAGE
	, hsmCommunicator_SESSION_ESTABLISHED
	, hsmCommunicator_SESSION_TIMEOUT
	, hsmCommunicator_noEvent
	, hsmCommunicator_numEvents
	, hsmCommunicator_establishSession_ESTABLISH_SESSION_REQUEST
	, hsmCommunicator_establishSession_STEP0_RESPONSE
	, hsmCommunicator_establishSession_STEP1_RESPONSE
	, hsmCommunicator_establishSession_noEvent
	, hsmCommunicator_sendMessage_SEND_MESSAGE
	, hsmCommunicator_sendMessage_ACK
	, hsmCommunicator_sendMessage_SESSION_ESTABLISHED
	, hsmCommunicator_sendMessage_SESSION_TIMEOUT
	, hsmCommunicator_sendMessage_noEvent
	, hsmCommunicator_numAllEvents
}  HSM_COMMUNICATOR_EVENT;

#undef ACTION_RETURN_TYPE
#define ACTION_RETURN_TYPE HSM_COMMUNICATOR_EVENT

void run_hsmCommunicator(HSM_COMMUNICATOR_EVENT);

typedef struct _hsmCommunicator_struct_ *pHSM_COMMUNICATOR;
extern pHSM_COMMUNICATOR phsmCommunicator;


#endif