Change request #563
Derive all GammaLib classes from GBase
| Status: | Closed | Start date: | 10/13/2012 | |
|---|---|---|---|---|
| Priority: | High | Due date: | ||
| Assigned To: | % Done: | 100% | ||
| Category: | - | |||
| Target version: | - | |||
| Duration: |
Description
An interface class GBase should be introduced from which all other GammaLib classes derive. This makes sure that all GammaLib classes implement the required interfaces.
Recurrence
No recurrence.
History
#1
Updated by Knödlseder Jürgen almost 14 years ago
- Status changed from New to In Progress
- % Done changed from 0 to 30
Here the list of classes for which GBase is not (yet) used:
Not yet used as we may introduce a generic GRegistry base class:
GModelRegistry.hpp (clone & clear missing)
GModelSpatialRegistry.hpp (clone & clear missing)
GModelSpectralRegistry.hpp (clone & clear missing)
GModelTemporalRegistry.hpp (clone & clear missing)
GObservationRegistry.hpp (clone & clear missing)
GWcsRegistry.hpp (clone & clear missing)
The following classes will not derive from GBase:
GException.hpp
GFunction.hpp (to be discussed)
GIntegrand.hpp (to be discussed)
GOptimizerFunction.hpp (to be discussed)
GLog.hpp (to be discussed)
GTestSuite.hpp (to be discussed)
#2
Updated by Knödlseder Jürgen almost 14 years ago
In principle, the friend functions used for printing can now be put in the base class. This removes quite a bunch of code !!!
#3
Updated by Knödlseder Jürgen almost 14 years ago
To handle printing by the base class, a new base module has been introduced that implements the os and GLog streamers on the GBase level. We can thus proceed now to remove all the streamers from the classes.
#4
Updated by Knödlseder Jürgen almost 14 years ago
I removed the ostream and GLog friends from the classes. The ostream and GLog functions are now implement on the level of the base module, and take GBase as a reference argument. Implementation at the class level is not more required.
#5
Updated by Knödlseder Jürgen almost 14 years ago
- % Done changed from 30 to 70
#6
Updated by Knödlseder Jürgen almost 14 years ago
- Status changed from In Progress to Closed
- % Done changed from 70 to 100
Almost all GammaLib classes now derive from GBase.