G4StateManager Class Reference

#include <G4StateManager.hh>


Public Member Functions

 ~G4StateManager ()
G4ApplicationState GetCurrentState () const
G4ApplicationState GetPreviousState () const
G4bool SetNewState (G4ApplicationState requestedState)
G4bool SetNewState (G4ApplicationState requestedState, const char *msg)
G4bool RegisterDependent (G4VStateDependent *aDependent, G4bool bottom=false)
G4bool DeregisterDependent (G4VStateDependent *aDependent)
G4VStateDependentRemoveDependent (const G4VStateDependent *aDependent)
G4String GetStateString (G4ApplicationState aState) const
void SetSuppressAbortion (G4int i)
G4int GetSuppressAbortion () const
const char * GetMessage () const
void SetExceptionHandler (G4VExceptionHandler *eh)
G4VExceptionHandlerGetExceptionHandler () const

Static Public Member Functions

static G4StateManagerGetStateManager ()

Protected Member Functions

 G4StateManager ()


Detailed Description

Definition at line 60 of file G4StateManager.hh.


Constructor & Destructor Documentation

G4StateManager::G4StateManager (  )  [protected]

Definition at line 43 of file G4StateManager.cc.

00044  : theCurrentState(G4State_PreInit),
00045    thePreviousState(G4State_PreInit),
00046    theBottomDependent(0),
00047    suppressAbortion(0),
00048    msgptr(0),
00049    exceptionHandler(0)
00050 {
00051 }

G4StateManager::~G4StateManager (  ) 

Definition at line 53 of file G4StateManager.cc.

00054 {
00055   G4VStateDependent* state=0;
00056 
00057   while (theDependentsList.size()>0)
00058   {
00059     state = theDependentsList.back();
00060     theDependentsList.pop_back();
00061     for (std::vector<G4VStateDependent*>::iterator
00062          i=theDependentsList.begin(); i!=theDependentsList.end();)
00063     {
00064       if (*i==state)
00065       {
00066         i = theDependentsList.erase(i);
00067       }
00068       else
00069       {
00070         ++i;
00071       }
00072     } 
00073     if ( state )  { delete state; }
00074   } 
00075 }


Member Function Documentation

G4bool G4StateManager::DeregisterDependent ( G4VStateDependent aDependent  ) 

Definition at line 153 of file G4StateManager.cc.

Referenced by G4VStateDependent::~G4VStateDependent().

00154 {
00155   G4VStateDependent* tmp = 0;
00156   for (std::vector<G4VStateDependent*>::iterator i=theDependentsList.begin();
00157        i!=theDependentsList.end();)
00158   {
00159     if (**i==*aDependent) 
00160     {
00161       tmp = *i;
00162       i = theDependentsList.erase(i);
00163     }
00164     else
00165     {
00166       ++i;
00167     }
00168   }
00169   return (tmp != 0);
00170 }

G4ApplicationState G4StateManager::GetCurrentState (  )  const

Definition at line 173 of file G4StateManager.cc.

Referenced by G4RunManager::AbortEvent(), G4RunManager::AbortRun(), G4RunManager::ConfirmBeamOnCondition(), G4IonTable::CreateIon(), G4RunManagerKernel::DefineWorldVolume(), G4ParticleDefinition::G4ParticleDefinition(), G4UIGAG::G4UIGAG(), G4UIGainServer::G4UIGainServer(), G4EventManager::GetUserInformation(), G4ErrorPropagatorManager::InitGeant4e(), G4RunManager::Initialize(), G4RunManagerKernel::InitializePhysics(), G4UIcommand::IsAvailable(), G4VUIshell::MakePrompt(), G4UItcsh::MakePrompt(), G4ExceptionHandler::Notify(), G4VSceneHandler::ProcessScene(), G4VModularPhysicsList::RegisterPhysics(), G4ShortLivedTable::Remove(), G4ParticleTable::Remove(), G4IonTable::Remove(), G4VModularPhysicsList::RemovePhysics(), G4VModularPhysicsList::ReplacePhysics(), G4RunManagerKernel::RunInitialization(), G4MaterialScanner::Scan(), G4UIGainServer::SessionStart(), G4UIGAG::SessionStart(), G4ParticlePropertyTable::SetParticleProperty(), G4EventManager::SetUserInformation(), G4VelocityTable::SetVelocityTableProperties(), G4TheRayTracer::Trace(), G4RunManagerKernel::UpdateRegion(), G4ParticleDefinition::~G4ParticleDefinition(), G4RunManager::~G4RunManager(), and G4RunManagerKernel::~G4RunManagerKernel().

00174 {
00175    return theCurrentState;
00176 }

G4VExceptionHandler * G4StateManager::GetExceptionHandler (  )  const [inline]

Definition at line 59 of file G4StateManager.icc.

Referenced by G4Exception().

00060 {
00061   return exceptionHandler;
00062 }

const char * G4StateManager::GetMessage (  )  const [inline]

Definition at line 47 of file G4StateManager.icc.

00048 {
00049   return msgptr;
00050 }

G4ApplicationState G4StateManager::GetPreviousState (  )  const

Definition at line 179 of file G4StateManager.cc.

00180 {
00181    return thePreviousState;
00182 }

G4StateManager * G4StateManager::GetStateManager (  )  [static]

Definition at line 124 of file G4StateManager.cc.

Referenced by G4RunManager::AbortEvent(), G4RunManager::AbortRun(), G4ErrorPropagatorManager::CloseGeometry(), G4RunManager::ConfirmBeamOnCondition(), G4TheRayTracer::CreateBitMap(), G4UIcommandTree::CreateHTML(), G4IonTable::CreateIon(), G4RunManagerKernel::DefineWorldVolume(), G4Exception(), G4ParticleDefinition::G4ParticleDefinition(), G4RunManagerKernel::G4RunManagerKernel(), G4UIGAG::G4UIGAG(), G4UIGainServer::G4UIGainServer(), G4VExceptionHandler::G4VExceptionHandler(), G4VStateDependent::G4VStateDependent(), G4UIcontrolMessenger::GetCurrentValue(), G4DNAMolecularMaterial::GetDensityTableFor(), G4DNAMolecularMaterial::GetNumMolPerVolTableFor(), G4EventManager::GetUserInformation(), G4ErrorPropagatorManager::InitGeant4e(), G4RunManager::Initialize(), G4RunManagerKernel::InitializePhysics(), G4UIcommand::IsAvailable(), G4VUIshell::MakePrompt(), G4UItcsh::MakePrompt(), G4UImanager::Notify(), G4ExceptionHandler::Notify(), G4ErrorPropagatorManager::PrintG4State(), G4VSceneHandler::ProcessScene(), G4ErrorPropagator::PropagateOneStep(), G4VModularPhysicsList::RegisterPhysics(), G4ShortLivedTable::Remove(), G4ParticleTable::Remove(), G4IonTable::Remove(), G4VModularPhysicsList::RemovePhysics(), G4VModularPhysicsList::ReplacePhysics(), G4RunManagerKernel::RunInitialization(), G4RunManagerKernel::RunTermination(), G4MaterialScanner::Scan(), G4UIGainServer::SessionStart(), G4UIGAG::SessionStart(), G4UIcontrolMessenger::SetNewValue(), G4ParticlePropertyTable::SetParticleProperty(), G4EventManager::SetUserInformation(), G4VelocityTable::SetVelocityTableProperties(), G4TheRayTracer::Trace(), G4RunManagerKernel::UpdateRegion(), G4ParticleDefinition::~G4ParticleDefinition(), G4RunManager::~G4RunManager(), G4RunManagerKernel::~G4RunManagerKernel(), and G4VStateDependent::~G4VStateDependent().

00125 {
00126     if (!theStateManager)
00127     {
00128       theStateManager = new G4StateManager;
00129     }
00130     return theStateManager;    
00131 }

G4String G4StateManager::GetStateString ( G4ApplicationState  aState  )  const

Definition at line 240 of file G4StateManager.cc.

References G4State_Abort, G4State_EventProc, G4State_GeomClosed, G4State_Idle, G4State_Init, G4State_PreInit, and G4State_Quit.

Referenced by G4UIcommandTree::CreateHTML(), G4UIGAG::G4UIGAG(), G4UIGainServer::G4UIGainServer(), G4UIGainServer::SessionStart(), and G4UIGAG::SessionStart().

00241 {
00242   G4String stateName;
00243   switch(aState)
00244   {
00245     case G4State_PreInit:
00246      stateName = "PreInit"; break;
00247     case G4State_Init:
00248      stateName = "Init"; break;
00249     case G4State_Idle:
00250      stateName = "Idle"; break;
00251     case G4State_GeomClosed:
00252      stateName = "GeomClosed"; break;
00253     case G4State_EventProc:
00254      stateName = "EventProc"; break;
00255     case G4State_Quit:
00256      stateName = "Quit"; break;
00257     case G4State_Abort:
00258      stateName = "Abort"; break;
00259     default:
00260      stateName = "Unknown"; break;
00261   }
00262   return stateName;
00263 }

G4int G4StateManager::GetSuppressAbortion (  )  const [inline]

Definition at line 41 of file G4StateManager.icc.

00042 {
00043   return suppressAbortion;
00044 }

G4bool G4StateManager::RegisterDependent ( G4VStateDependent aDependent,
G4bool  bottom = false 
)

Definition at line 134 of file G4StateManager.cc.

Referenced by G4VStateDependent::G4VStateDependent().

00135 {
00136     G4bool ack=true;
00137     if(!bottom)
00138     {
00139       theDependentsList.push_back(aDependent);
00140     }
00141     else
00142     { 
00143       if(theBottomDependent)
00144       {
00145         theDependentsList.push_back(theBottomDependent);
00146       }
00147       theBottomDependent = aDependent;
00148     }
00149     return ack;
00150 }

G4VStateDependent * G4StateManager::RemoveDependent ( const G4VStateDependent aDependent  ) 

Definition at line 220 of file G4StateManager.cc.

00221 {
00222   G4VStateDependent* tmp = 0;
00223   for (std::vector<G4VStateDependent*>::iterator i=theDependentsList.begin();
00224        i!=theDependentsList.end();)
00225   {
00226     if (**i==*aDependent) 
00227     {
00228       tmp = *i;
00229       i = theDependentsList.erase(i);
00230     }
00231     else
00232     {
00233       ++i;
00234     }
00235   }
00236   return tmp;
00237 }

void G4StateManager::SetExceptionHandler ( G4VExceptionHandler eh  )  [inline]

Definition at line 53 of file G4StateManager.icc.

Referenced by G4VExceptionHandler::G4VExceptionHandler().

00054 {
00055   exceptionHandler = eh;
00056 }

G4bool G4StateManager::SetNewState ( G4ApplicationState  requestedState,
const char *  msg 
)

Definition at line 189 of file G4StateManager.cc.

References G4State_Abort, G4State_EventProc, and G4VStateDependent::Notify().

00190 {
00191    if(requestedState==G4State_Abort && suppressAbortion>0)
00192    {
00193      if(suppressAbortion==2)  { return false; }
00194      if(theCurrentState==G4State_EventProc)  { return false; }
00195    }
00196    msgptr = msg;
00197    size_t i=0;
00198    G4bool ack = true;
00199    G4ApplicationState savedState = thePreviousState;
00200    thePreviousState = theCurrentState;
00201    while ((ack) && (i<theDependentsList.size()))
00202    {
00203      ack = theDependentsList[i]->Notify(requestedState);
00204      i++;
00205    }
00206    if(theBottomDependent)
00207    {
00208      ack = theBottomDependent->Notify(requestedState);
00209    }
00210 
00211    if(!ack)
00212    { thePreviousState = savedState; }
00213    else
00214    { theCurrentState = requestedState; }
00215    msgptr = 0;
00216    return ack;
00217 }

G4bool G4StateManager::SetNewState ( G4ApplicationState  requestedState  ) 

Definition at line 185 of file G4StateManager.cc.

Referenced by G4ErrorPropagatorManager::CloseGeometry(), G4TheRayTracer::CreateBitMap(), G4RunManagerKernel::DefineWorldVolume(), G4RunManagerKernel::G4RunManagerKernel(), G4RunManagerKernel::InitializePhysics(), G4RunManagerKernel::RunInitialization(), G4RunManagerKernel::RunTermination(), G4RunManager::~G4RunManager(), and G4RunManagerKernel::~G4RunManagerKernel().

00186 { return SetNewState(requestedState,0); }

void G4StateManager::SetSuppressAbortion ( G4int  i  )  [inline]

Definition at line 35 of file G4StateManager.icc.

Referenced by G4UIcontrolMessenger::SetNewValue().

00036 {
00037   suppressAbortion = i;
00038 }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:53:25 2013 for Geant4 by  doxygen 1.4.7