CCfits  2.7
CCfits.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 CCFITS_H
00010 #define CCFITS_H 1
00011 
00012 // fitsio
00013 #include "fitsio.h"
00014 // string
00015 #include <string>
00016 
00017 namespace CCfits {
00018   class ExtHDU;
00019   class Column;
00020 
00021 } // namespace CCfits
00022 #include <map>
00023 #include <sys/types.h>
00024 #include "longnam.h"
00025 #include "float.h"
00026 
00027 
00028 namespace CCfits {
00032   static const int BITPIX = -32;
00033   static const int  NAXIS =   2;
00034   static const int  MAXDIM = 99;
00035   extern const unsigned long USBASE;
00036   extern const unsigned long  ULBASE;
00037 
00038   extern  char BSCALE[7];
00039   extern  char BZERO[6];
00040 
00041 
00042 
00043   typedef enum {Read=READONLY,Write=READWRITE} RWmode;
00044 
00045 
00081   typedef enum {
00082       Tnull, 
00083       Tbit        = TBIT, 
00084       Tbyte       = TBYTE, 
00085       Tlogical    = TLOGICAL, 
00086       Tstring     = TSTRING, 
00087       Tushort     = TUSHORT, 
00088       Tshort      = TSHORT, 
00089       Tuint       = TUINT, 
00090       Tint        = TINT, 
00091       Tulong      = TULONG, 
00092       Tlong       = TLONG, 
00093       Tlonglong   = TLONGLONG, 
00094       Tfloat      = TFLOAT, 
00095       Tdouble     = TDOUBLE, 
00096       Tcomplex    = TCOMPLEX, 
00097       Tdblcomplex = TDBLCOMPLEX, 
00098       VTbit       = -TBIT, 
00099       VTbyte      = -TBYTE, 
00100       VTlogical   = -TLOGICAL, 
00101       VTstring    = -TSTRING, 
00102       VTushort    = -TUSHORT, 
00103       VTshort     = -TSHORT, 
00104       VTuint      = -TUINT, 
00105       VTint       = -TINT, 
00106       VTulong     = -TULONG, 
00107       VTlong      = -TLONG, 
00108       VTlonglong  = -TLONGLONG, 
00109       VTfloat     = -TFLOAT, 
00110       VTdouble    = -TDOUBLE, 
00111       VTcomplex   = -TCOMPLEX, 
00112       VTdblcomplex= -TDBLCOMPLEX
00113   } ValueType;
00114 
00115 
00116   // GroupTbl isn't a real CFITSIO HDU type, but we use it when creating 
00117   // new Grouping Tables
00118   typedef enum {AnyHdu=-1, ImageHdu, AsciiTbl, BinaryTbl, GroupTbl} HduType;
00119 
00120 
00121 
00122   typedef enum {Inotype = 0, Ibyte=BYTE_IMG, 
00123   Ishort = SHORT_IMG,
00124   Ilong = LONG_IMG, 
00125   Ifloat = FLOAT_IMG, 
00126   Idouble = DOUBLE_IMG, 
00127   Iushort = USHORT_IMG, 
00128   Iulong = ULONG_IMG,
00129   Ilonglong = LONGLONG_IMG} ImageType;
00130 
00131 
00132 
00133   typedef std::string String;
00134 
00135 
00136 
00137   typedef std::multimap<String,CCfits::ExtHDU*> ExtMap;
00138   
00142   typedef std::multimap<std::string,CCfits::Column*> ColMap; 
00143 
00144 
00145 
00146   typedef ExtMap::const_iterator ExtMapConstIt;
00147 
00148 
00149 
00150   typedef ExtMap::iterator ExtMapIt;
00151 
00152 } // namespace CCfits
00153 
00154 
00155 #endif