GammaLib  1.7.0.dev
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
GModelTemporalRegistry Class Reference

Interface definition for the temporal model registry class. More...

#include <GModelTemporalRegistry.hpp>

Inheritance diagram for GModelTemporalRegistry:
GRegistry

Public Member Functions

 GModelTemporalRegistry (void)
 Void constructor. More...
 
 GModelTemporalRegistry (const GModelTemporal *model)
 Model constructor. More...
 
 GModelTemporalRegistry (const GModelTemporalRegistry &registry)
 Copy constructor. More...
 
virtual ~GModelTemporalRegistry (void)
 Destructor. More...
 
GModelTemporalRegistryoperator= (const GModelTemporalRegistry &registry)
 Assignment operator. More...
 
std::string classname (void) const
 Return class name. More...
 
int size (void) const
 Return number of registered models. More...
 
GModelTemporalalloc (const GXmlElement &xml) const
 Allocate temporal 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...
 

Protected Member Functions

void init_members (void)
 Initialise class members. More...
 
void copy_members (const GModelTemporalRegistry &registry)
 Copy class members. More...
 
void free_members (void)
 Delete class members. More...
 

Static Private Member Functions

static int & number ()
 
static GRegistryPointer< const
GModelTemporal * > & 
models ()
 

Detailed Description

Interface definition for the temporal model registry class.

The registry class allows the registration of temporal 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 temporal models that are available throughout all linked libraries. To register a temporal model it is sufficient to add

const GModelTemporalXXX      g_temporal_XXX_seed;
const GModelTemporalRegistry g_temporal_XXX_registry(&g_spectral_XXX_seed);

at the top of the .cpp file of the temporal model. Here, XXX is a unique name that describes the model.

Definition at line 56 of file GModelTemporalRegistry.hpp.

Constructor & Destructor Documentation

GModelTemporalRegistry::GModelTemporalRegistry ( void  )

Void constructor.

Definition at line 58 of file GModelTemporalRegistry.cpp.

References init_members(), models(), and size().

GModelTemporalRegistry::GModelTemporalRegistry ( const GModelTemporal model)

Model constructor.

Parameters
[in]modelModel.

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 GModelTemporalRegistry.cpp.

References init_members(), models(), number(), size(), and GModelTemporal::type().

GModelTemporalRegistry::GModelTemporalRegistry ( const GModelTemporalRegistry registry)

Copy constructor.

Parameters
[in]registryRegistry.

Definition at line 132 of file GModelTemporalRegistry.cpp.

References copy_members(), and init_members().

GModelTemporalRegistry::~GModelTemporalRegistry ( void  )
virtual

Destructor.

Definition at line 148 of file GModelTemporalRegistry.cpp.

References free_members().

Member Function Documentation

GModelTemporal * GModelTemporalRegistry::alloc ( const GXmlElement xml) const

Allocate temporal model that is found in XML element.

Parameters
[in]xmlXML element.
Returns
Pointer to temporal model.
Exceptions
GException::invalid_valueNo appropriate temporal model found in XML element.

Returns a pointer to a temporal 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 GModelTemporalRegistry.cpp.

References GXmlElement::attribute(), G_ALLOC, models(), GModelTemporal::read(), and size().

Referenced by GCTAModelIrfBackground::xml_temporal(), GCTAModelAeffBackground::xml_temporal(), GCTAModelCubeBackground::xml_temporal(), GCTAModelRadialAcceptance::xml_temporal(), GCTAModelBackground::xml_temporal(), and GModelSky::xml_temporal().

std::string GModelTemporalRegistry::classname ( void  ) const
inlinevirtual

Return class name.

Returns
String containing the class name ("GModelTemporalRegistry").

Implements GRegistry.

Definition at line 105 of file GModelTemporalRegistry.hpp.

void GModelTemporalRegistry::copy_members ( const GModelTemporalRegistry registry)
protected

Copy class members.

Parameters
[in]registryRegistry.

Definition at line 331 of file GModelTemporalRegistry.cpp.

Referenced by GModelTemporalRegistry(), and operator=().

void GModelTemporalRegistry::free_members ( void  )
protected

Delete class members.

Definition at line 341 of file GModelTemporalRegistry.cpp.

Referenced by operator=(), and ~GModelTemporalRegistry().

void GModelTemporalRegistry::init_members ( void  )
protected

Initialise class members.

Definition at line 319 of file GModelTemporalRegistry.cpp.

Referenced by GModelTemporalRegistry(), and operator=().

static GRegistryPointer<const GModelTemporal*>& GModelTemporalRegistry::models ( )
inlinestaticprivate

Definition at line 92 of file GModelTemporalRegistry.hpp.

Referenced by alloc(), GModelTemporalRegistry(), name(), and print().

std::string GModelTemporalRegistry::name ( const int &  index) const
virtual

Returns model name.

Parameters
[in]indexModel index [0,...,size()-1].
Returns
Model name.
Exceptions
GException::out_of_rangeModel index is out of range.

Implements GRegistry.

Definition at line 252 of file GModelTemporalRegistry.cpp.

References G_NAME, models(), and size().

Referenced by GException::model_invalid_temporal::model_invalid_temporal(), and print().

static int& GModelTemporalRegistry::number ( void  )
inlinestaticprivate

Definition at line 87 of file GModelTemporalRegistry.hpp.

Referenced by GModelTemporalRegistry(), and size().

GModelTemporalRegistry & GModelTemporalRegistry::operator= ( const GModelTemporalRegistry registry)

Assignment operator.

Parameters
[in]registryRegistry.
Returns
Reference to registry.

Definition at line 170 of file GModelTemporalRegistry.cpp.

References copy_members(), free_members(), and init_members().

std::string GModelTemporalRegistry::print ( const GChatter chatter = NORMAL) const
virtual

Print registry information.

Parameters
[in]chatterChattiness.
Returns
Registry content.

Implements GRegistry.

Definition at line 273 of file GModelTemporalRegistry.cpp.

References models(), name(), NORMAL, gammalib::parformat(), SILENT, size(), and gammalib::str().

int GModelTemporalRegistry::size ( void  ) const
inlinevirtual

Return number of registered models.

Returns
Number of registered models.

Returns the number of registered model.

Implements GRegistry.

Definition at line 119 of file GModelTemporalRegistry.hpp.

References number().

Referenced by alloc(), GModelTemporalRegistry(), GException::model_invalid_temporal::model_invalid_temporal(), name(), and print().


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