hsmCommunicator_submach.hΒΆ

/**
        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