artdaq  v3_10_02
Commandable_sm.h
1 //
2 // ex: set ro:
3 // DO NOT EDIT.
4 // generated by smc (http://smc.sourceforge.net/)
5 // from file : Commandable.sm
6 //
7 
8 #ifndef COMMANDABLE_SM_H
9 #define COMMANDABLE_SM_H
10 
11 #define SMC_USES_IOSTREAMS
12 
13 #include <artdaq/Application/detail/statemap.h>
14 #include <canvas/Persistency/Provenance/RunID.h>
15 #include <fhiclcpp/ParameterSet.h>
16 
17 namespace artdaq {
18 // Forward declarations.
19 class Main;
20 class Main_Booted;
21 class Main_Initialized;
22 class Main_Default;
23 class InitializedMap;
24 class InitializedMap_Ready;
25 class InitializedMap_InRun;
26 class InitializedMap_Default;
27 class InRunMap;
28 class InRunMap_Running;
29 class InRunMap_Paused;
30 class InRunMap_InRunError;
31 class InRunMap_Default;
32 class CommandableState;
33 class CommandableContext;
34 class Commandable;
35 
37 {
38 public:
39  CommandableState(const char* const name, const int stateId)
40  : statemap::State(name, stateId){};
41 
42  virtual void Entry(CommandableContext&){};
43  virtual void Exit(CommandableContext&){};
44 
45  virtual void in_run_failure(CommandableContext& context);
46  virtual void init(CommandableContext& context, fhicl::ParameterSet const& pset, uint64_t timeout, uint64_t timestamp);
47  virtual void pause(CommandableContext& context, uint64_t timeout, uint64_t timestamp);
48  virtual void reinit(CommandableContext& context, fhicl::ParameterSet const& pset, uint64_t timeout, uint64_t timestamp);
49  virtual void resume(CommandableContext& context, uint64_t timeout, uint64_t timestamp);
50  virtual void shutdown(CommandableContext& context, uint64_t timeout);
51  virtual void soft_init(CommandableContext& context, fhicl::ParameterSet const& pset, uint64_t timeout, uint64_t timestamp);
52  virtual void start(CommandableContext& context, art::RunID id, uint64_t timeout, uint64_t timestamp);
53  virtual void stop(CommandableContext& context, uint64_t timeout, uint64_t timestamp);
54 
55 protected:
56  virtual void Default(CommandableContext& context);
57 };
58 
59 class Main
60 {
61 public:
62  static Main_Booted Booted;
63  static Main_Initialized Initialized;
64 };
65 
67 {
68 public:
69  Main_Default(const char* const name, const int stateId)
70  : CommandableState(name, stateId){};
71 
72  virtual void init(CommandableContext& context, fhicl::ParameterSet const& pset, uint64_t timeout, uint64_t timestamp);
73  virtual void start(CommandableContext& context, art::RunID id, uint64_t timeout, uint64_t timestamp);
74  virtual void stop(CommandableContext& context, uint64_t timeout, uint64_t timestamp);
75  virtual void pause(CommandableContext& context, uint64_t timeout, uint64_t timestamp);
76  virtual void resume(CommandableContext& context, uint64_t timeout, uint64_t timestamp);
77  virtual void shutdown(CommandableContext& context, uint64_t timeout);
78  virtual void soft_init(CommandableContext& context, fhicl::ParameterSet const& pset, uint64_t timeout, uint64_t timestamp);
79  virtual void reinit(CommandableContext& context, fhicl::ParameterSet const& pset, uint64_t timeout, uint64_t timestamp);
80 };
81 
82 class Main_Booted : public Main_Default
83 {
84 public:
85  Main_Booted(const char* const name, const int stateId)
86  : Main_Default(name, stateId){};
87 
88  virtual void Entry(CommandableContext&);
89  virtual void init(CommandableContext& context, fhicl::ParameterSet const& pset, uint64_t timeout, uint64_t timestamp);
90  virtual void reinit(CommandableContext& context, fhicl::ParameterSet const& pset, uint64_t timeout, uint64_t timestamp);
91  virtual void shutdown(CommandableContext& context, uint64_t timeout);
92 };
93 
95 {
96 public:
97  Main_Initialized(const char* const name, const int stateId)
98  : Main_Default(name, stateId){};
99 
100  virtual void init(CommandableContext& context, fhicl::ParameterSet const& pset, uint64_t timeout, uint64_t timestamp);
101  virtual void reinit(CommandableContext& context, fhicl::ParameterSet const& pset, uint64_t timeout, uint64_t timestamp);
102  virtual void shutdown(CommandableContext& context, uint64_t timeout);
103 };
104 
106 {
107 public:
108  static InitializedMap_Ready Ready;
109  static InitializedMap_InRun InRun;
110 };
111 
113 {
114 public:
115  InitializedMap_Default(const char* const name, const int stateId)
116  : CommandableState(name, stateId){};
117 
118  virtual void init(CommandableContext& context, fhicl::ParameterSet const& pset, uint64_t timeout, uint64_t timestamp);
119  virtual void start(CommandableContext& context, art::RunID id, uint64_t timeout, uint64_t timestamp);
120  virtual void stop(CommandableContext& context, uint64_t timeout, uint64_t timestamp);
121  virtual void pause(CommandableContext& context, uint64_t timeout, uint64_t timestamp);
122  virtual void resume(CommandableContext& context, uint64_t timeout, uint64_t timestamp);
123  virtual void shutdown(CommandableContext& context, uint64_t timeout);
124  virtual void soft_init(CommandableContext& context, fhicl::ParameterSet const& pset, uint64_t timeout, uint64_t timestamp);
125  virtual void reinit(CommandableContext& context, fhicl::ParameterSet const& pset, uint64_t timeout, uint64_t timestamp);
126 };
127 
129 {
130 public:
131  InitializedMap_Ready(const char* const name, const int stateId)
132  : InitializedMap_Default(name, stateId){};
133 
134  virtual void init(CommandableContext& context, fhicl::ParameterSet const& pset, uint64_t timeout, uint64_t timestamp);
135  virtual void reinit(CommandableContext& context, fhicl::ParameterSet const& pset, uint64_t timeout, uint64_t timestamp);
136  virtual void shutdown(CommandableContext& context, uint64_t timeout);
137  virtual void soft_init(CommandableContext& context, fhicl::ParameterSet const& pset, uint64_t timeout, uint64_t timestamp);
138  virtual void start(CommandableContext& context, art::RunID id, uint64_t timeout, uint64_t timestamp);
139 };
140 
142 {
143 public:
144  InitializedMap_InRun(const char* const name, const int stateId)
145  : InitializedMap_Default(name, stateId){};
146 
147  virtual void Exit(CommandableContext&);
148  virtual void stop(CommandableContext& context, uint64_t timeout, uint64_t timestamp);
149 };
150 
151 class InRunMap
152 {
153 public:
154  static InRunMap_Running Running;
155  static InRunMap_Paused Paused;
156  static InRunMap_InRunError InRunError;
157 };
158 
160 {
161 public:
162  InRunMap_Default(const char* const name, const int stateId)
163  : CommandableState(name, stateId){};
164 
165  virtual void init(CommandableContext& context, fhicl::ParameterSet const& pset, uint64_t timeout, uint64_t timestamp);
166  virtual void start(CommandableContext& context, art::RunID id, uint64_t timeout, uint64_t timestamp);
167  virtual void stop(CommandableContext& context, uint64_t timeout, uint64_t timestamp);
168  virtual void pause(CommandableContext& context, uint64_t timeout, uint64_t timestamp);
169  virtual void resume(CommandableContext& context, uint64_t timeout, uint64_t timestamp);
170  virtual void shutdown(CommandableContext& context, uint64_t timeout);
171  virtual void soft_init(CommandableContext& context, fhicl::ParameterSet const& pset, uint64_t timeout, uint64_t timestamp);
172  virtual void reinit(CommandableContext& context, fhicl::ParameterSet const& pset, uint64_t timeout, uint64_t timestamp);
173 };
174 
176 {
177 public:
178  InRunMap_Running(const char* const name, const int stateId)
179  : InRunMap_Default(name, stateId){};
180 
181  virtual void in_run_failure(CommandableContext& context);
182  virtual void pause(CommandableContext& context, uint64_t timeout, uint64_t timestamp);
183  virtual void stop(CommandableContext& context, uint64_t timeout, uint64_t timestamp);
184 };
185 
187 {
188 public:
189  InRunMap_Paused(const char* const name, const int stateId)
190  : InRunMap_Default(name, stateId){};
191 
192  virtual void resume(CommandableContext& context, uint64_t timeout, uint64_t timestamp);
193  virtual void stop(CommandableContext& context, uint64_t timeout, uint64_t timestamp);
194 };
195 
197 {
198 public:
199  InRunMap_InRunError(const char* const name, const int stateId)
200  : InRunMap_Default(name, stateId){};
201 
202  virtual void pause(CommandableContext& context, uint64_t timeout, uint64_t timestamp);
203  virtual void stop(CommandableContext& context, uint64_t timeout, uint64_t timestamp);
204 };
205 
207 {
208 public:
209  explicit CommandableContext(Commandable& owner)
210  : FSMContext(Main::Booted), _owner(owner){};
211 
212  CommandableContext(Commandable& owner, const statemap::State& state)
213  : FSMContext(state), _owner(owner){};
214 
215  virtual void enterStartState()
216  {
217  getState().Entry(*this);
218  return;
219  }
220 
221  inline Commandable& getOwner()
222  {
223  return (_owner);
224  };
225 
226  inline CommandableState& getState()
227  {
228  if (_state == NULL)
229  {
231  }
232 
233  return dynamic_cast<CommandableState&>(*_state);
234  };
235 
236  inline void in_run_failure()
237  {
238  getState().in_run_failure(*this);
239  };
240 
241  inline void init(fhicl::ParameterSet const& pset, uint64_t timeout, uint64_t timestamp)
242  {
243  getState().init(*this, pset, timeout, timestamp);
244  };
245 
246  inline void pause(uint64_t timeout, uint64_t timestamp)
247  {
248  getState().pause(*this, timeout, timestamp);
249  };
250 
251  inline void reinit(fhicl::ParameterSet const& pset, uint64_t timeout, uint64_t timestamp)
252  {
253  getState().reinit(*this, pset, timeout, timestamp);
254  };
255 
256  inline void resume(uint64_t timeout, uint64_t timestamp)
257  {
258  getState().resume(*this, timeout, timestamp);
259  };
260 
261  inline void shutdown(uint64_t timeout)
262  {
263  getState().shutdown(*this, timeout);
264  };
265 
266  inline void soft_init(fhicl::ParameterSet const& pset, uint64_t timeout, uint64_t timestamp)
267  {
268  getState().soft_init(*this, pset, timeout, timestamp);
269  };
270 
271  inline void start(art::RunID id, uint64_t timeout, uint64_t timestamp)
272  {
273  getState().start(*this, id, timeout, timestamp);
274  };
275 
276  inline void stop(uint64_t timeout, uint64_t timestamp)
277  {
278  getState().stop(*this, timeout, timestamp);
279  };
280 
281 private:
282  Commandable& _owner;
283 };
284 } // namespace artdaq
285 
286 #endif // COMMANDABLE_SM_H
287 
288 //
289 // Local variables:
290 // buffer-read-only: t
291 // End:
292 //
Commandable is the base class for all artdaq components which implement the artdaq state machine...
Definition: Commandable.hh:20