CCfits  2.4
FITSBase.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 FITSBASE_H
10 #define FITSBASE_H 1
11 
12 // fitsio
13 #include "fitsio.h"
14 // string
15 #include <string>
16 // map
17 #include <map>
18 // CCfitsHeader
19 #include "CCfits.h"
20 
21 namespace CCfits {
22  class PHDU;
23  class ExtHDU;
24 
25 } // namespace CCfits
26 using std::string;
27 
28 
29 namespace CCfits {
30 
31 
32 
33  class FITSBase
34  {
35 
36  public:
37  FITSBase (const String& fileName, RWmode rwmode);
38  ~FITSBase();
39 
40  void destroyPrimary ();
41  void destroyExtensions ();
42  int currentCompressionTileDim () const;
43  void currentCompressionTileDim (int value);
44  RWmode mode ();
45  std::string& currentExtensionName ();
46  std::string& name ();
47  PHDU*& pHDU ();
48  ExtMap& extension ();
49 
50  const ExtMap& extension() const;
51  fitsfile*& fptr ();
52 
53  // Additional Public Declarations
54 
55  protected:
56  // Additional Protected Declarations
57 
58  private:
59  FITSBase(const FITSBase &right);
60  FITSBase & operator=(const FITSBase &right);
61 
62  // Additional Private Declarations
63 
64  private: //## implementation
65  // Data Members for Class Attributes
66  int m_currentCompressionTileDim;
67 
68  // Data Members for Associations
69  RWmode m_mode;
70  std::string m_currentExtensionName;
71  std::string m_name;
72  PHDU* m_pHDU;
73  ExtMap m_extension;
74  fitsfile* m_fptr;
75 
76  // Additional Implementation Declarations
77 
78  };
79 
80  // Class CCfits::FITSBase
81 
82  inline int FITSBase::currentCompressionTileDim () const
83  {
84  return m_currentCompressionTileDim;
85  }
86 
87  inline void FITSBase::currentCompressionTileDim (int value)
88  {
89  m_currentCompressionTileDim = value;
90  }
91 
92  inline RWmode FITSBase::mode ()
93  {
94  return m_mode;
95  }
96 
97  inline std::string& FITSBase::currentExtensionName ()
98  {
99  return m_currentExtensionName;
100  }
101 
102  inline std::string& FITSBase::name ()
103  {
104  return m_name;
105  }
106 
107  inline PHDU*& FITSBase::pHDU ()
108  {
109  return m_pHDU;
110  }
111 
112  inline ExtMap& FITSBase::extension ()
113  {
114  return m_extension;
115  }
116 
117  inline const ExtMap& FITSBase::extension() const
118  {
119  return m_extension;
120  }
121 
122  inline fitsfile*& FITSBase::fptr ()
123  {
124  return m_fptr;
125  }
126 
127 } // namespace CCfits
128 
129 
130 #endif