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