LSST Applications  21.0.0+04719a4bac,21.0.0-1-ga51b5d4+f5e6047307,21.0.0-11-g2b59f77+a9c1acf22d,21.0.0-11-ga42c5b2+86977b0b17,21.0.0-12-gf4ce030+76814010d2,21.0.0-13-g1721dae+760e7a6536,21.0.0-13-g3a573fe+768d78a30a,21.0.0-15-g5a7caf0+f21cbc5713,21.0.0-16-g0fb55c1+b60e2d390c,21.0.0-19-g4cded4ca+71a93a33c0,21.0.0-2-g103fe59+bb20972958,21.0.0-2-g45278ab+04719a4bac,21.0.0-2-g5242d73+3ad5d60fb1,21.0.0-2-g7f82c8f+8babb168e8,21.0.0-2-g8f08a60+06509c8b61,21.0.0-2-g8faa9b5+616205b9df,21.0.0-2-ga326454+8babb168e8,21.0.0-2-gde069b7+5e4aea9c2f,21.0.0-2-gecfae73+1d3a86e577,21.0.0-2-gfc62afb+3ad5d60fb1,21.0.0-25-g1d57be3cd+e73869a214,21.0.0-3-g357aad2+ed88757d29,21.0.0-3-g4a4ce7f+3ad5d60fb1,21.0.0-3-g4be5c26+3ad5d60fb1,21.0.0-3-g65f322c+e0b24896a3,21.0.0-3-g7d9da8d+616205b9df,21.0.0-3-ge02ed75+a9c1acf22d,21.0.0-4-g591bb35+a9c1acf22d,21.0.0-4-g65b4814+b60e2d390c,21.0.0-4-gccdca77+0de219a2bc,21.0.0-4-ge8a399c+6c55c39e83,21.0.0-5-gd00fb1e+05fce91b99,21.0.0-6-gc675373+3ad5d60fb1,21.0.0-64-g1122c245+4fb2b8f86e,21.0.0-7-g04766d7+cd19d05db2,21.0.0-7-gdf92d54+04719a4bac,21.0.0-8-g5674e7b+d1bd76f71f,master-gac4afde19b+a9c1acf22d,w.2021.13
LSST Data Management Base Package
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 const & row
 
int col
 
int bit
 
int nFlags
 
Fitsfits
 
std::unique_ptr< bool[]> flags
 
BaseRecord const * record
 
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  }
void writeTableArray(std::size_t row, int col, int nElements, T const *value)
Write an array value to a binary table.
Definition: fits.cc:1169
void forEach(F &&func) const
Apply a functor to each SchemaItem in the Schema.
Definition: Schema.h:212
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 >::Element * getElement(Key< T > const &key)
Return a pointer to the underlying elements of a field (non-const).
Definition: BaseRecord.h:93
Field< T >::Value get(Key< T > const &key) const
Return the value of a field for the given key.
Definition: BaseRecord.h:151

◆ 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  }
void writeTableScalar(std::size_t row, int col, T value)
Write a scalar value to a binary table.
Definition: fits.h:583

◆ 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: