/****************************************************************************
 Header file for Request Ball State Machine
 ****************************************************************************/

#ifndef SMRequestBall_H
#define SMRequestBall_H

// Event Definitions
#include "SMEvents.h"

// typedefs for the states
typedef enum {
	Request_Querying,
	Request_Waiting,
	Request_MightBeEmpty,
	Request_Empty
} RequestState_t ;

// Public Function Prototypes

//State machine functions
Event_t RunRequestBallSM( Event_t CurrentEvent );
void StartRequestBallSM ( Event_t CurrentEvent );
RequestState_t QueryRequestBallSM ( void );

//Public functions

/****************************************************************************
 Function
 QueryRequestTimeout

 Parameters
 none

 Returns
 1 if state has timed out, 0 otherwise

 Description
 Checks if timeout has occured for current state.
 ****************************************************************************/
unsigned char QueryRequestTimeout (void);

#endif /*SMRequestBall_H */