GammaLib
2.1.0.dev
|
Interface definition for the spatial model registry class. More...
#include <GCTAModelSpatialRegistry.hpp>
Public Member Functions | |
GCTAModelSpatialRegistry (void) | |
Void constructor. More... | |
GCTAModelSpatialRegistry (const GCTAModelSpatial *model) | |
Model constructor. More... | |
GCTAModelSpatialRegistry (const GCTAModelSpatialRegistry ®istry) | |
Copy constructor. More... | |
virtual | ~GCTAModelSpatialRegistry (void) |
Destructor. More... | |
GCTAModelSpatialRegistry & | operator= (const GCTAModelSpatialRegistry ®istry) |
Assignment operator. More... | |
std::string | classname (void) const |
Return class name. More... | |
int | size (void) const |
Return number of registered models. More... | |
GCTAModelSpatial * | alloc (const GXmlElement &xml) const |
Allocate spatial model that is found in XML element. More... | |
std::string | name (const int &index) const |
Returns model name. More... | |
std::string | print (const GChatter &chatter=NORMAL) const |
Print registry information. More... | |
Public Member Functions inherited from GRegistry | |
virtual | ~GRegistry (void) |
Destructor. More... | |
std::string | content (void) const |
Return list of names in registry. More... | |
Protected Member Functions | |
void | init_members (void) |
Initialise class members. More... | |
void | copy_members (const GCTAModelSpatialRegistry ®istry) |
Copy class members. More... | |
void | free_members (void) |
Delete class members. More... | |
Static Private Member Functions | |
static int & | number () |
static GRegistryPointer< const GCTAModelSpatial * > & | models () |
Interface definition for the spatial model registry class.
The registry class allows the registration of spatial models that are not necessarily compiled into the GammaLib. It uses the static members m_number and m_models which are allocated globally to keep track of spatial models that are available throughout all linked libraries. To register a spatial model it is sufficient to add
const GCTAModelSpatialXXX g_spatial_XXX_seed; const GCTAModelSpatialRegistry g_spatial_XXX_registry(&g_spatial_XXX_seed);
at the top of the .cpp file of the spatial model. Here, XXX is a unique name that describes the model.
Definition at line 56 of file GCTAModelSpatialRegistry.hpp.
GCTAModelSpatialRegistry::GCTAModelSpatialRegistry | ( | void | ) |
Void constructor.
Definition at line 58 of file GCTAModelSpatialRegistry.cpp.
References init_members(), models(), and size().
GCTAModelSpatialRegistry::GCTAModelSpatialRegistry | ( | const GCTAModelSpatial * | model | ) |
Model constructor.
[in] | model | Model. |
Construct registry by adding a model to the registry. This is the standard constructor that is used to register a new model to GammaLib.
Definition at line 85 of file GCTAModelSpatialRegistry.cpp.
References init_members(), models(), number(), size(), and GCTAModelSpatial::type().
GCTAModelSpatialRegistry::GCTAModelSpatialRegistry | ( | const GCTAModelSpatialRegistry & | registry | ) |
Copy constructor.
[in] | registry | Registry. |
Definition at line 132 of file GCTAModelSpatialRegistry.cpp.
References copy_members(), and init_members().
|
virtual |
GCTAModelSpatial * GCTAModelSpatialRegistry::alloc | ( | const GXmlElement & | xml | ) | const |
Allocate spatial model that is found in XML element.
[in] | xml | XML element. |
GException::invalid_value | No appropriate spatial model found in XML element. |
Returns a pointer to a spatial model instance that corresponds to the type found in an XML element. If no appropriate model is found the method will throw an exception.
Definition at line 210 of file GCTAModelSpatialRegistry.cpp.
References GXmlElement::attribute(), G_ALLOC, models(), GCTAModelSpatial::read(), and size().
Referenced by GCTAModelSpatialMultiplicative::read(), and GCTAModelBackground::xml_spatial().
|
inlinevirtual |
Return class name.
Implements GRegistry.
Definition at line 105 of file GCTAModelSpatialRegistry.hpp.
|
protected |
Copy class members.
[in] | registry | Registry. |
Definition at line 330 of file GCTAModelSpatialRegistry.cpp.
Referenced by GCTAModelSpatialRegistry(), and operator=().
|
protected |
Delete class members.
Definition at line 340 of file GCTAModelSpatialRegistry.cpp.
Referenced by operator=(), and ~GCTAModelSpatialRegistry().
|
protected |
Initialise class members.
Definition at line 318 of file GCTAModelSpatialRegistry.cpp.
Referenced by GCTAModelSpatialRegistry(), and operator=().
|
inlinestaticprivate |
Definition at line 92 of file GCTAModelSpatialRegistry.hpp.
Referenced by alloc(), GCTAModelSpatialRegistry(), name(), and print().
|
virtual |
Returns model name.
[in] | index | Model index [0,...,size()-1]. |
GException::out_of_range | Model index is out of range. |
Implements GRegistry.
Definition at line 252 of file GCTAModelSpatialRegistry.cpp.
References G_NAME, models(), and size().
Referenced by print().
|
inlinestaticprivate |
Definition at line 87 of file GCTAModelSpatialRegistry.hpp.
Referenced by GCTAModelSpatialRegistry(), and size().
GCTAModelSpatialRegistry & GCTAModelSpatialRegistry::operator= | ( | const GCTAModelSpatialRegistry & | registry | ) |
Assignment operator.
[in] | registry | Registry. |
Definition at line 170 of file GCTAModelSpatialRegistry.cpp.
References copy_members(), free_members(), and init_members().
Print registry information.
[in] | chatter | Chattiness (defaults to NORMAL). |
Implements GRegistry.
Definition at line 273 of file GCTAModelSpatialRegistry.cpp.
References models(), name(), NORMAL, gammalib::parformat(), SILENT, size(), and gammalib::str().
|
inlinevirtual |
Return number of registered models.
Returns the number of registered model.
Implements GRegistry.
Definition at line 119 of file GCTAModelSpatialRegistry.hpp.
References number().
Referenced by alloc(), GCTAModelSpatialRegistry(), name(), and print().