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_NSFramework
19 /// \brief This file has class declaration of the CFrameworkunifiedAction. This is an
20 /// interface class that defines interfaces for implementing action
24 ///////////////////////////////////////////////////////////////////////////////
27 * @file frameworkunified_sm_action.h
28 * @brief \~english This file has class declaration of the CFrameworkunifiedAction. This is an interface class that defines
29 * interfaces for implementing action
32 /** @addtogroup BaseSystem
35 /** @addtogroup native_service
39 /** @addtogroup framework_unified
40 * @ingroup native_service
43 /** @addtogroup framework
44 * @ingroup framework_unified
47 /** @addtogroup statemachine
51 #ifndef __FRAMEWORKUNIFIED_NATIVESERVICES_NSFRAMEWORKCORE_STATEMACHINE_INC_FRAMEWORKUNIFIEDSMACTION_H__ // NOLINT (build/header_guard)
52 #define __FRAMEWORKUNIFIED_NATIVESERVICES_NSFRAMEWORKCORE_STATEMACHINE_INC_FRAMEWORKUNIFIEDSMACTION_H__
54 #include <native_service/frameworkunified_types.h>
55 #include <boost/smart_ptr.hpp>
58 class CFrameworkunifiedState;
61 typedef boost::shared_ptr<CEventData> CEventDataPtr;
63 class CFrameworkunifiedAction {
65 ///////////////////////////////////////////////////////////////////////////////////////////
66 /// \ingroup CFrameworkunifiedAction
67 /// \~english @par Brief
68 /// Constructor for class CFrameworkunifiedAction.
69 /// \~english @param [in] f_strName
70 /// std::string -Name of Action object
72 /// \~english @par Prerequisite
74 /// \~english @par Change of internal state
76 /// \~english @par Conditions of processing failure
78 /// \~english @par Detail
79 /// Constructor of CFrameworkunifiedAction class. Create an object of CFrameworkunifiedAction. \n
80 /// Initialize member value with name designated by f_strName. \n
81 /// \~english @par Classification
83 /// \~english @par Type
85 /// \~english @see ~CFrameworkunifiedAction
86 ///////////////////////////////////////////////////////////////////////////////////////////
87 CFrameworkunifiedAction(std::string f_strName); // NOLINT (readability/nolint)
89 ///////////////////////////////////////////////////////////////////////////////////////////
90 /// \ingroup CFrameworkunifiedAction
91 /// \~english @par Brief
92 /// Destructor for CFrameworkunifiedAction
93 /// \~english @retval none
94 /// \~english @par Preconditons
96 /// \~english @par Change of internal status
98 /// \~english @par Conditions of processing failure
100 /// \~english @par Detail
101 /// Pure virtual function , implemented by child class
102 /// \~english @par Classification
104 /// \~english @par Type
106 /// \~english @see CFrameworkunifiedAction
107 ///////////////////////////////////////////////////////////////////////////////////////////
108 virtual ~CFrameworkunifiedAction() {
111 ////////////////////////////////////////////////////////////////////////////////////////////
112 /// \ingroup CFrameworkunifiedAction
113 /// \~english @par Brief
114 /// Callback function of CFrameworkunifiedAction.(pure virtual function)
115 /// \~english @param [in] f_pSourceState
116 /// CFrameworkunifiedState - pointer of source state
117 /// \~english @param [in] f_pTargetState
118 /// CFrameworkunifiedState - pointer of target state
119 /// \~english @param [in] f_pData
120 /// CEventDataPtr - pointer of event data
121 /// \~english @retval none
122 /// \~english @par Preconditons
124 /// \~english @par Change of internal status
126 /// \~english @par Conditions of processing failure
128 /// \~english @par Detail
129 /// Callback function of CFrameworkunifiedAction.(pure virtual function)
130 /// Implement action by subclass
131 /// \~english @par Classification
133 /// \~english @par Type
135 /// \~english @see none
136 ////////////////////////////////////////////////////////////////////////////////////////////
137 virtual VOID FrameworkunifiedAction(CFrameworkunifiedState *f_pSourceState, CFrameworkunifiedState *f_pTargetState,
138 CEventDataPtr f_pData) = 0;
141 std::string m_strName;
144 #endif /* __FRAMEWORKUNIFIED_NATIVESERVICES_NSFRAMEWORKCORE_STATEMACHINE_INC_FRAMEWORKUNIFIEDSMACTION_H__ */ // NOLINT (build/header_guard)