LSSTApplications  18.0.0+106,18.0.0+50,19.0.0,19.0.0+1,19.0.0+10,19.0.0+11,19.0.0+13,19.0.0+17,19.0.0+2,19.0.0-1-g20d9b18+6,19.0.0-1-g425ff20,19.0.0-1-g5549ca4,19.0.0-1-g580fafe+6,19.0.0-1-g6fe20d0+1,19.0.0-1-g7011481+9,19.0.0-1-g8c57eb9+6,19.0.0-1-gb5175dc+11,19.0.0-1-gdc0e4a7+9,19.0.0-1-ge272bc4+6,19.0.0-1-ge3aa853,19.0.0-10-g448f008b,19.0.0-12-g6990b2c,19.0.0-2-g0d9f9cd+11,19.0.0-2-g3d9e4fb2+11,19.0.0-2-g5037de4,19.0.0-2-gb96a1c4+3,19.0.0-2-gd955cfd+15,19.0.0-3-g2d13df8,19.0.0-3-g6f3c7dc,19.0.0-4-g725f80e+11,19.0.0-4-ga671dab3b+1,19.0.0-4-gad373c5+3,19.0.0-5-ga2acb9c+2,19.0.0-5-gfe96e6c+2,w.2020.01
LSSTDataManagementBasePackage
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Friends | List of all members
lsst::afw::table::Field< T > Struct Template Reference

A description of a field in a table. More...

#include <Field.h>

Inheritance diagram for lsst::afw::table::Field< T >:
lsst::afw::table::FieldBase< T >

Public Types

typedef FieldBase< T >::Element Element
 Type used to store field data in the table (a field may have multiple elements). More...
 
typedef T Value
 the type returned by BaseRecord::get More...
 
typedef T & Reference
 the type returned by BaseRecord::operator[] (non-const) More...
 
typedef T const & ConstReference
 the type returned by BaseRecord::operator[] (const) More...
 

Public Member Functions

 Field (std::string const &name, std::string const &doc, std::string const &units="", FieldBase< T > const &size=FieldBase< T >())
 Construct a new field. More...
 
 Field (std::string const &name, std::string const &doc, FieldBase< T > const &size)
 Construct a new field. More...
 
 Field (Field const &)=default
 
 Field (Field &&) noexcept=default
 
Fieldoperator= (Field const &)=default
 
Fieldoperator= (Field &&) noexcept=default
 
 ~Field () noexcept=default
 
std::string const & getName () const noexcept
 Return the name of the field. More...
 
std::string const & getDoc () const noexcept
 Return the documentation for the field. More...
 
std::string const & getUnits () const noexcept
 Return the units for the field. More...
 
Field< T > copyRenamed (std::string const &newName) const
 Return a new Field with a new name and other properties the same as this. More...
 
int getElementCount () const noexcept
 Return the number of subfield elements (always one for scalars). More...
 

Static Public Member Functions

static std::string getTypeString ()
 Return a string description of the field type. More...
 

Protected Member Functions

void stream (std::ostream &os) const
 Defines how Fields are printed. More...
 
Reference getReference (Element *p, ndarray::Manager::Ptr const &) const
 Used to implement BaseRecord::operator[] (non-const). More...
 
ConstReference getConstReference (Element const *p, ndarray::Manager::Ptr const &) const
 Used to implement BaseRecord::operator[] (const). More...
 
Value getValue (Element const *p, ndarray::Manager::Ptr const &) const
 Used to implement BaseRecord::get. More...
 
void setValue (Element *p, ndarray::Manager::Ptr const &, Value v) const
 Used to implement BaseRecord::set. More...
 

Static Protected Member Functions

static FieldBase makeDefault () noexcept
 Needed to allow Keys to be default-constructed. More...
 

Friends

std::ostreamoperator<< (std::ostream &os, Field< T > const &field)
 Stringification. More...
 

Detailed Description

template<typename T>
struct lsst::afw::table::Field< T >

A description of a field in a table.

Field combines a type with the field name, documentation, units, and in some cases, the size of the field.

Specializations for different field types are inherited through FieldBase; see the documentation for those specializations for additional information about particular field types.

Definition at line 24 of file Field.h.

Member Typedef Documentation

◆ ConstReference

template<typename T>
typedef T const& lsst::afw::table::FieldBase< T >::ConstReference
inherited

the type returned by BaseRecord::operator[] (const)

Definition at line 46 of file FieldBase.h.

◆ Element

template<typename T>
typedef FieldBase<T>::Element lsst::afw::table::Field< T >::Element

Type used to store field data in the table (a field may have multiple elements).

Definition at line 26 of file Field.h.

◆ Reference

template<typename T>
typedef T& lsst::afw::table::FieldBase< T >::Reference
inherited

the type returned by BaseRecord::operator[] (non-const)

Definition at line 45 of file FieldBase.h.

◆ Value

template<typename T>
typedef T lsst::afw::table::FieldBase< T >::Value
inherited

the type returned by BaseRecord::get

Definition at line 44 of file FieldBase.h.

Constructor & Destructor Documentation

◆ Field() [1/4]

template<typename T>
lsst::afw::table::Field< T >::Field ( std::string const &  name,
std::string const &  doc,
std::string const &  units = "",
FieldBase< T > const &  size = FieldBase<T>() 
)
inline

Construct a new field.

Parameters
[in]nameName of the field. Schemas provide extra functionality for names whose components are separated by underscores. Field names should be limited to letters, numbers, and underscores.
[in]docDocumentation for the field. Should not contain single-quotes to avoid FITS round-trip problems.
[in]unitsUnits for the field. Should not contain single-quotes to avoid FITS round-trip problems.
[in]sizeSize of the field as an integer, if appropriate. Field types that accept a size have a FieldBase that is implicitly constructable from an integer, so the argument type should be considered to effectively be int; using FieldBase here allows use to throw when the signature does not match the field type.

Definition at line 44 of file Field.h.

46  : FieldBase<T>(size), _name(name), _doc(doc), _units(units) {}

◆ Field() [2/4]

template<typename T>
lsst::afw::table::Field< T >::Field ( std::string const &  name,
std::string const &  doc,
FieldBase< T > const &  size 
)
inline

Construct a new field.

Parameters
[in]nameName of the field. Schemas provide extra functionality for names whose components are separated by underscores. Field names should be limited to letters, numbers, and underscores.
[in]docDocumentation for the field.
[in]sizeSize of the field as an integer, if appropriate. Field types that accept a size have a FieldBase that is implicitly constructable from an integer, so the argument type should be considered to effectively be int; using FieldBase here allows use to throw when the signature does not match the field type.

Definition at line 61 of file Field.h.

62  : FieldBase<T>(size), _name(name), _doc(doc), _units() {}

◆ Field() [3/4]

template<typename T>
lsst::afw::table::Field< T >::Field ( Field< T > const &  )
default

◆ Field() [4/4]

template<typename T>
lsst::afw::table::Field< T >::Field ( Field< T > &&  )
defaultnoexcept

◆ ~Field()

template<typename T>
lsst::meas::extensions::psfex::Field::~Field ( )
defaultnoexcept

Definition at line 50 of file fieldImpl.cc.

51 {
52  for (int i = 0; i != impl->next; ++i) {
53  free(impl->wcs[i]); // psfex's wcs isn't quite the same as ours ...
54  impl->wcs[i] = NULL; // ... so don't let psfex free it
55  }
56  field_end(impl);
57  impl = NULL;
58 }
T free(T... args)

Member Function Documentation

◆ copyRenamed()

template<typename T>
Field<T> lsst::afw::table::Field< T >::copyRenamed ( std::string const &  newName) const
inline

Return a new Field with a new name and other properties the same as this.

Definition at line 89 of file Field.h.

89  {
90  return Field<T>(newName, getDoc(), getUnits(), *this);
91  }
std::string const & getDoc() const noexcept
Return the documentation for the field.
Definition: Field.h:74
std::string const & getUnits() const noexcept
Return the units for the field.
Definition: Field.h:77

◆ getConstReference()

template<typename T>
ConstReference lsst::afw::table::FieldBase< T >::getConstReference ( Element const *  p,
ndarray::Manager::Ptr const &   
) const
inlineprotectedinherited

Used to implement BaseRecord::operator[] (const).

Definition at line 80 of file FieldBase.h.

80 { return *p; }

◆ getDoc()

template<typename T>
std::string const& lsst::afw::table::Field< T >::getDoc ( ) const
inlinenoexcept

Return the documentation for the field.

Definition at line 74 of file Field.h.

74 { return _doc; }

◆ getElementCount()

template<typename T>
int lsst::afw::table::FieldBase< T >::getElementCount ( ) const
inlinenoexceptinherited

Return the number of subfield elements (always one for scalars).

Definition at line 50 of file FieldBase.h.

50 { return 1; }

◆ getName()

template<typename T>
std::string const& lsst::afw::table::Field< T >::getName ( ) const
inlinenoexcept

Return the name of the field.

Definition at line 71 of file Field.h.

71 { return _name; }

◆ getReference()

template<typename T>
Reference lsst::afw::table::FieldBase< T >::getReference ( Element p,
ndarray::Manager::Ptr const &   
) const
inlineprotectedinherited

Used to implement BaseRecord::operator[] (non-const).

Definition at line 77 of file FieldBase.h.

77 { return *p; }

◆ getTypeString()

template<typename T >
std::string lsst::afw::table::FieldBase< T >::getTypeString ( )
staticinherited

Return a string description of the field type.

Definition at line 56 of file FieldBase.cc.

56  {
57  return TypeTraits<T>::getName();
58 }

◆ getUnits()

template<typename T>
std::string const& lsst::afw::table::Field< T >::getUnits ( ) const
inlinenoexcept

Return the units for the field.

Definition at line 77 of file Field.h.

77 { return _units; }

◆ getValue()

template<typename T>
Value lsst::afw::table::FieldBase< T >::getValue ( Element const *  p,
ndarray::Manager::Ptr const &   
) const
inlineprotectedinherited

Used to implement BaseRecord::get.

Definition at line 83 of file FieldBase.h.

83 { return *p; }

◆ makeDefault()

template<typename T>
static FieldBase lsst::afw::table::FieldBase< T >::makeDefault ( )
inlinestaticprotectednoexceptinherited

Needed to allow Keys to be default-constructed.

Definition at line 71 of file FieldBase.h.

71 { return FieldBase(); }

◆ operator=() [1/2]

template<typename T>
Field& lsst::afw::table::Field< T >::operator= ( Field< T > const &  )
default

◆ operator=() [2/2]

template<typename T>
Field& lsst::afw::table::Field< T >::operator= ( Field< T > &&  )
defaultnoexcept

◆ setValue()

template<typename T>
void lsst::afw::table::FieldBase< T >::setValue ( Element p,
ndarray::Manager::Ptr const &  ,
Value  v 
) const
inlineprotectedinherited

Used to implement BaseRecord::set.

Definition at line 86 of file FieldBase.h.

86 { *p = v; }

◆ stream()

template<typename T>
void lsst::afw::table::FieldBase< T >::stream ( std::ostream os) const
inlineprotectedinherited

Defines how Fields are printed.

Definition at line 74 of file FieldBase.h.

74 {}

Friends And Related Function Documentation

◆ operator<<

template<typename T>
std::ostream& operator<< ( std::ostream os,
Field< T > const &  field 
)
friend

Stringification.

Definition at line 80 of file Field.h.

80  {
81  os << "Field['" << Field<T>::getTypeString() << "'](name=\"" << field.getName() << "\"";
82  if (!field.getDoc().empty()) os << ", doc=\"" << field.getDoc() << "\"";
83  if (!field.getUnits().empty()) os << ", units=\"" << field.getUnits() << "\"";
84  field.stream(os);
85  return os << ")";
86  }
static std::string getTypeString()
Return a string description of the field type.
Definition: FieldBase.cc:56

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