CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Private Member Functions
stor::Starting Class Reference

#include <StateMachine.h>

Inheritance diagram for stor::Starting:
stor::Operations

Public Types

typedef bsc::transition
< EmergencyStop, Stopping
ET
 
typedef bsc::in_state_reaction
< HaltDone, Starting,&Starting::logHaltDoneRequest
HaltDoneIR
 
typedef boost::mpl::list< ST,
ET, StopDoneIR, HaltDoneIR
reactions
 
typedef bsc::transition
< StartRun, Running
ST
 
typedef bsc::in_state_reaction
< StopDone, Starting,&Starting::logStopDoneRequest
StopDoneIR
 

Public Member Functions

void logHaltDoneRequest (const HaltDone &request)
 
void logStopDoneRequest (const StopDone &request)
 
 Starting (my_context)
 
virtual ~Starting ()
 
- Public Member Functions inherited from stor::Operations
void moveToFailedState (xcept::Exception &exception) const
 
void noFragmentToProcess () const
 
 Operations ()
 
void processI2OFragment (I2OChain &frag) const
 
std::string stateName () const
 
virtual ~Operations ()=0
 

Private Member Functions

virtual void do_entryActionWork ()
 
virtual void do_exitActionWork ()
 
virtual void do_moveToFailedState (xcept::Exception &exception) const
 
virtual void do_noFragmentToProcess () const
 
virtual std::string do_stateName () const
 
bool workerThreadsConfigured () const
 

Additional Inherited Members

- Protected Member Functions inherited from stor::Operations
virtual void do_processI2OFragment (I2OChain &frag) const
 
void safeEntryAction ()
 
void safeExitAction ()
 

Detailed Description

Starting state

Author:
mommsen
Revision:
1.10.12.1
Date:
2011/03/07 11:33:04

Definition at line 369 of file StateMachine.h.

Member Typedef Documentation

typedef bsc::transition<EmergencyStop,Stopping> stor::Starting::ET

Definition at line 378 of file StateMachine.h.

Definition at line 380 of file StateMachine.h.

Definition at line 381 of file StateMachine.h.

typedef bsc::transition<StartRun,Running> stor::Starting::ST

Definition at line 377 of file StateMachine.h.

Definition at line 379 of file StateMachine.h.

Constructor & Destructor Documentation

Starting::Starting ( my_context  c)

Definition at line 20 of file Starting.cc.

References stor::Operations::safeEntryAction().

20  : my_base(c)
21 {
23 }
void safeEntryAction()
Definition: Operations.cc:77
Starting::~Starting ( )
virtual

Definition at line 54 of file Starting.cc.

References stor::Operations::safeExitAction().

55 {
57 }
void safeExitAction()
Definition: Operations.cc:108

Member Function Documentation

void Starting::do_entryActionWork ( )
privatevirtual

Implements stor::Operations.

Definition at line 25 of file Starting.cc.

References stor::WorkerThreadParams::DQMEPdeqWaitTime_, stor::WorkerThreadParams::DWdeqWaitTime_, and stor::Operations::stateName().

26 {
27  TransitionRecord tr( stateName(), true );
28  outermost_context().updateHistory( tr );
29 
30  SharedResourcesPtr sharedResources =
31  outermost_context().getSharedResources();
32 
33  // Request DiskWriter to configure streams
34  EvtStrConfigListPtr evtCfgList = sharedResources->configuration_->
35  getCurrentEventStreamConfig();
36  ErrStrConfigListPtr errCfgList = sharedResources->configuration_->
37  getCurrentErrorStreamConfig();
38 
39  WorkerThreadParams workerParams =
40  sharedResources->configuration_->getWorkerThreadParams();
41  sharedResources->diskWriterResources_->
42  requestStreamConfiguration(evtCfgList, errCfgList,
43  sharedResources->configuration_->getDiskWritingParams(),
44  sharedResources->configuration_->getRunNumber(),
45  workerParams.DWdeqWaitTime_);
46 
47  // Request configuration of DQMEventProcessor
48  sharedResources->dqmEventProcessorResources_->
49  requestConfiguration(
50  sharedResources->configuration_->getDQMProcessingParams(),
51  workerParams.DQMEPdeqWaitTime_);
52 }
std::string stateName() const
Definition: Operations.cc:39
boost::shared_ptr< ErrStrConfigList > ErrStrConfigListPtr
boost::shared_ptr< SharedResources > SharedResourcesPtr
boost::shared_ptr< EvtStrConfigList > EvtStrConfigListPtr
boost::posix_time::time_duration DQMEPdeqWaitTime_
boost::posix_time::time_duration DWdeqWaitTime_
void Starting::do_exitActionWork ( )
privatevirtual

Implements stor::Operations.

Definition at line 59 of file Starting.cc.

References stor::Operations::stateName().

60 {
61  TransitionRecord tr( stateName(), false );
62  outermost_context().updateHistory( tr );
63 }
std::string stateName() const
Definition: Operations.cc:39
void Starting::do_moveToFailedState ( xcept::Exception &  exception) const
privatevirtual

Implements stor::Operations.

Definition at line 70 of file Starting.cc.

71 {
72  outermost_context().getSharedResources()->moveToFailedState( exception );
73 }
void Starting::do_noFragmentToProcess ( ) const
privatevirtual

Reimplemented from stor::Operations.

Definition at line 86 of file Starting.cc.

References workerThreadsConfigured().

87 {
89  {
90  SharedResourcesPtr sharedResources =
91  outermost_context().getSharedResources();
92  EventPtr_t stMachEvent( new StartRun() );
93  sharedResources->commandQueue_->enqWait( stMachEvent );
94  }
95 }
boost::shared_ptr< SharedResources > SharedResourcesPtr
boost::shared_ptr< boost::statechart::event_base > EventPtr_t
Definition: CommandQueue.h:21
bool workerThreadsConfigured() const
Definition: Starting.cc:98
string Starting::do_stateName ( ) const
privatevirtual

Implements stor::Operations.

Definition at line 65 of file Starting.cc.

66 {
67  return std::string( "Starting" );
68 }
void Starting::logHaltDoneRequest ( const HaltDone request)

Definition at line 80 of file Starting.cc.

81 {
82  outermost_context().unconsumed_event( request );
83 }
void Starting::logStopDoneRequest ( const StopDone request)

Definition at line 75 of file Starting.cc.

76 {
77  outermost_context().unconsumed_event( request );
78 }
bool Starting::workerThreadsConfigured ( ) const
private

Definition at line 98 of file Starting.cc.

Referenced by do_noFragmentToProcess().

99 {
100  SharedResourcesPtr sharedResources =
101  outermost_context().getSharedResources();
102 
103  // check if the requests are still being processed
104  if ( sharedResources->diskWriterResources_->streamChangeOngoing() ) return false;
105 
106  if ( sharedResources->dqmEventProcessorResources_->requestsOngoing() ) return false;
107 
108  return true;
109 }
boost::shared_ptr< SharedResources > SharedResourcesPtr