CMS 3D CMS Logo

Public Types | Public Member Functions | Private Member Functions

stor::Halting Class Reference

#include <StateMachine.h>

Inheritance diagram for stor::Halting:
state stor::Operations

List of all members.

Public Types

typedef boost::mpl::list
< StopDoneIR
reactions
typedef bsc::in_state_reaction
< StopDone, Halting,&Halting::logStopDoneRequest > 
StopDoneIR

Public Member Functions

 Halting (my_context)
void logStopDoneRequest (const StopDone &request)
virtual ~Halting ()

Private Member Functions

bool destructionIsDone () const
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

Detailed Description

Halting state

Author:
mommsen
Revision:
1.11
Date:
2011/03/07 15:31:32

Definition at line 437 of file StateMachine.h.


Member Typedef Documentation

typedef boost::mpl::list<StopDoneIR> stor::Halting::reactions

Definition at line 445 of file StateMachine.h.

typedef bsc::in_state_reaction<StopDone,Halting,&Halting::logStopDoneRequest> stor::Halting::StopDoneIR

Definition at line 444 of file StateMachine.h.


Constructor & Destructor Documentation

Halting::Halting ( my_context  c)

Definition at line 19 of file Halting.cc.

References stor::Operations::safeEntryAction().

                              : my_base(c)
{
  safeEntryAction();
}
Halting::~Halting ( ) [virtual]

Definition at line 42 of file Halting.cc.

References stor::Operations::safeExitAction().


Member Function Documentation

bool Halting::destructionIsDone ( ) const [private]

Definition at line 81 of file Halting.cc.

Referenced by do_noFragmentToProcess().

{
  SharedResourcesPtr sharedResources =
    outermost_context().getSharedResources();

  // check if the requests are still being processed
  if ( sharedResources->diskWriterResources_->streamChangeOngoing() ) return false;

  if ( sharedResources->dqmEventProcessorResources_->requestsOngoing() ) return false;

  return true;
}
void Halting::do_entryActionWork ( ) [private, virtual]

Implements stor::Operations.

Definition at line 24 of file Halting.cc.

References stor::Operations::stateName().

{

  TransitionRecord tr( stateName(), true );
  outermost_context().updateHistory( tr );

  SharedResourcesPtr sharedResources =
    outermost_context().getSharedResources();

  // request that the streams that are currently configured in the disk
  // writer be destroyed (this has the side effect of closing files)
  sharedResources->diskWriterResources_->requestStreamDestruction();

  // request that the DQM event store is cleared
  // if FinishingDQM has succeeded, the store is already empty
  sharedResources->dqmEventProcessorResources_->requestStoreDestruction();
}
void Halting::do_exitActionWork ( ) [private, virtual]

Implements stor::Operations.

Definition at line 47 of file Halting.cc.

References stor::Operations::stateName().

{
  TransitionRecord tr( stateName(), false );
  outermost_context().updateHistory( tr );
}
void Halting::do_moveToFailedState ( xcept::Exception exception) const [private, virtual]

Implements stor::Operations.

Definition at line 58 of file Halting.cc.

{
  outermost_context().getSharedResources()->alarmHandler_->moveToFailedState( exception );
}
void Halting::do_noFragmentToProcess ( ) const [private, virtual]

Reimplemented from stor::Operations.

Definition at line 69 of file Halting.cc.

References destructionIsDone().

{
  if ( destructionIsDone() )
  {
    SharedResourcesPtr sharedResources =
      outermost_context().getSharedResources();
    EventPtr_t stMachEvent( new HaltDone() );
    sharedResources->commandQueue_->enqWait( stMachEvent );
  }
}
string Halting::do_stateName ( ) const [private, virtual]

Implements stor::Operations.

Definition at line 53 of file Halting.cc.

{
  return std::string( "Halting" );
}
void Halting::logStopDoneRequest ( const StopDone request)

Definition at line 63 of file Halting.cc.

{
  outermost_context().unconsumed_event( request );
}