ifw-fcf  2.0.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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 
22 
23 #include <scxml4cpp/Context.h>
24 
25 namespace 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(rad::AnyEvent const& last_event);
60 
68  virtual void Stop(rad::AnyEvent const& last_event);
69 
77  virtual void Done(rad::AnyEvent const& last_event);
78 
86  virtual void Error(rad::AnyEvent const& last_event);
87 
95  virtual void Timeout(rad::AnyEvent const& last_event);
96 
97  ActionsSetup(const ActionsSetup&) = delete;
98  ActionsSetup& operator= (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  };
114  } // namespace common
115  } // namespace devmgr
116 }
117 
118 #include "actionsSetup.ipp"
119 #endif // FCF_DEVMGR_COMMON_ACTIONS_SETUP_HPP_
std::pair< std::string, std::shared_ptr< scxml4cpp::Activity >> ActivityPair
Definition: actionsSetup.hpp:103
Definition: actionsSetup.hpp:35
virtual void Timeout(rad::AnyEvent const &last_event)
Definition: deviceFacade.hpp:39
virtual void Error(rad::AnyEvent const &last_event)
std::pair< std::string, SetupRequest > RequestPair
Definition: actionsSetup.hpp:104
std::map< std::string, SetupRequest > RequestMap
Definition: actionsSetup.hpp:102
std::optional< typename EVENT_TYPE::payload_t > SetupRequest
Definition: actionsSetup.hpp:100
virtual void Done(rad::AnyEvent const &last_event)
virtual void Stop(rad::AnyEvent const &last_event)
ActionsSetup(std::string name, boost::asio::io_service &ios, rad::SMAdapter &sm, DataContext &data_ctx, DeviceFacade &device_facade)
Definition: dataContext.hpp:81
virtual void Start(rad::AnyEvent const &last_event)
ActionsSetup & operator=(const ActionsSetup &)=delete
Disable assignment operator.
std::map< std::string, std::shared_ptr< scxml4cpp::Activity >> ActivityMap
Definition: actionsSetup.hpp:101