Generic registry template for polymorphic processor implementations. More...
#include <ProcessRegistry.h>
Classes | |
class | Factory |
Factory helper class to instantiate a processor. More... | |
class | Registry |
template to generate a registry singleton for a type. More... | |
Protected Member Functions | |
virtual Base_t * | instance (const char *name, const CalibBase_t *calib, Parent_t *parent) const =0 |
virtual method to implement by respective processor instance classes More... | |
ProcessRegistry (const char *name) | |
instantiate registry and registers itself with name More... | |
virtual | ~ProcessRegistry () |
Static Protected Member Functions | |
static Base_t * | create (const char *name, const CalibBase_t *calib, Parent_t *parent) |
create an instance of name, given a calibration calib and parent parent More... | |
Private Types | |
typedef std::map< std::string, const ProcessRegistry * > | RegistryMap |
Static Private Member Functions | |
static RegistryMap * | getRegistry () |
return map of all registered processes, allocate if necessary More... | |
static void | registerProcess (const char *name, const ProcessRegistry *process) |
static void | unregisterProcess (const char *name) |
Private Attributes | |
const char * | name |
Friends | |
class | Factory |
Generic registry template for polymorphic processor implementations.
template parameters are: base class, calibration base class and a pointer to a user-definable "parent type". Template allows registration by name of a given base type using the factory. The variable processors can register themselves with the registry of the common base class.
Definition at line 32 of file ProcessRegistry.h.
|
private |
Definition at line 96 of file ProcessRegistry.h.
|
inlineprotected |
instantiate registry and registers itself with name
Definition at line 79 of file ProcessRegistry.h.
References PhysicsTools::ProcessRegistry< Base_t, CalibBase_t, Parent_t >::registerProcess().
|
inlineprotectedvirtual |
Definition at line 81 of file ProcessRegistry.h.
References PhysicsTools::ProcessRegistry< Base_t, CalibBase_t, Parent_t >::name, and PhysicsTools::ProcessRegistry< Base_t, CalibBase_t, Parent_t >::unregisterProcess().
|
staticprotected |
create an instance of name, given a calibration calib and parent parent
Referenced by PhysicsTools::ProcessRegistry< Base_t, CalibBase_t, Parent_t >::Factory::create().
|
staticprivate |
return map of all registered processes, allocate if necessary
|
protectedpure virtual |
virtual method to implement by respective processor instance classes
Implemented in PhysicsTools::ProcessRegistry< Base_t, CalibBase_t, Parent_t >::Registry< Instance_t, Calibration_t >.
|
staticprivate |
|
staticprivate |
|
friend |
Definition at line 76 of file ProcessRegistry.h.
|
private |
Definition at line 101 of file ProcessRegistry.h.
Referenced by BeautifulSoup.Tag::_invert(), python.rootplot.utilities.Hist::TGraph(), python.rootplot.utilities.Hist::TH1F(), python.Vispa.Views.PropertyView.Property::valueChanged(), and PhysicsTools::ProcessRegistry< Base_t, CalibBase_t, Parent_t >::~ProcessRegistry().