-
The coding and design conventions (CDC) document was also updated.
-
I ran this build: CXXFLAGS="-Wall -Wno-c++11-long-long -pedantic -std=c++98" ./configure make -j 1 This commit fixes the few compiler warnings that showed up (all unimportant). There is no way to fix the issue that `long long` is not standard C++98, but it's an extension that has been supported by most compilers for a decade, so it's OK to ignore: http://stackoverflow.com/questions/4017621/how-to-do-portable-64-bit-arithmetic-without-compiler-warnings
-
The GFits class allows for flexible HDU manipulation using the container methods set(), append(), insert(), remove() and extend(). So far the code was unable to save correctly a manipulated FITS file. This has now been corrected for. If for a given extension number the type of a HDU has changed during manipulations (e.g. an image has become a table or vice versa), the old HDU is deleted and a new HDU is inserted in place. Also, exedent HDUs that are not present anymore in the GFits object will be removed from the FITS file upon saving.
-
The GFits class now derives from GContainer and implements all generic container class methods (at(), size(), isempty(), set(), append(), insert(), remove(), reserve(), extend()). The hashdu() method has been renamed to contains() for compliance with other container classes. The hdu() methods have been renamed to at(), also for compliance. Boolean arguments are now passed as const references, and members are returned as const references. HDU access operators[] have been implemented to access FITS extensions without range checking.
-
GTestSuites The GTestSuites class now derives from GContainer and implements the usual container class methods (at(), size(), isempty(), set(), append(), insert(), remove(), reserve() and extend()). The operator[] now returns pointers to GTestSuite. The name() and timestamp() methods now return const references. GTestSuite The GTestSuite class now derives from GBase. This implies that the clone() method needs to be implemented for derived classes. The test_assert() method now takes a const reference for the boolean argument. The name(), errors(), failures(), and timestamp() methods return const references. The obsolete add_test() method has been removed. The unit tests have been updated to conform to the new interfaces.
-
A major revision of the GFitsTable class interface has been done, making it more similar to the interface of other container classes. In particular, the column access operator now returns a pointer instead of a reference, preventing code slicing. The set() method has been introduced to set columns in a table. The append_column() and insert_column() methods have been renamed to append() and insert() as they act on columns, and a table is a column container. Some arguments or return values are now also declared as const references. A size() method has been added that return the number of table columns. As the GFitsTable class is widely used throughout GammaLib, a number of classes had to be adapted to this new interface.
-
…ement elements() method for defining variable-length column. A variable-length column is now constructued by passing a negative column vector length. The size of a row is specified using the elements() method that makes use of the resize_data() method implemented by the derived classes. The only column type that is not yet implemented is the Bit column. Also the string columns do not yet work properly for variable-length columns.
-
… a variable-length column. The generic GFitsTableCol::elements() method has been implemented that makes use of the virtual data_resize() method that should be implemented by all derived classes. This method has so far been implemented and tested for the GFitsTableShortCol class. A unit test has also been added for this class that uses the elements() method for setup of the variable-length column.
-
Include the cstdlib header as this header is needed to exposure the system function.
-
Macros are now used to reduce the code complexity and guarantee uniform testing of all classes. The tests have furthermore been adapted to the new unit test suite.