LSST Applications g02d81e74bb+86cf3d8bc9,g180d380827+7a4e862ed4,g2079a07aa2+86d27d4dc4,g2305ad1205+e1ca1c66fa,g29320951ab+012e1474a1,g295015adf3+341ea1ce94,g2bbee38e9b+0e5473021a,g337abbeb29+0e5473021a,g33d1c0ed96+0e5473021a,g3a166c0a6a+0e5473021a,g3ddfee87b4+c429d67c83,g48712c4677+f88676dd22,g487adcacf7+27e1e21933,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+b41db86c35,g5a732f18d5+53520f316c,g64a986408d+86cf3d8bc9,g858d7b2824+86cf3d8bc9,g8a8a8dda67+585e252eca,g99cad8db69+84912a7fdc,g9ddcbc5298+9a081db1e4,ga1e77700b3+15fc3df1f7,ga8c6da7877+a2b54eae19,gb0e22166c9+60f28cb32d,gba4ed39666+c2a2e4ac27,gbb8dafda3b+6681f309db,gc120e1dc64+f0fcc2f6d8,gc28159a63d+0e5473021a,gcf0d15dbbd+c429d67c83,gdaeeff99f8+f9a426f77a,ge6526c86ff+0433e6603d,ge79ae78c31+0e5473021a,gee10cc3b42+585e252eca,gff1a9f87cc+86cf3d8bc9,w.2024.17
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
lsst::afw::table::io::FitsWriter::ProcessRecords Struct Reference

Public Member Functions

template<typename T >
void operator() (SchemaItem< T > const &item) const
 
template<typename T >
void operator() (SchemaItem< Array< T > > const &item) const
 
void operator() (SchemaItem< std::string > const &item) const
 
void operator() (SchemaItem< Flag > const &item) const
 
 ProcessRecords (Fits *fits_, Schema const &schema_, int nFlags_, std::size_t const &row_)
 
void apply (BaseRecord const *r)
 

Public Attributes

std::size_t constrow
 
int col
 
int bit
 
int nFlags
 
Fitsfits
 
std::unique_ptr< bool[]> flags
 
BaseRecord constrecord
 
Schema schema
 

Detailed Description

Definition at line 136 of file FitsWriter.cc.

Constructor & Destructor Documentation

◆ ProcessRecords()

lsst::afw::table::io::FitsWriter::ProcessRecords::ProcessRecords ( Fits * fits_,
Schema const & schema_,
int nFlags_,
std::size_t const & row_ )
inline

Member Function Documentation

◆ apply()

void lsst::afw::table::io::FitsWriter::ProcessRecords::apply ( BaseRecord const * r)
inline

Definition at line 170 of file FitsWriter.cc.

170 {
171 record = r;
172 col = 0;
173 bit = 0;
174 if (nFlags) ++col;
175 schema.forEach(*this);
176 if (nFlags) fits->writeTableArray(row, 0, nFlags, flags.get());
177 }
T get(T... args)

◆ operator()() [1/4]

template<typename T >
void lsst::afw::table::io::FitsWriter::ProcessRecords::operator() ( SchemaItem< Array< T > > const & item) const
inline

Definition at line 144 of file FitsWriter.cc.

144 {
145 if (item.key.isVariableLength()) {
146 ndarray::Array<T const, 1, 1> array = record->get(item.key);
147 fits->writeTableArray(row, col, array.template getSize<0>(), array.getData());
148 } else {
149 fits->writeTableArray(row, col, item.key.getElementCount(), record->getElement(item.key));
150 }
151 ++col;
152 }
Field< T >::Value get(Key< T > const &key) const
Return the value of a field for the given key.
Definition BaseRecord.h:151
Field< T >::Element * getElement(Key< T > const &key)
Return a pointer to the underlying elements of a field (non-const).
Definition BaseRecord.h:93

◆ operator()() [2/4]

void lsst::afw::table::io::FitsWriter::ProcessRecords::operator() ( SchemaItem< Flag > const & item) const
inline

Definition at line 160 of file FitsWriter.cc.

160 {
161 flags[bit] = record->get(item.key);
162 ++bit;
163 }

◆ operator()() [3/4]

void lsst::afw::table::io::FitsWriter::ProcessRecords::operator() ( SchemaItem< std::string > const & item) const
inline

Definition at line 154 of file FitsWriter.cc.

154 {
155 // Write fixed-length and variable-length strings the same way
156 fits->writeTableScalar(row, col, record->get(item.key));
157 ++col;
158 }

◆ operator()() [4/4]

template<typename T >
void lsst::afw::table::io::FitsWriter::ProcessRecords::operator() ( SchemaItem< T > const & item) const
inline

Definition at line 138 of file FitsWriter.cc.

138 {
139 fits->writeTableArray(row, col, item.key.getElementCount(), record->getElement(item.key));
140 ++col;
141 }

Member Data Documentation

◆ bit

int lsst::afw::table::io::FitsWriter::ProcessRecords::bit
mutable

Definition at line 181 of file FitsWriter.cc.

◆ col

int lsst::afw::table::io::FitsWriter::ProcessRecords::col
mutable

Definition at line 180 of file FitsWriter.cc.

◆ fits

Fits* lsst::afw::table::io::FitsWriter::ProcessRecords::fits

Definition at line 183 of file FitsWriter.cc.

◆ flags

std::unique_ptr<bool[]> lsst::afw::table::io::FitsWriter::ProcessRecords::flags

Definition at line 184 of file FitsWriter.cc.

◆ nFlags

int lsst::afw::table::io::FitsWriter::ProcessRecords::nFlags

Definition at line 182 of file FitsWriter.cc.

◆ record

BaseRecord const* lsst::afw::table::io::FitsWriter::ProcessRecords::record

Definition at line 185 of file FitsWriter.cc.

◆ row

std::size_t const& lsst::afw::table::io::FitsWriter::ProcessRecords::row

Definition at line 179 of file FitsWriter.cc.

◆ schema

Schema lsst::afw::table::io::FitsWriter::ProcessRecords::schema

Definition at line 186 of file FitsWriter.cc.


The documentation for this struct was generated from the following file: