/usr/include/CCfits/HDUCreator.h is in libccfits-dev 2.4+dfsg-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | // Astrophysics Science Division,
// NASA/ Goddard Space Flight Center
// HEASARC
// http://heasarc.gsfc.nasa.gov
// e-mail: ccfits@legacy.gsfc.nasa.gov
//
// Original author: Ben Dorman
#ifndef HDUCREATOR_H
#define HDUCREATOR_H 1
// valarray
#include <valarray>
// typeinfo
#include <typeinfo>
// vector
#include <vector>
// string
#include <string>
// CCfitsHeader
#include "CCfits.h"
// FitsError
#include "FitsError.h"
namespace CCfits {
class FITSBase;
class HDU;
class PHDU;
class ExtHDU;
} // namespace CCfits
namespace CCfits {
class HDUCreator
{
public:
HDUCreator (FITSBase* p);
~HDUCreator();
// Read a specified HDU from given fitsfile and
// return a pointer to it.
HDU * getHdu (const String& hduName, bool readDataFlag = false, const std::vector<String> &keys = std::vector<String>(), bool primary = false, int version = 1);
PHDU * createImage (int bitpix, long naxis, const std::vector<long>& naxes);
void reset ();
HDU * Make (const String& hduName, bool readDataFlag, const std::vector<String> &keys, bool primary, int version);
HDU* createTable (const String &name, HduType xtype, int rows, const std::vector<String>& colName, const std::vector<String> colFmt, const std::vector<String> colUnit, int version);
// Read a specified HDU from given fitsfile and
// return a pointer to it.
//
// With no arguments this reads the PrimaryHDU.
HDU * getHdu (int index = 0, bool readDataFlag = false, const std::vector<String> &keys = std::vector<String>());
ExtHDU * createImage (const String &name, int bitpix, long naxis, const std::vector<long>& naxes, int version);
// Additional Public Declarations
protected:
// Additional Protected Declarations
private:
PHDU * MakeImage (int bpix, int naxis, const std::vector<long>& naxes);
HDU* MakeTable (const String &name, HduType xtype, int rows, const std::vector<String>& colName, const std::vector<String>& colFmt, const std::vector<String>& colUnit, int version);
HDU * Make (int index, bool readDataFlag, const std::vector<String> &keys);
ExtHDU * MakeImage (const String &name, int bpix, long naxis, const std::vector<long>& naxes, int version);
void getScaling (long& type, double& zero, double& scale) const;
void parent (FITSBase* value);
// Utility function to implement both of the Make() function interfaces.
HDU* commonMake(const String& hduName, bool readDataFlag, const std::vector<String> &keys, bool primary, int version);
// Data Members for Class Attributes
HDU *m_hdu;
// Additional Private Declarations
private: //## implementation
// Data Members for Associations
FITSBase* m_parent;
// Additional Implementation Declarations
};
// Class CCfits::HDUCreator
inline HDU * HDUCreator::getHdu (const String& hduName, bool readDataFlag, const std::vector<String> &keys, bool primary, int version)
{
//! Read an existing HDU object from the current fits file and return a pointer.
if ( m_hdu == 0 ) m_hdu = Make(hduName,readDataFlag,keys,primary,version);
return m_hdu;
}
inline void HDUCreator::reset ()
{
m_hdu = 0;
}
inline HDU* HDUCreator::createTable (const String &name, HduType xtype, int rows, const std::vector<String>& colName, const std::vector<String> colFmt, const std::vector<String> colUnit, int version)
{
//! Create new Table extension (write method), and return a pointer to it.
if (m_hdu == 0) m_hdu = MakeTable(name,xtype,rows,colName,colFmt,colUnit,version);
return m_hdu;
}
inline HDU * HDUCreator::getHdu (int index, bool readDataFlag, const std::vector<String> &keys)
{
//! Read HDU specified by HDU number
if ( m_hdu == 0 ) m_hdu = Make(index,readDataFlag,keys);
return m_hdu;
}
inline void HDUCreator::parent (FITSBase* value)
{
m_parent = value;
}
} // namespace CCfits
#endif
|