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