ifw-fcf 8.0.2
 
Loading...
Searching...
No Matches
actionsSetup.hpp
Go to the documentation of this file.
1
7
8#ifndef FCF_DEVMGR_COMMON_ACTIONS_SETUP_HPP_
9#define FCF_DEVMGR_COMMON_ACTIONS_SETUP_HPP_
10
11#include <ifw/fcf/devmgr/common/events.rad.hpp>
12
13#include <rad/actionGroup.hpp>
14#include <rad/smAdapter.hpp>
15#include <rad/mal/request.hpp>
16#include <rad/mal/requestor.hpp>
17#include <rad/activity.hpp>
18#include <rad/mal/subscriber.hpp>
19#include <rad/mal/utils.hpp>
20#include <ifw/core/utils/bat/logger.hpp>
21
22#include <scxml4cpp/Context.h>
23
24
25namespace ifw::fcf {
26 namespace devmgr {
27 namespace common {
28
29 class DataContext;
30 class DeviceFacade;
34 template<typename EVENT_TYPE, typename EXCEPTION_TYPE>
35 class ActionsSetup : public rad::ActionGroup
36 {
37 public:
47 ActionsSetup(std::string name,
48 boost::asio::io_service& ios,
49 rad::SMAdapter& sm,
50 DataContext& data_ctx,
51 DeviceFacade& device_facade);
52
59 virtual void Start(scxml4cpp::Context* c);
60
68 virtual void Stop(scxml4cpp::Context* c);
69
77 virtual void Done(scxml4cpp::Context* c);
78
86 virtual void Error(scxml4cpp::Context* c);
87
95 virtual void Timeout(scxml4cpp::Context* c);
96
97 ActionsSetup(const ActionsSetup&) = delete;
99
100 using SetupRequest = std::optional<typename EVENT_TYPE::payload_t>;
101 using ActivityMap = std::map<std::string,std::shared_ptr<scxml4cpp::Activity>>;
102 using RequestMap = std::map<std::string, SetupRequest>;
103 using ActivityPair = std::pair<std::string, std::shared_ptr<scxml4cpp::Activity>>;
104 using RequestPair = std::pair<std::string, SetupRequest>;
105
106 private:
107 boost::asio::io_service& m_io_service;
108 rad::SMAdapter& m_sm;
109 DataContext& m_data_ctx;
110 DeviceFacade& m_device_facade;
111 ActivityMap m_task_map;
112 RequestMap m_request_map;
113 log4cplus::Logger m_logger;
114 };
115 } // namespace common
116 } // namespace devmgr
117}
118
119#include "actionsSetup.ipp"
120#endif // FCF_DEVMGR_COMMON_ACTIONS_SETUP_HPP_
virtual void Stop(scxml4cpp::Context *c)
ActionsSetup & operator=(const ActionsSetup &)=delete
Disable assignment operator.
std::map< std::string, std::shared_ptr< scxml4cpp::Activity > > ActivityMap
Definition actionsSetup.hpp:101
std::pair< std::string, std::shared_ptr< scxml4cpp::Activity > > ActivityPair
Definition actionsSetup.hpp:103
std::optional< typename EVENT_TYPE::payload_t > SetupRequest
Definition actionsSetup.hpp:100
virtual void Error(scxml4cpp::Context *c)
virtual void Done(scxml4cpp::Context *c)
std::pair< std::string, SetupRequest > RequestPair
Definition actionsSetup.hpp:104
virtual void Timeout(scxml4cpp::Context *c)
ActionsSetup(std::string name, boost::asio::io_service &ios, rad::SMAdapter &sm, DataContext &data_ctx, DeviceFacade &device_facade)
std::map< std::string, SetupRequest > RequestMap
Definition actionsSetup.hpp:102
ActionsSetup(const ActionsSetup &)=delete
Disable copy constructor.
virtual void Start(scxml4cpp::Context *c)
Definition dataContext.hpp:86
Definition deviceFacade.hpp:59
ActionMgr class source file.
Definition actionMgr.cpp:28
actuatorLcsIf class header file.
Definition actionMgr.cpp:28
ActionsEnable class source file.
Definition actionMgr.cpp:28