A class for generating concrete UserAction derived classes based on the factory pattern. This code supplies a CPP macro which allows the classes to self-register and thus no modification of this class is needed in order to expand the list of classes it knows about. More...
#include <string>
#include <vector>
#include <map>
#include "nutools/G4Base/UserAction.h"
Go to the source code of this file.
Classes | |
class | g4b::UserActionFactory |
struct | g4b::UserActionFactory::Cleaner |
Namespaces | |
g4b | |
basic interface to Geant4 for ART-based software | |
Macros | |
#define | USERACTIONREG(_name) |
#define | USERACTIONREG3(_ns, _name, _fqname) |
#define | USERACTIONREG4(_nsa, _nsb, _name, _fqname) |
Typedefs | |
typedef g4b::UserAction *(* | g4b::UserActionCtorFuncPtr_t) () |
A class for generating concrete UserAction derived classes based on the factory pattern. This code supplies a CPP macro which allows the classes to self-register and thus no modification of this class is needed in order to expand the list of classes it knows about.
Implemented as a singleton holding a map between names and pointers-to-functions (that call a class default constructor). The functions pointers must return UserAction*.
Definition in file UserActionFactory.h.
#define USERACTIONREG | ( | _name | ) |
Definition at line 112 of file UserActionFactory.h.
#define USERACTIONREG3 | ( | _ns, | |
_name, | |||
_fqname | |||
) |
Definition at line 119 of file UserActionFactory.h.
#define USERACTIONREG4 | ( | _nsa, | |
_nsb, | |||
_name, | |||
_fqname | |||
) |
Definition at line 127 of file UserActionFactory.h.