ifw-fcf  5.0.0-pre2
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 
26 namespace 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;
99  ActionsSetup& operator= (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)
ActionsSetup & operator=(const ActionsSetup &)=delete
Disable assignment operator.
std::optional< typename EVENT_TYPE::payload_t > SetupRequest
Definition: actionsSetup.hpp:101
Definition: dataContext.hpp:90
Definition: deviceFacade.hpp:54
Definition: actionMgr.cpp:29