CCfits  2.4
BinTable.h
1 // Astrophysics Science Division,
2 // NASA/ Goddard Space Flight Center
3 // HEASARC
4 // http://heasarc.gsfc.nasa.gov
5 // e-mail: ccfits@legacy.gsfc.nasa.gov
6 //
7 // Original author: Ben Dorman
8 
9 #ifndef BINTABLE_H
10 #define BINTABLE_H 1
11 
12 // HDUCreator
13 #include "HDUCreator.h"
14 // Table
15 #include "Table.h"
16 
17 // needed for CLONE_DEFECT
18 #ifdef _MSC_VER
19 #include "MSconfig.h"
20 #endif
21 
22 
23 namespace CCfits {
24 
130  class BinTable : public Table //## Inherits: <unnamed>%3804A7E75F10
131  {
132 
133  public:
134  virtual BinTable * clone (FITSBase* p) const;
135  virtual void readData (bool readFlag = false, const std::vector<String>& keys = std::vector<String>());
136  virtual void addColumn (ValueType type, const String& columnName, long repeatWidth, const String& colUnit = String(""), long decimals = 0, size_t columnNumber = 0);
137 
138  // Additional Public Declarations
139 
140  protected:
141  BinTable (FITSBase* p, const String &hduName = String(""), bool readFlag = false, const std::vector<String>& keys = std::vector<String>(), int version = 1);
142  BinTable (FITSBase* p, const String &hduName, int rows, const std::vector<String>& columnName = std::vector<String>(), const std::vector<String>& columnFmt = std::vector<String>(), const std::vector<String>& columnUnit = std::vector<String>(), int version = 1);
143  // ExtHDU constructor for getting ExtHDUs by number.
144  // Necessary since EXTNAME is a reserved not required
145  // keyword.
146  BinTable (FITSBase* p, int number);
147  ~BinTable();
148 
149  // Additional Protected Declarations
150 
151  private:
152  BinTable(const BinTable &right);
153 
154  virtual void readTableHeader (int ncols, std::vector<String>& colName, std::vector<String>& colFmt, std::vector<String>& colUnit);
155  void readVariableColumns (const std::vector<String> &varColumns);
156 
157  // Additional Private Declarations
158 
159  private: //## implementation
160  // Additional Implementation Declarations
161  friend class HDUCreator;
162  };
163 
164  // Class CCfits::BinTable
165 
166 } // namespace CCfits
167 
168 
169 #endif