GammaLib
2.1.0.dev
|
Interface definition for the spatial model registry class. More...
#include <GModelSpatialRegistry.hpp>
Public Member Functions | |
GModelSpatialRegistry (void) | |
Void constructor. More... | |
GModelSpatialRegistry (const GModelSpatial *model) | |
Model constructor. More... | |
GModelSpatialRegistry (const GModelSpatialRegistry ®istry) | |
Copy constructor. More... | |
virtual | ~GModelSpatialRegistry (void) |
Destructor. More... | |
GModelSpatialRegistry & | operator= (const GModelSpatialRegistry ®istry) |
Assignment operator. More... | |
std::string | classname (void) const |
Return class name. More... | |
int | size (void) const |
Return number of registered models. More... | |
GModelSpatial * | 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 GModelSpatialRegistry ®istry) |
Copy class members. More... | |
void | free_members (void) |
Delete class members. More... | |
Static Private Member Functions | |
static int & | number () |
static GRegistryPointer< const GModelSpatial * > & | 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 GModelSpatialXXX g_spatial_XXX_seed; const GModelSpatialRegistry 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 GModelSpatialRegistry.hpp.
GModelSpatialRegistry::GModelSpatialRegistry | ( | void | ) |
Void constructor.
Definition at line 58 of file GModelSpatialRegistry.cpp.
References init_members(), models(), and size().
GModelSpatialRegistry::GModelSpatialRegistry | ( | const GModelSpatial * | 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 GModelSpatialRegistry.cpp.
References init_members(), models(), number(), size(), and GModelSpatial::type().
GModelSpatialRegistry::GModelSpatialRegistry | ( | const GModelSpatialRegistry & | registry | ) |
Copy constructor.
[in] | registry | Registry. |
Definition at line 132 of file GModelSpatialRegistry.cpp.
References copy_members(), and init_members().
|
virtual |
GModelSpatial * GModelSpatialRegistry::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 GModelSpatialRegistry.cpp.
References GXmlElement::attribute(), G_ALLOC, models(), GModelSpatial::read(), and size().
Referenced by GModelSpatialComposite::read(), and GModelSky::xml_spatial().
|
inlinevirtual |
Return class name.
Implements GRegistry.
Definition at line 105 of file GModelSpatialRegistry.hpp.
|
protected |
Copy class members.
[in] | registry | Registry. |
Definition at line 330 of file GModelSpatialRegistry.cpp.
Referenced by GModelSpatialRegistry(), and operator=().
|
protected |
Delete class members.
Definition at line 340 of file GModelSpatialRegistry.cpp.
Referenced by operator=(), and ~GModelSpatialRegistry().
|
protected |
Initialise class members.
Definition at line 318 of file GModelSpatialRegistry.cpp.
Referenced by GModelSpatialRegistry(), and operator=().
|
inlinestaticprivate |
Definition at line 92 of file GModelSpatialRegistry.hpp.
Referenced by alloc(), GModelSpatialRegistry(), 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 GModelSpatialRegistry.cpp.
References G_NAME, models(), and size().
Referenced by print().
|
inlinestaticprivate |
Definition at line 87 of file GModelSpatialRegistry.hpp.
Referenced by GModelSpatialRegistry(), and size().
GModelSpatialRegistry & GModelSpatialRegistry::operator= | ( | const GModelSpatialRegistry & | registry | ) |
Assignment operator.
[in] | registry | Registry. |
Definition at line 170 of file GModelSpatialRegistry.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 GModelSpatialRegistry.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 GModelSpatialRegistry.hpp.
References number().
Referenced by alloc(), GModelSpatialRegistry(), name(), and print().