#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) |
G4VStateDependent * | RemoveDependent (const G4VStateDependent *aDependent) |
G4String | GetStateString (G4ApplicationState aState) const |
void | SetSuppressAbortion (G4int i) |
G4int | GetSuppressAbortion () const |
const char * | GetMessage () const |
void | SetExceptionHandler (G4VExceptionHandler *eh) |
G4VExceptionHandler * | GetExceptionHandler () const |
Static Public Member Functions | |
static G4StateManager * | GetStateManager () |
Protected Member Functions | |
G4StateManager () |
Definition at line 60 of file G4StateManager.hh.
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 }
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().
G4VExceptionHandler * G4StateManager::GetExceptionHandler | ( | ) | const [inline] |
const char * G4StateManager::GetMessage | ( | ) | const [inline] |
G4ApplicationState G4StateManager::GetPreviousState | ( | ) | const |
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] |
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().
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().