GammaLib 2.0.0
Loading...
Searching...
No Matches
GFitsTableCFloatCol.hpp
Go to the documentation of this file.
1/***************************************************************************
2 * GFitsTableCFloatCol.hpp - FITS table single precision complex column *
3 * ----------------------------------------------------------------------- *
4 * copyright (C) 2008-2017 by Juergen Knoedlseder *
5 * ----------------------------------------------------------------------- *
6 * *
7 * This program is free software: you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation, either version 3 of the License, or *
10 * (at your option) any later version. *
11 * *
12 * This program is distributed in the hope that it will be useful, *
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15 * GNU General Public License for more details. *
16 * *
17 * You should have received a copy of the GNU General Public License *
18 * along with this program. If not, see <http://www.gnu.org/licenses/>. *
19 * *
20 ***************************************************************************/
21/**
22 * @file GFitsTableCFloatCol.hpp
23 * @brief FITS table float complex column class interface definition
24 * @author Juergen Knoedlseder
25 */
26
27#ifndef GFITSTABLECFLOATCOL_HPP
28#define GFITSTABLECFLOATCOL_HPP
29
30/* __ Includes ___________________________________________________________ */
31#include <string>
32#include "GFits.hpp"
33#include "GFitsTableCol.hpp"
34
35
36/***********************************************************************//**
37 * @class GFitsTableCFloatCol
38 *
39 * @brief FITS table float complex column
40 *
41 * This class implements a FITS table float complex column.
42 ***************************************************************************/
44
45public:
46 // Constructors and destructors
48 GFitsTableCFloatCol(const std::string& name, const int& nrows,
49 const int& size = 1);
51 virtual ~GFitsTableCFloatCol(void);
52
53 // Operators
55 GFits::cfloat& operator()(const int& row, const int& inx = 0);
56 const GFits::cfloat& operator()(const int& row, const int& inx = 0) const;
57
58 // Implement virtual methods
59 virtual void clear(void);
60 virtual GFitsTableCFloatCol* clone(void) const;
61 virtual std::string classname(void) const;
62 virtual std::string string(const int& row, const int& col = 0) const;
63 virtual double real(const int& row, const int& col = 0) const;
64 virtual int integer(const int& row, const int& col = 0) const;
65 virtual void insert(const int& row, const int& nrows);
66 virtual void remove(const int& row, const int& nrows);
67 virtual bool is_loaded(void) const;
68
69 // Other methods
70 GFits::cfloat* data(void);
71 GFits::cfloat* nulval(void);
72 void nulval(const GFits::cfloat* value);
73
74private:
75 // Private methods
76 void init_members(void);
77 void copy_members(const GFitsTableCFloatCol& column);
78 void free_members(void);
79 void alloc_nulval(const GFits::cfloat* value);
80
81 // Implemented virtual base class methods
82 virtual void alloc_data(void);
83 virtual void init_data(void);
84 virtual void fetch_data(void) const;
85 virtual void resize_data(const int& index, const int& number);
86 virtual void release_data(void);
87 virtual void* ptr_data(const int& index = 0);
88 virtual void* ptr_nulval(void);
89 virtual std::string ascii_format(void) const;
90
91 // Private data area
92 GFits::cfloat* m_data; //!< Data vector
93 GFits::cfloat* m_nulval; //!< NULL value
94};
95
96
97/***********************************************************************//**
98 * @brief Return class name
99 *
100 * @return String containing the class name ("GFitsTableCFloatCol").
101 ***************************************************************************/
102inline
103std::string GFitsTableCFloatCol::classname(void) const
104{
105 return ("GFitsTableCFloatCol");
106}
107
108
109/***********************************************************************//**
110 * @brief Checks if column has been loaded
111 *
112 * @return True if column has been loaded, false otherwise
113 ***************************************************************************/
114inline
116{
117 return (m_data != NULL);
118}
119
120
121/***********************************************************************//**
122 * @brief Returns pointer to column data
123 *
124 * @return Pointer to column data.
125 ***************************************************************************/
126inline
128{
129 return m_data;
130}
131
132
133/***********************************************************************//**
134 * @brief Returns pointer to nul value
135 *
136 * @return Pointer to nul value.
137 ***************************************************************************/
138inline
143
144
145/***********************************************************************//**
146 * @brief Returns void pointer to column data
147 *
148 * @return Void pointer to column data.
149 ***************************************************************************/
150inline
151void* GFitsTableCFloatCol::ptr_data(const int& index)
152{
153 return (m_data+index);
154}
155
156
157/***********************************************************************//**
158 * @brief Returns void pointer to nul value
159 *
160 * @return Void pointer to nul value.
161 ***************************************************************************/
162inline
164{
165 return m_nulval;
166}
167
168#endif /* GFITSTABLECFLOATCOL_HPP */
FITS table column abstract base class definition.
FITS file class interface definition.
FITS table float complex column.
void copy_members(const GFitsTableCFloatCol &column)
Copy class members.
void alloc_nulval(const GFits::cfloat *value)
Allocates null value.
virtual void alloc_data(void)
Allocates column data.
virtual void insert(const int &row, const int &nrows)
Insert rows in column.
virtual std::string ascii_format(void) const
Returns format string of ASCII table.
virtual void * ptr_data(const int &index=0)
Returns void pointer to column data.
virtual void init_data(void)
Initialise column data.
virtual int integer(const int &row, const int &col=0) const
Get integer value (real part)
virtual void release_data(void)
Release column data.
virtual GFitsTableCFloatCol * clone(void) const
Clone column.
GFits::cfloat & operator()(const int &row, const int &inx=0)
Column data access operator.
GFitsTableCFloatCol & operator=(const GFitsTableCFloatCol &column)
Assignment operator.
void free_members(void)
Delete class members.
void init_members(void)
Initialise class members.
virtual void * ptr_nulval(void)
Returns void pointer to nul value.
virtual void clear(void)
Clear instance.
virtual void resize_data(const int &index, const int &number)
Resize column data.
virtual double real(const int &row, const int &col=0) const
Get double precision value (real part)
GFits::cfloat * m_nulval
NULL value.
virtual void remove(const int &row, const int &nrows)
Remove rows from column.
virtual void fetch_data(void) const
Fetch column data.
GFits::cfloat * nulval(void)
Returns pointer to nul value.
GFitsTableCFloatCol(void)
Constructor.
virtual std::string classname(void) const
Return class name.
GFits::cfloat * m_data
Data vector.
virtual bool is_loaded(void) const
Checks if column has been loaded.
virtual std::string string(const int &row, const int &col=0) const
Get string value.
GFits::cfloat * data(void)
Returns pointer to column data.
virtual ~GFitsTableCFloatCol(void)
Destructor.
Abstract interface for FITS table column.
const int & nrows(void) const
Returns number of rows in column.
const int & number(void) const
Returns number of elements in column.
const std::string & name(void) const
Returns column name.