SLIC  6.1.1
Simulation for the Linear Collider (SLIC) - Geant4 simulation application
Public Types | Public Member Functions | Private Attributes | List of all members
ModuleRegistry Class Reference

A central store for accessing Module objects. More...

#include <ModuleRegistry.hh>

Inheritance diagram for ModuleRegistry:
Singleton< ModuleRegistry > Module

Public Types

typedef std::map< std::string, Module * > ModuleMap
 
- Public Types inherited from Module
enum  ModuleStatus { eOkay = 0 , eNotInitialized = 1 , eBadState = 2 , eFatalError = 3 }
 

Public Member Functions

 ModuleRegistry ()
 
virtual ~ModuleRegistry ()
 
void deleteModules ()
 
void deregisterModule (const std::string &name)
 
void deregisterModule (Module *module)
 
Module * findModule (const std::string &name)
 
void print ()
 
void registerModule (Module *module)
 
- Public Member Functions inherited from Singleton< ModuleRegistry >
 Singleton ()
 
 ~Singleton ()
 
void release ()
 
- Public Member Functions inherited from Module
virtual ~Module ()
 
virtual void beginEvent (const G4Event *)
 
virtual void beginRun (const G4Run *)
 
virtual void cleanup ()
 
bool deleteOnExit ()
 
virtual void endEvent (const G4Event *)
 
virtual void endRun (const G4Run *)
 
const std::string & getName () const
 
ModuleStatus getStatus () const
 
virtual void initialize ()
 
LogStream & log ()
 
virtual void postTracking (const G4Track *)
 
virtual void preTracking (const G4Track *)
 
virtual void reset ()
 
virtual void stepping (const G4Step *)
 

Private Attributes

ModuleMap m_modules
 

Additional Inherited Members

- Static Public Member Functions inherited from Singleton< ModuleRegistry >
static ModuleRegistry * instance ()
 
- Public Attributes inherited from Module
bool m_deleteOnExit
 
LogStream * m_log
 
std::string m_name
 
ModuleStatus m_status
 
- Protected Member Functions inherited from Module
 Module (const std::string &name, bool deleteOnExit=true, bool autoRegister=true)
 

Detailed Description

A central store for accessing Module objects.

Definition at line 18 of file ModuleRegistry.hh.

Member Typedef Documentation

◆ ModuleMap

typedef std::map<std::string, Module*> ModuleMap

A map of names to Modules.

Definition at line 25 of file ModuleRegistry.hh.

Constructor & Destructor Documentation

◆ ModuleRegistry()

Class constructor.

Definition at line 10 of file ModuleRegistry.cc.

◆ ~ModuleRegistry()

~ModuleRegistry ( )
virtual

Class destructor.

Definition at line 14 of file ModuleRegistry.cc.

Member Function Documentation

◆ deleteModules()

void deleteModules ( )

Delete all modules.

Definition at line 56 of file ModuleRegistry.cc.

References ModuleRegistry::m_modules.

◆ deregisterModule() [1/2]

void deregisterModule ( const std::string &  name)

Remove a Module from the registry by name.

Parameters
[in]nameThe name of the Module to deregister.

Definition at line 38 of file ModuleRegistry.cc.

References ModuleRegistry::m_modules, and LOG::name.

◆ deregisterModule() [2/2]

void deregisterModule ( Module *  module)

Remove a Module from the registry.

Parameters
[in]moduleThe Module to deregister.

Definition at line 34 of file ModuleRegistry.cc.

References Module::getName().

◆ findModule()

Module * findModule ( const std::string &  name)

Find a module by its name.

Parameters
[in]nameThe name of the Module to find.
Returns
The Module with matching name or null if not found.

Definition at line 17 of file ModuleRegistry.cc.

References ModuleRegistry::m_modules, and LOG::name.

◆ print()

void print ( )

Print the list of registered modules to the log.

Definition at line 46 of file ModuleRegistry.cc.

References LOG::always, LOG::endl, Module::log(), and ModuleRegistry::m_modules.

◆ registerModule()

void registerModule ( Module *  module)

Register a module by its name.

Parameters
[in]moduleThe Module to register.

Definition at line 21 of file ModuleRegistry.cc.

References Module::getName(), Module::log(), ModuleRegistry::m_modules, and LogStream::warning().

Member Data Documentation

◆ m_modules

ModuleMap m_modules
private

The documentation for this class was generated from the following files: