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 CFrameworkunifiedTransition class definitions.This class provides the
22 /// interface for reacting local transition and external transition
24 ///////////////////////////////////////////////////////////////////////////////
27 * @file frameworkunified_sm_transition.h
28 * @brief \~english This file has the CFrameworkunifiedTransition class definitions.
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 __FRAMEWORKUNIFIED_NATIVESERVICES_NATIVESERVICES_INC_FRAMEWORK_STATEMACHINE_FRAMEWORKUNIFIED_SM_TRANSITION_H__ // NOLINT (build/header_guard)
51 #define __FRAMEWORKUNIFIED_NATIVESERVICES_NATIVESERVICES_INC_FRAMEWORK_STATEMACHINE_FRAMEWORKUNIFIED_SM_TRANSITION_H__
53 ///////////////////////////////////////////////////////////////////////////////////////////////////
55 ///////////////////////////////////////////////////////////////////////////////////////////////////
57 #include <native_service/frameworkunified_sm_reaction.h>
59 class CFrameworkunifiedState;
60 class CFrameworkunifiedEventData;
62 ///////////////////////////////////////////////////////////////////////////////////////////////////
63 /// This class provides the interface for reacting local transition and external transition
64 ///////////////////////////////////////////////////////////////////////////////////////////////////
65 class CFrameworkunifiedTransition : public CFrameworkunifiedReaction {
68 /////////////////////////////////////////////////////////////////////////////////////
69 /// \ingroup CFrameworkunifiedTransition
70 /// \~english @par Summary
71 /// CFrameworkunifiedTransition constructor
72 /// \~english @param [in] f_pTargetState
73 /// CFrameworkunifiedState *f_pTargetState - set m_pTargetState value
74 /// \~english @retval None
75 /// \~english @par Preconditions
77 /// \~english @par Change of the internal state
78 /// - m_pTargetState = f_pTargetState
79 /// \~english @par Causes of failures
81 /// \~english @par Classification
83 /// \~english @par Type
85 /// \~english @par Detail
86 /// CFrameworkunifiedTransition constructor, for create CFrameworkunifiedTransition object
88 ////////////////////////////////////////////////////////////////////////////////////
89 CFrameworkunifiedTransition(CFrameworkunifiedState *f_pTargetState); // NOLINT (readability/nolint)
91 /////////////////////////////////////////////////////////////////////////////////////
92 /// \ingroup CFrameworkunifiedTransition
93 /// \~english @par Summary
94 /// CFrameworkunifiedTransition destructor
95 /// \~english @param None
96 /// \~english @retval None
97 /// \~english @par Preconditions
99 /// \~english @par Change of the internal state
101 /// \~english @par Causes of failures
103 /// \~english @par Classification
105 /// \~english @par Type
107 /// \~english @par Detail
108 /// CFrameworkunifiedTransition destructor, for destroy CFrameworkunifiedTransition object
110 ////////////////////////////////////////////////////////////////////////////////////
111 virtual ~CFrameworkunifiedTransition();
113 /////////////////////////////////////////////////////////////////////////////////////
114 /// \ingroup CFrameworkunifiedTransition
115 /// \~english @par Summary
117 /// \~english @param [in] f_pSourceState
118 /// CFrameworkunifiedState *f_pSourceState - source state
119 /// \~english @param [in] f_pData
120 /// CEventDataPtr f_pData - event data
121 /// \~english @retval CFrameworkunifiedState* depend on implement class
122 /// \~english @par Preconditions
124 /// \~english @par Change of the internal state
126 /// \~english @par Causes of failures
128 /// \~english @par Classification
130 /// \~english @par Type
132 /// \~english @par Detail
133 /// virtual function , implement by child class
135 ////////////////////////////////////////////////////////////////////////////////////
136 virtual CFrameworkunifiedState *FrameworkunifiedReaction(CFrameworkunifiedState *f_pSourceState, CEventDataPtr f_pData) = 0;
140 /// Pointer to the target state of transition
141 CFrameworkunifiedState *m_pTargetState;
144 #endif // __FRAMEWORKUNIFIED_NATIVESERVICES_NATIVESERVICES_INC_FRAMEWORK_STATEMACHINE_FRAMEWORKUNIFIED_SM_TRANSITION_H__ // NOLINT (build/header_guard)