ifw  0.0.1-dev
 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 DEVMGR_COMMON_ACTION_SETUP_HPP_
9 #define DEVMGR_COMMON_ACTION_SETUP_HPP_
10 
11 #include <rad/ActionGroup.hpp>
12 #include <rad/Dispatcher.hpp>
13 #include <rad/MsgReplier.hpp>
14 #include <rad/SMRequestor.hpp>
15 #include <rad/TopicSub.hpp>
16 #include <rad/Activity.hpp>
17 #include <scxml4cpp/Context.h>
18 
19 #include <devmgr/common/events.rad.hpp>
20 
21 namespace devmgr {
22  namespace common {
23 
24  class DataContext;
25  class DeviceFacade;
46  class ActionsSetup : public rad::ActionGroup
47  {
48  public:
57  ActionsSetup(boost::asio::io_service& ios,
58  rad::SMAdapter& sm,
59  rad::Dispatcher& dispatcher,
60  rad::MsgReplier& msg_replier,
61  DataContext& data_ctx,
62  DeviceFacade& device_facade);
63 
68  virtual ~ActionsSetup();
69 
81  void Start(rad::AnyEvent const& lastEvent);
82 
90  void Stop(rad::AnyEvent const& lastEvent);
91 
99  void Done(rad::AnyEvent const& lastEvent);
100 
108  void Timeout(rad::AnyEvent const& lastEvent);
109 
117  void Error(rad::AnyEvent const& lastEvent);
118 
119  ActionsSetup(const ActionsSetup&) = delete;
120  ActionsSetup& operator= (const ActionsSetup&) = delete;
121 
122  using ActivityMap = std::map<std::string,std::shared_ptr<scxml4cpp::Activity>>;
123  using ActivityPair = std::pair<std::string, std::shared_ptr<scxml4cpp::Activity>>;
124 
125  private:
126  boost::asio::io_service& m_ios;
127  rad::SMAdapter& m_sm;
128  rad::Dispatcher& m_dispatcher;
129  rad::MsgReplier& m_msg_replier;
131  rad::TopicSub m_subscriber;
132  DataContext& m_data_context;
133  DeviceFacade& m_device_facade;
134  ActivityMap m_task_map;
135  };
136  }
137 } // namespace devmgr::Common
138 
139 #endif // DEVMGR_COMMON_ACTION_SETUP_HPP_
Definition: MsgReplier.hpp:29
Definition: TopicSub.hpp:28
std::pair< std::string, std::shared_ptr< scxml4cpp::Activity >> ActivityPair
Definition: actionsSetup.hpp:123
void Done(rad::AnyEvent const &lastEvent)
Definition: actionsSetup.cpp:125
void Start(rad::AnyEvent const &lastEvent)
Implementation of the Start callback.
Definition: actionsSetup.cpp:68
void Timeout(rad::AnyEvent const &lastEvent)
Definition: actionsSetup.cpp:149
std::map< std::string, std::shared_ptr< scxml4cpp::Activity >> ActivityMap
Disable assignment operator.
Definition: actionsSetup.hpp:122
ActionsSetup(boost::asio::io_service &ios, rad::SMAdapter &sm, rad::Dispatcher &dispatcher, rad::MsgReplier &msg_replier, DataContext &data_ctx, DeviceFacade &device_facade)
Definition: actionsSetup.cpp:31
Definition: Dispatcher.hpp:22
void Error(rad::AnyEvent const &lastEvent)
Definition: actionsSetup.cpp:175
Definition: SMAdapter.hpp:43
void Stop(rad::AnyEvent const &lastEvent)
Definition: actionsSetup.cpp:95
Definition: deviceFacade.hpp:40
Definition: dataContext.hpp:73
Definition: AnyEvent.hpp:55
virtual ~ActionsSetup()
Definition: actionsSetup.cpp:57
ActionsSetup & operator=(const ActionsSetup &)=delete
Disable copy constructor.
Definition: ActionGroup.hpp:22