CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
StateMachine.h
Go to the documentation of this file.
1 // $Id: StateMachine.h,v 1.11 2011/03/07 15:31:32 mommsen Exp $
3 
4 #ifndef EventFilter_StorageManager_StateMachine_h
5 #define EventFilter_StorageManager_StateMachine_h
6 
8 
9 #include <boost/statechart/event.hpp>
10 #include <boost/statechart/in_state_reaction.hpp>
11 #include <boost/statechart/state_machine.hpp>
12 #include <boost/statechart/state.hpp>
13 #include <boost/statechart/transition.hpp>
14 #include <boost/mpl/list.hpp>
15 
16 #include <iostream>
17 #include <string>
18 #include <vector>
19 
20 
21 namespace bsc = boost::statechart;
22 
23 namespace stor
24 {
25 
26  class I2OChain;
27  class DiskWriter;
28  class EventDistributor;
29  class FragmentStore;
30  class Notifier;
31  class TransitionRecord;
32 
36 
37  // Outer states:
38  class Failed;
39  class Normal;
40 
41  // Inner states of Normal:
42  class Constructed;
43  class Halted;
44  class Ready;
45  class Stopped;
46  class Enabled;
47 
48  // Inner states of Enabled:
49  class Starting;
50  class Stopping;
51  class Halting;
52  class Running;
53 
54  // Inner states of Running:
55  class Processing;
56  class DrainingQueues;
57  class FinishingDQM;
58 
59 
63 
64  class Configure : public bsc::event<Configure> {};
65  class Enable : public bsc::event<Enable> {};
66  class Stop : public bsc::event<Stop> {};
67  class Halt : public bsc::event<Halt> {};
68  class Fail : public bsc::event<Fail> {};
69  class Reconfigure : public bsc::event<Reconfigure> {};
70  class EmergencyStop : public bsc::event<EmergencyStop> {};
71  class QueuesEmpty : public bsc::event<QueuesEmpty> {};
72  class StartRun : public bsc::event<StartRun> {};
73  class EndRun : public bsc::event<EndRun> {};
74  class StopDone : public bsc::event<StopDone> {};
75  class HaltDone : public bsc::event<HaltDone> {};
76 
85  class Operations
86  {
87 
88  public:
89 
90  Operations();
91  virtual ~Operations() = 0;
92  void processI2OFragment( I2OChain& frag ) const;
93 
94  void noFragmentToProcess() const;
95 
96  std::string stateName() const;
97 
99 
100  protected:
101 
102  virtual void do_processI2OFragment( I2OChain& frag ) const;
103 
104  virtual void do_noFragmentToProcess() const;
105 
106  virtual std::string do_stateName() const = 0;
107 
108  virtual void do_moveToFailedState( xcept::Exception& exception ) const = 0;
109 
110  void safeEntryAction();
111  virtual void do_entryActionWork() = 0;
112 
113  void safeExitAction();
114  virtual void do_exitActionWork() = 0;
115 
116  };
117 
118 
127  class StateMachine: public bsc::state_machine<StateMachine,Normal>
128  {
129 
130  public:
131 
133  FragmentStore* fs,
134  Notifier* n,
135  SharedResourcesPtr sr );
136 
137  //void processI2OFragment();
138  std::string getCurrentStateName() const;
139  Operations const& getCurrentState() const;
140 
141  void updateHistory( const TransitionRecord& tr );
142 
147 
148  void unconsumed_event( bsc::event_base const& );
149 
150  void setExternallyVisibleState( const std::string& );
151 
152  private:
153 
159 
160  };
161 
165 
173  class Failed: public bsc::state<Failed,StateMachine>, public Operations
174  {
175 
176  public:
177 
178  Failed( my_context );
179  virtual ~Failed();
180 
181  private:
182 
183  virtual std::string do_stateName() const;
184  virtual void do_entryActionWork();
185  virtual void do_exitActionWork();
186  virtual void do_moveToFailedState( xcept::Exception& exception ) const;
187 
188  };
189 
197  class Normal: public bsc::state<Normal,StateMachine,Constructed>, public Operations
198  {
199 
200  public:
201 
202  typedef bsc::transition<Fail,Failed> FT;
203  typedef boost::mpl::list<FT> reactions;
204 
205  Normal( my_context );
206  virtual ~Normal();
207 
208  private:
209 
210  virtual std::string do_stateName() const;
211  virtual void do_entryActionWork();
212  virtual void do_exitActionWork();
213  virtual void do_moveToFailedState( xcept::Exception& exception ) const;
214 
215  };
216 
224  class Constructed: public bsc::state<Constructed,Normal>, public Operations
225  {
226 
227  public:
228 
229  typedef bsc::transition<Configure,Ready> RT;
230  typedef boost::mpl::list<RT> reactions;
231 
232  Constructed( my_context );
233  virtual ~Constructed();
234 
235  private:
236 
237  virtual std::string do_stateName() const;
238  virtual void do_entryActionWork();
239  virtual void do_exitActionWork();
240  virtual void do_moveToFailedState( xcept::Exception& exception ) const;
241 
242  };
243 
251  class Halted: public bsc::state<Halted,Normal>, public Operations
252  {
253 
254  public:
255 
256  typedef bsc::transition<Configure,Ready> RT;
257  typedef boost::mpl::list<RT> reactions;
258 
259  Halted( my_context );
260  virtual ~Halted();
261 
262  private:
263 
264  virtual std::string do_stateName() const;
265  virtual void do_entryActionWork();
266  virtual void do_exitActionWork();
267  virtual void do_moveToFailedState( xcept::Exception& exception ) const;
268 
269  };
270 
278  class Ready: public bsc::state<Ready,Normal,Stopped>, public Operations
279  {
280 
281  public:
282 
283  typedef bsc::transition<Reconfigure,Ready> ST;
284  typedef bsc::transition<Halt,Halted> HT;
285  typedef bsc::transition<HaltDone,Halted> DT;
286  typedef boost::mpl::list<ST,HT,DT> reactions;
287 
288  Ready( my_context );
289  virtual ~Ready();
290 
291  private:
292 
293  virtual std::string do_stateName() const;
294  virtual void do_entryActionWork();
295  virtual void do_exitActionWork();
296  virtual void do_moveToFailedState( xcept::Exception& exception ) const;
297 
298  };
299 
307  class Stopped: public bsc::state<Stopped,Ready>, public Operations
308  {
309 
310  public:
311 
312  void logHaltDoneRequest( const HaltDone& request );
313 
314  typedef bsc::transition<Enable,Enabled> ET;
315  typedef bsc::in_state_reaction<HaltDone,Stopped,&Stopped::logHaltDoneRequest> HaltDoneIR;
316  typedef boost::mpl::list<ET,HaltDoneIR> reactions;
317 
318  Stopped( my_context );
319  virtual ~Stopped();
320 
321  private:
322 
323  virtual std::string do_stateName() const;
324  virtual void do_entryActionWork();
325  virtual void do_exitActionWork();
326  virtual void do_moveToFailedState( xcept::Exception& exception ) const;
327 
328  };
329 
337  class Enabled: public bsc::state<Enabled,Ready,Starting>, public Operations
338  {
339 
340  public:
341 
342  void logHaltRequest( const Halt& request );
343  void logReconfigureRequest( const Reconfigure& request );
344 
345  typedef bsc::transition<StopDone,Stopped> DT;
346  typedef bsc::in_state_reaction<Halt,Enabled,&Enabled::logHaltRequest> HaltIR;
347  typedef bsc::in_state_reaction<Reconfigure,Enabled,&Enabled::logReconfigureRequest> RecfgIR;
348  typedef boost::mpl::list<DT,HaltIR,RecfgIR> reactions;
349 
350  Enabled( my_context );
351  virtual ~Enabled();
352 
353  private:
354 
355  virtual std::string do_stateName() const;
356  virtual void do_entryActionWork();
357  virtual void do_exitActionWork();
358  virtual void do_moveToFailedState( xcept::Exception& exception ) const;
359 
360  };
361 
369  class Starting: public bsc::state<Starting,Enabled>, public Operations
370  {
371 
372  public:
373 
374  void logStopDoneRequest( const StopDone& request );
375  void logHaltDoneRequest( const HaltDone& request );
376 
377  typedef bsc::transition<StartRun,Running> ST;
378  typedef bsc::transition<EmergencyStop,Stopping> ET;
379  typedef bsc::in_state_reaction<StopDone,Starting,&Starting::logStopDoneRequest> StopDoneIR;
380  typedef bsc::in_state_reaction<HaltDone,Starting,&Starting::logHaltDoneRequest> HaltDoneIR;
381  typedef boost::mpl::list<ST,ET,StopDoneIR,HaltDoneIR> reactions;
382 
383  Starting( my_context );
384  virtual ~Starting();
385 
386  private:
387 
388  virtual std::string do_stateName() const;
389  virtual void do_noFragmentToProcess() const;
390  virtual void do_entryActionWork();
391  virtual void do_exitActionWork();
392  virtual void do_moveToFailedState( xcept::Exception& exception ) const;
393 
394  bool workerThreadsConfigured() const;
395 
396  };
397 
405  class Stopping: public bsc::state<Stopping,Enabled>, public Operations
406  {
407 
408  public:
409 
410  void logHaltDoneRequest( const HaltDone& request );
411 
412  typedef bsc::in_state_reaction<HaltDone,Stopping,&Stopping::logHaltDoneRequest> HaltDoneIR;
413  typedef boost::mpl::list<HaltDoneIR> reactions;
414 
415  Stopping( my_context );
416  virtual ~Stopping();
417 
418  private:
419 
420  virtual std::string do_stateName() const;
421  virtual void do_noFragmentToProcess() const;
422  virtual void do_entryActionWork();
423  virtual void do_exitActionWork();
424  virtual void do_moveToFailedState( xcept::Exception& exception ) const;
425 
426  bool destructionIsDone() const;
427 
428  };
429 
437  class Halting: public bsc::state<Halting,Enabled>, public Operations
438  {
439 
440  public:
441 
442  void logStopDoneRequest( const StopDone& request );
443 
444  typedef bsc::in_state_reaction<StopDone,Halting,&Halting::logStopDoneRequest> StopDoneIR;
445  typedef boost::mpl::list<StopDoneIR> reactions;
446 
447  Halting( my_context );
448  virtual ~Halting();
449 
450  private:
451 
452  virtual std::string do_stateName() const;
453  virtual void do_noFragmentToProcess() const;
454  virtual void do_entryActionWork();
455  virtual void do_exitActionWork();
456  virtual void do_moveToFailedState( xcept::Exception& exception ) const;
457 
458  bool destructionIsDone() const;
459 
460  };
461 
469  class Running: public bsc::state<Running,Enabled,Processing>, public Operations
470  {
471 
472  public:
473 
474  void logStopDoneRequest( const StopDone& request );
475  void logHaltDoneRequest( const HaltDone& request );
476 
477  typedef bsc::transition<EndRun,Stopping> ET;
478  typedef bsc::transition<EmergencyStop,Stopping> EST;
479  typedef bsc::transition<Halt,Halting> HT;
480  typedef bsc::in_state_reaction<StopDone,Running,&Running::logStopDoneRequest> StopDoneIR;
481  typedef bsc::in_state_reaction<HaltDone,Running,&Running::logHaltDoneRequest> HaltDoneIR;
482  typedef boost::mpl::list<ET,EST,HT,StopDoneIR,HaltDoneIR> reactions;
483 
484  Running( my_context );
485  virtual ~Running();
486 
487  private:
488 
489  virtual std::string do_stateName() const;
490  virtual void do_entryActionWork();
491  virtual void do_exitActionWork();
492  virtual void do_moveToFailedState( xcept::Exception& exception ) const;
493 
494  };
495 
503  class Processing: public bsc::state<Processing,Running>, public Operations
504  {
505 
506  public:
507 
508  void logEndRunRequest( const EndRun& request );
509 
510  typedef bsc::transition<Stop,DrainingQueues> DT;
511  typedef bsc::in_state_reaction<EndRun,Processing,&Processing::logEndRunRequest> EndRunIR;
512  typedef boost::mpl::list<DT,EndRunIR> reactions;
513 
514  Processing( my_context );
515  virtual ~Processing();
516 
517  private:
518 
519  virtual std::string do_stateName() const;
520  virtual void do_processI2OFragment( I2OChain& frag ) const;
521  virtual void do_noFragmentToProcess() const;
522  virtual void do_entryActionWork();
523  virtual void do_exitActionWork();
524  virtual void do_moveToFailedState( xcept::Exception& exception ) const;
525 
526  };
527 
535  class DrainingQueues: public bsc::state<DrainingQueues,Running>, public Operations
536  {
537 
538  public:
539 
540  void logEndRunRequest( const EndRun& request );
541 
542  typedef bsc::transition<QueuesEmpty,FinishingDQM> FT;
543  typedef bsc::in_state_reaction<EndRun,DrainingQueues,&DrainingQueues::logEndRunRequest> EndRunIR;
544  typedef boost::mpl::list<FT,EndRunIR> reactions;
545 
546  DrainingQueues( my_context );
547  virtual ~DrainingQueues();
548 
549  private:
550  virtual std::string do_stateName() const;
551  virtual void do_noFragmentToProcess() const;
552  virtual void do_entryActionWork();
553  virtual void do_exitActionWork();
554  virtual void do_moveToFailedState( xcept::Exception& exception ) const;
555 
556  bool allQueuesAndWorkersAreEmpty() const;
557  void processStaleFragments() const;
558  };
559 
567  class FinishingDQM: public bsc::state<FinishingDQM,Running>, public Operations
568  {
569 
570  public:
571 
572  FinishingDQM( my_context );
573  virtual ~FinishingDQM();
574 
575  private:
576 
577  virtual std::string do_stateName() const;
578  virtual void do_noFragmentToProcess() const;
579  virtual void do_entryActionWork();
580  virtual void do_exitActionWork();
581  virtual void do_moveToFailedState( xcept::Exception& exception ) const;
582 
583  bool endOfRunProcessingIsDone() const;
584 
585  };
586 
587  typedef boost::shared_ptr<StateMachine> StateMachinePtr;
588 
589 } // end namespace stor
590 
591 #endif // EventFilter_StorageManager_StateMachine_h
592 
virtual void do_moveToFailedState(xcept::Exception &exception) const
Definition: Halting.cc:58
bsc::transition< EmergencyStop, Stopping > ET
Definition: StateMachine.h:378
Constructed(my_context)
Definition: Constructed.cc:21
void logEndRunRequest(const EndRun &request)
Definition: Processing.cc:57
bsc::transition< QueuesEmpty, FinishingDQM > FT
Definition: StateMachine.h:542
void processStaleFragments() const
bsc::transition< StopDone, Stopped > DT
Definition: StateMachine.h:345
virtual std::string do_stateName() const
Definition: FinishingDQM.cc:47
virtual void do_exitActionWork()
Definition: Running.cc:58
virtual std::string do_stateName() const
Definition: Stopping.cc:52
std::string stateName() const
Definition: Operations.cc:39
virtual void do_moveToFailedState(xcept::Exception &exception) const
Definition: FinishingDQM.cc:52
void logStopDoneRequest(const StopDone &request)
Definition: Running.cc:95
virtual void do_entryActionWork()
Definition: Halted.cc:16
virtual std::string do_stateName() const
SharedResourcesPtr getSharedResources() const
Definition: StateMachine.h:146
virtual void do_entryActionWork()
Definition: Normal.cc:13
virtual void do_entryActionWork()
Definition: Enabled.cc:22
virtual ~Starting()
Definition: Starting.cc:55
virtual void do_entryActionWork()
Definition: Constructed.cc:14
bsc::in_state_reaction< Halt, Enabled,&Enabled::logHaltRequest > HaltIR
Definition: StateMachine.h:346
virtual void do_moveToFailedState(xcept::Exception &exception) const
Definition: Ready.cc:139
virtual void do_moveToFailedState(xcept::Exception &exception) const =0
Running(my_context)
Definition: Running.cc:20
void noFragmentToProcess() const
Definition: Operations.cc:34
bool destructionIsDone() const
Definition: Stopping.cc:80
void logReconfigureRequest(const Reconfigure &request)
Definition: Enabled.cc:72
virtual void do_entryActionWork()
Definition: Starting.cc:26
bool allQueuesAndWorkersAreEmpty() const
bsc::transition< Fail, Failed > FT
Definition: StateMachine.h:202
boost::mpl::list< RT > reactions
Definition: StateMachine.h:230
boost::mpl::list< HaltDoneIR > reactions
Definition: StateMachine.h:413
virtual void do_moveToFailedState(xcept::Exception &exception) const
Definition: Normal.cc:40
boost::shared_ptr< SharedResources > SharedResourcesPtr
virtual void do_noFragmentToProcess() const
Definition: FinishingDQM.cc:58
boost::mpl::list< ST, HT, DT > reactions
Definition: StateMachine.h:286
virtual void do_moveToFailedState(xcept::Exception &exception) const
Definition: Running.cc:90
virtual std::string do_stateName() const
Definition: Constructed.cc:37
boost::shared_ptr< StateMachine > StateMachinePtr
Definition: StateMachine.h:587
virtual void do_moveToFailedState(xcept::Exception &exception) const
Definition: Halted.cc:45
bsc::transition< Configure, Ready > RT
Definition: StateMachine.h:256
EventDistributor * getEventDistributor() const
Definition: StateMachine.h:143
bsc::in_state_reaction< StopDone, Halting,&Halting::logStopDoneRequest > StopDoneIR
Definition: StateMachine.h:444
void moveToFailedState(xcept::Exception &exception) const
Definition: Operations.cc:44
bsc::transition< Configure, Ready > RT
Definition: StateMachine.h:229
void logHaltDoneRequest(const HaltDone &request)
Definition: Stopped.cc:50
Notifier * getNotifier()
Definition: StateMachine.h:145
void setExternallyVisibleState(const std::string &)
Definition: StateMachine.cc:64
Ready(my_context)
Definition: Ready.cc:22
virtual void do_entryActionWork()
Definition: Stopped.cc:21
virtual void do_entryActionWork()
Definition: Ready.cc:27
boost::mpl::list< DT, EndRunIR > reactions
Definition: StateMachine.h:512
virtual void do_moveToFailedState(xcept::Exception &exception) const
Definition: Enabled.cc:62
bsc::transition< StartRun, Running > ST
Definition: StateMachine.h:377
FinishingDQM(my_context)
Definition: FinishingDQM.cc:17
Halted(my_context)
Definition: Halted.cc:24
StateMachine(EventDistributor *ed, FragmentStore *fs, Notifier *n, SharedResourcesPtr sr)
Definition: StateMachine.cc:19
void unconsumed_event(bsc::event_base const &)
Definition: StateMachine.cc:51
virtual void do_entryActionWork()
Definition: Halting.cc:24
virtual void do_entryActionWork()
Definition: Running.cc:25
virtual std::string do_stateName() const
Definition: Enabled.cc:57
Starting(my_context)
Definition: Starting.cc:21
virtual ~Processing()
Definition: Processing.cc:36
virtual ~Operations()=0
Definition: Operations.cc:23
bsc::in_state_reaction< Reconfigure, Enabled,&Enabled::logReconfigureRequest > RecfgIR
Definition: StateMachine.h:347
virtual void do_entryActionWork()
Definition: Processing.cc:28
virtual void do_entryActionWork()
Definition: Failed.cc:16
void safeExitAction()
Definition: Operations.cc:108
virtual void do_exitActionWork()
Definition: Ready.cc:128
Stopping(my_context)
Definition: Stopping.cc:18
boost::mpl::list< StopDoneIR > reactions
Definition: StateMachine.h:445
std::string getCurrentStateName() const
Definition: StateMachine.cc:37
virtual void do_processI2OFragment(I2OChain &frag) const
Definition: Operations.cc:55
Operations const & getCurrentState() const
Definition: StateMachine.cc:32
virtual std::string do_stateName() const
Definition: Failed.cc:50
virtual ~Normal()
Definition: Normal.cc:30
virtual std::string do_stateName() const
Definition: Halting.cc:53
virtual void do_noFragmentToProcess() const
Definition: Stopping.cc:68
virtual ~FinishingDQM()
Definition: FinishingDQM.cc:36
void logHaltDoneRequest(const HaltDone &request)
Definition: Starting.cc:81
virtual void do_noFragmentToProcess() const
virtual void do_exitActionWork()
Definition: Normal.cc:24
bsc::transition< Halt, Halting > HT
Definition: StateMachine.h:479
virtual void do_exitActionWork()=0
DiskWriter * diskWriter_
Definition: StateMachine.h:154
virtual ~Halted()
Definition: Halted.cc:35
boost::mpl::list< DT, HaltIR, RecfgIR > reactions
Definition: StateMachine.h:348
boost::mpl::list< ST, ET, StopDoneIR, HaltDoneIR > reactions
Definition: StateMachine.h:381
bool endOfRunProcessingIsDone() const
Definition: FinishingDQM.cc:70
virtual ~Halting()
Definition: Halting.cc:42
Halting(my_context)
Definition: Halting.cc:19
virtual ~Enabled()
Definition: Enabled.cc:41
virtual void do_exitActionWork()
Definition: Stopping.cc:46
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
virtual ~Failed()
Definition: Failed.cc:45
bsc::transition< HaltDone, Halted > DT
Definition: StateMachine.h:285
bsc::in_state_reaction< StopDone, Starting,&Starting::logStopDoneRequest > StopDoneIR
Definition: StateMachine.h:379
Normal(my_context)
Definition: Normal.cc:19
virtual ~Ready()
Definition: Ready.cc:123
virtual void do_noFragmentToProcess() const
Definition: Halting.cc:69
virtual std::string do_stateName() const
Definition: Running.cc:85
bsc::transition< EmergencyStop, Stopping > EST
Definition: StateMachine.h:478
DrainingQueues(my_context)
void logHaltDoneRequest(const HaltDone &request)
Definition: Stopping.cc:62
bsc::transition< EndRun, Stopping > ET
Definition: StateMachine.h:477
virtual ~Stopping()
Definition: Stopping.cc:41
bsc::in_state_reaction< StopDone, Running,&Running::logStopDoneRequest > StopDoneIR
Definition: StateMachine.h:480
Processing(my_context)
Definition: Processing.cc:23
bsc::transition< Reconfigure, Ready > ST
Definition: StateMachine.h:283
bsc::in_state_reaction< HaltDone, Starting,&Starting::logHaltDoneRequest > HaltDoneIR
Definition: StateMachine.h:380
virtual void do_noFragmentToProcess() const
Definition: Starting.cc:87
virtual void do_moveToFailedState(xcept::Exception &exception) const
Definition: Starting.cc:71
void logStopDoneRequest(const StopDone &request)
Definition: Starting.cc:76
virtual std::string do_stateName() const
Definition: Normal.cc:35
virtual std::string do_stateName() const
Definition: Processing.cc:47
virtual std::string do_stateName() const =0
boost::mpl::list< RT > reactions
Definition: StateMachine.h:257
virtual void do_exitActionWork()
Definition: Failed.cc:36
virtual std::string do_stateName() const
Definition: Stopped.cc:40
virtual void do_moveToFailedState(xcept::Exception &exception) const
Definition: Stopped.cc:45
bsc::transition< Halt, Halted > HT
Definition: StateMachine.h:284
Stopped(my_context)
Definition: Stopped.cc:16
bsc::in_state_reaction< HaltDone, Stopped,&Stopped::logHaltDoneRequest > HaltDoneIR
Definition: StateMachine.h:315
virtual void do_exitActionWork()
Definition: Processing.cc:41
boost::mpl::list< FT, EndRunIR > reactions
Definition: StateMachine.h:544
virtual void do_moveToFailedState(xcept::Exception &exception) const
Definition: Failed.cc:55
Notifier * notifier_
Definition: StateMachine.h:157
SharedResourcesPtr sharedResources_
Definition: StateMachine.h:158
virtual void do_entryActionWork()
Definition: FinishingDQM.cc:22
EventDistributor * eventDistributor_
Definition: StateMachine.h:155
bool workerThreadsConfigured() const
Definition: Starting.cc:99
char state
Definition: procUtils.cc:75
bool destructionIsDone() const
Definition: Halting.cc:81
virtual void do_moveToFailedState(xcept::Exception &exception) const
Definition: Constructed.cc:42
virtual void do_exitActionWork()
Definition: FinishingDQM.cc:41
boost::mpl::list< ET, EST, HT, StopDoneIR, HaltDoneIR > reactions
Definition: StateMachine.h:482
void processI2OFragment(I2OChain &frag) const
Definition: Operations.cc:29
void logStopDoneRequest(const StopDone &request)
Definition: Halting.cc:63
virtual void do_entryActionWork()
Definition: Stopping.cc:23
virtual void do_exitActionWork()
Definition: Enabled.cc:46
virtual ~Constructed()
Definition: Constructed.cc:32
Failed(my_context)
Definition: Failed.cc:31
virtual void do_exitActionWork()
Definition: Starting.cc:60
bsc::in_state_reaction< EndRun, Processing,&Processing::logEndRunRequest > EndRunIR
Definition: StateMachine.h:511
FragmentStore * fragmentStore_
Definition: StateMachine.h:156
virtual std::string do_stateName() const
Definition: Starting.cc:66
void logHaltDoneRequest(const HaltDone &request)
Definition: Running.cc:100
virtual void do_moveToFailedState(xcept::Exception &exception) const
bsc::transition< Stop, DrainingQueues > DT
Definition: StateMachine.h:510
virtual void do_exitActionWork()
Definition: Halting.cc:47
virtual void do_moveToFailedState(xcept::Exception &exception) const
Definition: Processing.cc:52
virtual void do_exitActionWork()
boost::mpl::list< FT > reactions
Definition: StateMachine.h:203
virtual void do_moveToFailedState(xcept::Exception &exception) const
Definition: Stopping.cc:57
virtual void do_processI2OFragment(I2OChain &frag) const
Definition: Processing.cc:63
Enabled(my_context)
Definition: Enabled.cc:17
bsc::in_state_reaction< HaltDone, Stopping,&Stopping::logHaltDoneRequest > HaltDoneIR
Definition: StateMachine.h:412
virtual ~Running()
Definition: Running.cc:53
virtual void do_entryActionWork()=0
virtual void do_exitActionWork()
Definition: Constructed.cc:26
FragmentStore * getFragmentStore() const
Definition: StateMachine.h:144
virtual ~Stopped()
Definition: Stopped.cc:29
void logEndRunRequest(const EndRun &request)
bsc::transition< Enable, Enabled > ET
Definition: StateMachine.h:314
bsc::in_state_reaction< EndRun, DrainingQueues,&DrainingQueues::logEndRunRequest > EndRunIR
Definition: StateMachine.h:543
virtual std::string do_stateName() const
Definition: Ready.cc:134
virtual void do_exitActionWork()
Definition: Stopped.cc:34
bsc::in_state_reaction< HaltDone, Running,&Running::logHaltDoneRequest > HaltDoneIR
Definition: StateMachine.h:481
boost::mpl::list< ET, HaltDoneIR > reactions
Definition: StateMachine.h:316
virtual std::string do_stateName() const
Definition: Halted.cc:40
virtual void do_exitActionWork()
Definition: Halted.cc:29
void logHaltRequest(const Halt &request)
Definition: Enabled.cc:67
virtual void do_entryActionWork()
virtual void do_noFragmentToProcess() const
Definition: Operations.cc:140
virtual void do_noFragmentToProcess() const
Definition: Processing.cc:115
void safeEntryAction()
Definition: Operations.cc:77
void updateHistory(const TransitionRecord &tr)
Definition: StateMachine.cc:42