/*
** Copyright (C) 1999 Microsoft Corporation. All Rights Reserved.
**
** File: conditionalaction.h
**
** Author:
**
** Description:
** Header file for the training library "conditionalaction" interface.
**
** History:
*/
#ifndef _CONDITIONAL_ACTION_H_
#define _CONDITIONAL_ACTION_H_
#ifndef _CONDITION_H_
#include "Condition.h"
#endif //_CONDITION_H_
#ifndef _ACTION_H_
#include "Action.h"
#endif //_ACTION_H_
namespace Training
{
//------------------------------------------------------------------------------
// class definitions
//------------------------------------------------------------------------------
class ConditionalAction : public Condition
{
public:
enum {IMMEDIATE_EXECUTION = true, DELAYED_EXECUTION = false};
public:
/* void */ ConditionalAction (Condition* pcondition, Action* paction, bool bImmediateExecute = IMMEDIATE_EXECUTION, bool bRunOnce = false); //AEM 7.9.07 Added parameter to only allow the conditional action to be executed once
virtual /* void */ ~ConditionalAction (void);
virtual bool Start (void);
virtual void Stop (void);
virtual bool Evaluate (void);
protected:
Condition* m_pCondition;
Action* m_pAction;
bool m_bImmediateExecute;
bool m_bExecute;
bool m_bRunOnce;
bool m_bRanOnce;
};
//------------------------------------------------------------------------------
}
#endif //_CONDITIONAL_ACTION_H_