2 * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 ///////////////////////////////////////////////////////////////////////////////
18 /// \ingroup tag_StateMachine
21 /// This file has the CFrameworkunifiedLocalTransition class definitions. CFrameworkunifiedLocalTransition is derived
22 /// from CFrameworkunifiedTransition class.This class provides the interface for local transition over event
23 ///////////////////////////////////////////// //////////////////////////////////
26 * @file frameworkunified_sm_localtransition.h
27 * @brief \~english This file has the CFrameworkunifiedLocalTransition class definitions. CFrameworkunifiedLocalTransition is derived
28 * from CFrameworkunifiedTransition class.
31 /** @addtogroup BaseSystem
34 /** @addtogroup native_service
38 /** @addtogroup framework_unified
39 * @ingroup native_service
42 /** @addtogroup framework
43 * @ingroup framework_unified
46 /** @addtogroup statemachine
50 #ifndef _FRAMEWORKUNIFIEDLOCALTRANSITIONS_H // NOLINT (build/header_guard)
51 #define _FRAMEWORKUNIFIEDLOCALTRANSITIONS_H
53 ///////////////////////////////////////////////////////////////////////////////////////////////////
55 ///////////////////////////////////////////////////////////////////////////////////////////////////
57 #include <native_service/frameworkunified_sm_transition.h>
59 class CFrameworkunifiedEventData;
60 ///////////////////////////////////////////////////////////////////////////////////////////////////
61 /// This class provides the interface for local transition over event
62 ///////////////////////////////////////////////////////////////////////////////////////////////////
63 class CFrameworkunifiedLocalTransition : public CFrameworkunifiedTransition {
66 /////////////////////////////////////////////////////////////////////////////////////
67 /// \ingroup CFrameworkunifiedLocalTransition
68 /// \~english @par Brief
69 /// CFrameworkunifiedLocalTransition constructor
70 /// \~english @param [in] f_pTargetState
71 /// CFrameworkunifiedState *f_pTargetState - target state
72 /// \~english @retval None
73 /// \~english @par Prerequisite
75 /// \~english @par Change of internal state
77 /// \~english @par Conditions of processing failure
79 /// \~english @par Detail
80 /// Constructor of CFrameworkunifiedLocalTransition, to create CFrameworkunifiedLocalTransition object
81 /// \~english @par Classification
83 /// \~english @par Type
87 /////////////////////////////////////////////////////////////////////////////////////
88 CFrameworkunifiedLocalTransition(CFrameworkunifiedState *f_pTargetState); // NOLINT (readability/nolint)
90 /////////////////////////////////////////////////////////////////////////////////////
91 /// \ingroup CFrameworkunifiedLocalTransition
92 /// \~english @par Brief
93 /// CFrameworkunifiedLocalTransition destructor
94 /// \~english @param None
95 /// \~english @retval None
96 /// \~english @par Prerequisite
98 /// \~english @par Change of internal state
100 /// \~english @par Conditions of processing failure
102 /// \~english @par Detail
103 /// CFrameworkunifiedLocalTransition destructor, for destory CFrameworkunifiedLocalTransition object
104 /// \~english @par Classification
106 /// \~english @par Type
110 /////////////////////////////////////////////////////////////////////////////////////
111 virtual ~CFrameworkunifiedLocalTransition();
113 /////////////////////////////////////////////////////////////////////////////////////
114 /// \ingroup CFrameworkunifiedLocalTransition
115 /// \~english @par Brief
116 /// reaction for location transition
117 /// \~english @param None
118 /// \~english @retval None
119 /// \~english @par Prerequisite
121 /// \~english @par Change of internal state
123 /// \~english @par Conditions of processing failure
125 /// \~english @par Detail
126 /// For local transition from inner
127 /// state to outer state exit of the inner state is invoked, but entry of outer state is not
128 /// invoked and from outer state to inner state entry of the inner state is invoked but exit of
129 /// outer state is not invoked
130 /// \~english @par Classification
132 /// \~english @par Type
136 /////////////////////////////////////////////////////////////////////////////////////
137 ///////////////////////////////////////////////////////////////////////////////////////////
138 /// FrameworkunifiedReaction
139 /// The reaction for an event is implemented in this function. For local transition from inner
140 /// state to outer state exit of the inner state is invoked, but entry of outer state is not
141 /// invoked and from outer state to inner state entry of the inner state is invoked but exit of
142 /// outer state is not invoked
144 /// \param [in] f_pSourceState
145 /// CFrameworkunifiedState* - Source state in which reaction is being executed
147 /// \param [in] f_pData
148 /// CEventDataPtr - event data
150 /// \return ActiveState
151 /// CFrameworkunifiedState* - Returns Active state
153 ///////////////////////////////////////////////////////////////////////////////////////////
154 virtual CFrameworkunifiedState *FrameworkunifiedReaction(CFrameworkunifiedState *f_pSourceState, CEventDataPtr f_pData);
157 #endif // _FRAMEWORKUNIFIEDLOCALTRANSITIONS_H // NOLINT (build/header_guard)