Add gitlab issue/merge request templates
[staging/basesystem.git] / service / native / framework_unified / client / include / native_service / frameworkunified_sm_transition.h
1 /*
2  * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
3  *
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
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
16
17 ///////////////////////////////////////////////////////////////////////////////
18 /// \ingroup  tag_StateMachine
19 /// \brief
20 ///
21 /// This file has the CFrameworkunifiedTransition class definitions.This class provides the
22 /// interface for reacting local transition and external transition
23 ///
24 ///////////////////////////////////////////////////////////////////////////////
25 //@{
26 /**
27  * @file frameworkunified_sm_transition.h
28  * @brief \~english This file has the CFrameworkunifiedTransition class definitions.
29  *
30  */
31 /** @addtogroup BaseSystem
32  *  @{
33  */
34 /** @addtogroup native_service
35  *  @ingroup BaseSystem
36  *  @{
37  */
38 /** @addtogroup framework_unified
39  *  @ingroup native_service
40  *  @{
41  */
42 /** @addtogroup framework
43  *  @ingroup framework_unified
44  *  @{
45  */
46 /** @addtogroup statemachine
47  *  @ingroup framework
48  *  @{
49  */
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__
52
53 ///////////////////////////////////////////////////////////////////////////////////////////////////
54 // Include Files
55 ///////////////////////////////////////////////////////////////////////////////////////////////////
56
57 #include <native_service/frameworkunified_sm_reaction.h>
58
59 class CFrameworkunifiedState;
60 class CFrameworkunifiedEventData;
61
62 ///////////////////////////////////////////////////////////////////////////////////////////////////
63 /// This class provides the interface for reacting local transition and external transition
64 ///////////////////////////////////////////////////////////////////////////////////////////////////
65 class CFrameworkunifiedTransition : public CFrameworkunifiedReaction {
66  public :
67
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
76   ///       - None.
77   /// \~english @par Change of the internal state
78   ///      - m_pTargetState = f_pTargetState
79   /// \~english @par Causes of failures
80   ///       None
81   /// \~english @par Classification
82   ///       Public
83   /// \~english @par Type
84   ///       sync only
85   /// \~english @par Detail
86   ///       CFrameworkunifiedTransition constructor, for create CFrameworkunifiedTransition object
87   /// \~english @see
88   ////////////////////////////////////////////////////////////////////////////////////
89   CFrameworkunifiedTransition(CFrameworkunifiedState *f_pTargetState);  // NOLINT  (readability/nolint)
90
91   /////////////////////////////////////////////////////////////////////////////////////
92   /// \ingroup CFrameworkunifiedTransition
93   /// \~english @par Summary
94   ///       CFrameworkunifiedTransition destructor
95   /// \~english @param None
96   /// \~english @retval None
97   /// \~english @par Preconditions
98   ///       - None.
99   /// \~english @par Change of the internal state
100   ///      None
101   /// \~english @par Causes of failures
102   ///       None
103   /// \~english @par Classification
104   ///       Public
105   /// \~english @par Type
106   ///       sync only
107   /// \~english @par Detail
108   ///       CFrameworkunifiedTransition destructor, for destroy CFrameworkunifiedTransition object
109   /// \~english @see
110   ////////////////////////////////////////////////////////////////////////////////////
111   virtual ~CFrameworkunifiedTransition();
112
113   /////////////////////////////////////////////////////////////////////////////////////
114   /// \ingroup CFrameworkunifiedTransition
115   /// \~english @par Summary
116   ///       virtual fuction
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
123   ///       - None.
124   /// \~english @par Change of the internal state
125   ///      None
126   /// \~english @par Causes of failures
127   ///       None
128   /// \~english @par Classification
129   ///       Public
130   /// \~english @par Type
131   ///       sync only
132   /// \~english @par Detail
133   ///       virtual function , implement by child class
134   /// \~english @see
135   ////////////////////////////////////////////////////////////////////////////////////
136   virtual CFrameworkunifiedState *FrameworkunifiedReaction(CFrameworkunifiedState *f_pSourceState, CEventDataPtr f_pData) = 0;
137
138  protected :
139
140   /// Pointer to the target state of transition
141   CFrameworkunifiedState *m_pTargetState;
142 };
143
144 #endif  // __FRAMEWORKUNIFIED_NATIVESERVICES_NATIVESERVICES_INC_FRAMEWORK_STATEMACHINE_FRAMEWORKUNIFIED_SM_TRANSITION_H__  // NOLINT  (build/header_guard)
145 /** @}*/
146 /** @}*/
147 /** @}*/
148 /** @}*/
149 /** @}*/
150 //@}