CCfits  2.7
BinTable.h
00001 //  Astrophysics Science Division,
00002 //  NASA/ Goddard Space Flight Center
00003 //  HEASARC
00004 //  http://heasarc.gsfc.nasa.gov
00005 //  e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //  Original author: Ben Dorman
00008 
00009 #ifndef BINTABLE_H
00010 #define BINTABLE_H 1
00011 
00012 // HDUCreator
00013 #include "HDUCreator.h"
00014 // Table
00015 #include "Table.h"
00016 
00017 // needed for CLONE_DEFECT
00018 #ifdef _MSC_VER
00019 #include "MSconfig.h"
00020 #endif
00021 
00022 
00023 namespace CCfits {
00024 
00130   class BinTable : public Table  //## Inherits: <unnamed>%3804A7E75F10
00131   {
00132 
00133     public:
00134       
00135         virtual BinTable * clone (FITS* p) const;
00136         virtual void readData (bool readFlag = false, const std::vector<String>& keys = std::vector<String>());
00137         virtual void addColumn (ValueType type, const String& columnName, long repeatWidth, const String& colUnit = String(""), long decimals = 0, size_t columnNumber = 0);
00138 
00139       // Additional Public Declarations
00140 
00141     protected:
00142       
00143         BinTable(const BinTable &right);
00144         BinTable (FITS* p, const String &hduName = String(""), bool readFlag = false, const std::vector<String>& keys = std::vector<String>(), int version = 1);
00145         BinTable (FITS* 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);
00146         // ctor for creating a grouping table
00147         BinTable (FITS* p, int version = 1, const String & groupName = String(""));
00148         //  ExtHDU constructor for getting ExtHDUs by number.
00149         //  Necessary since EXTNAME is a reserved, not required, keyword.
00150         BinTable (FITS* p, int number);
00151         ~BinTable();
00152 
00153       // Additional Protected Declarations
00154 
00155     private:
00156 
00157         virtual void readTableHeader (int ncols, std::vector<String>& colName, std::vector<String>& colFmt, std::vector<String>& colUnit);
00158         void readVariableColumns (const std::vector<String> &varColumns);
00159 
00160       // Additional Private Declarations
00161 
00162     private: //## implementation
00163       // Additional Implementation Declarations
00164       friend class HDUCreator;
00165   };
00166 
00167   // Class CCfits::BinTable 
00168 
00169 } // namespace CCfits
00170 
00171 
00172 #endif