00001 // 00002 // Copyright 2004 P&P Software GmbH - All Rights Reserved 00003 // 00004 // DC_FsmEvent.cpp 00005 // 00006 // Version 1.0 00007 // Date 02.10.02 00008 // Author A. Pasetti (P&P Software) 00009 00010 #include "../GeneralInclude/CompilerSwitches.h" 00011 #include "../GeneralInclude/DebugSupport.h" 00012 #include "../GeneralInclude/ClassId.h" 00013 #include "../GeneralInclude/Constants.h" 00014 #include "../Base/CC_RootObject.h" 00015 #include "DC_FsmEvent.h" 00016 #include "CC_FSM.h" 00017 00018 DC_FsmEvent::DC_FsmEvent(void) { 00019 pTargetFsm = pNULL; 00020 targetState = -1; 00021 setClassId(ID_FSMEVENT); 00022 } 00023 00024 void DC_FsmEvent::setTargetFsm(CC_FSM* pFsm) { 00025 assert( pFsm != pNULL ); 00026 pTargetFsm = pFsm; 00027 } 00028 00029 void DC_FsmEvent::setTargetState(TD_FsmStateIndex stateIndex) { 00030 assert( stateIndex >= 0 ); 00031 targetState = stateIndex; 00032 } 00033 00034 CC_FSM* DC_FsmEvent::getTargetFsm(void) const { 00035 assert( pTargetFsm != pNULL ); 00036 return pTargetFsm; 00037 } 00038 00039 TD_FsmStateIndex DC_FsmEvent::getTargetState(void) const { 00040 assert( targetState >= 0 ); 00041 return targetState; 00042 } 00043 00044 bool DC_FsmEvent::isObjectConfigured(void) { 00045 return (PunctualAction::isObjectConfigured() && targetState>=0 && pTargetFsm!=pNULL && 00046 targetState<pTargetFsm->getNumberOfStates()); 00047 } 00048 00049 TD_ActionOutcome DC_FsmEvent::doAction(void) { 00050 pTargetFsm->makeTransitionRequest(targetState); 00051 return ACTION_SUCCESS; 00052 }