Loading [MathJax]/extensions/tex2jax.js
LSST Applications g0fba68d861+05a5e06e50,g1fd858c14a+904f1f4196,g2c84ff76c0+247cd845a2,g2c9e612ef2+f5117f1d55,g35bb328faa+fcb1d3bbc8,g4af146b050+123c2f4d45,g4d2262a081+a9e7a6e053,g4e0f332c67+c58e4b632d,g53246c7159+fcb1d3bbc8,g5a012ec0e7+ac98094cfc,g60b5630c4e+f5117f1d55,g67b6fd64d1+dd0349c22b,g78460c75b0+2f9a1b4bcd,g786e29fd12+cf7ec2a62a,g7b71ed6315+fcb1d3bbc8,g87b7deb4dc+2a1aa4536a,g8852436030+d21aad2af4,g89139ef638+dd0349c22b,g8d6b6b353c+f5117f1d55,g9125e01d80+fcb1d3bbc8,g989de1cb63+dd0349c22b,g9f33ca652e+0a580a37dd,g9f7030ddb1+ae84e0d5a5,ga2b97cdc51+f5117f1d55,gabe3b4be73+1e0a283bba,gb1101e3267+1d994e7598,gb58c049af0+f03b321e39,gb89ab40317+dd0349c22b,gcca6a94b71+4ed007ada1,gcf25f946ba+d21aad2af4,gd315a588df+9d9c5ccff1,gd6cbbdb0b4+75aa4b1db4,gd9a9a58781+fcb1d3bbc8,gde0f65d7ad+6fce216140,ge278dab8ac+c61fbefdff,ge410e46f29+dd0349c22b,ge82c20c137+e12a08b75a,gf67bdafdda+dd0349c22b,v28.0.2.rc1
LSST Data Management Base Package
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
lsst::afw::table::detail::Access Class Referencefinal

#include <Access.h>

Static Public Member Functions

template<typename T>
static Key< typename Key< T >::Element > extractElement (KeyBase< T > const &kb, std::size_t n)
 
template<typename T>
static Key< Array< T > > extractRange (KeyBase< Array< T > > const &kb, std::size_t begin, std::size_t end)
 
template<typename T>
static Key< T > makeKey (std::size_t offset)
 
template<typename T>
static Key< T > makeKey (Field< T > const &field, std::size_t offset)
 
static Key< Flag > makeKey (std::size_t offset, std::size_t bit)
 
static Key< std::stringmakeKeyString (std::size_t offset, std::size_t size)
 
template<typename T>
static Key< Array< T > > makeKeyArray (std::size_t offset, std::size_t size)
 
static void padSchema (Schema &schema, std::size_t bytes)
 

Detailed Description

Definition at line 31 of file Access.h.

Member Function Documentation

◆ extractElement()

template<typename T>
static Key< typename Key< T >::Element > lsst::afw::table::detail::Access::extractElement ( KeyBase< T > const & kb,
std::size_t n )
inlinestatic

Definition at line 35 of file Access.h.

35 {
36 if (!static_cast<Key<T> const &>(kb).isValid()) {
37 throw LSST_EXCEPT(
38 pex::exceptions::LogicError,
39 (boost::format(
40 "Cannot extract subfield key from invalid key of type '%s' "
41 "(most often this is caused by failing to setup centroid or shape slots)") %
43 .str());
44 }
45 return Key<typename Key<T>::Element>(static_cast<Key<T> const &>(kb).getOffset() +
46 n * sizeof(typename Key<T>::Element));
47 }
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition Exception.h:48
static std::string getTypeString()
Return a string description of the field type.
Definition FieldBase.cc:56
T Element
the type of subfields (the same as the type itself for scalars)
Definition FieldBase.h:45

◆ extractRange()

template<typename T>
static Key< Array< T > > lsst::afw::table::detail::Access::extractRange ( KeyBase< Array< T > > const & kb,
std::size_t begin,
std::size_t end )
inlinestatic

Definition at line 51 of file Access.h.

51 {
52 if (!static_cast<Key<Array<T> > const &>(kb).isValid()) {
53 throw LSST_EXCEPT(pex::exceptions::LogicError,
54 (boost::format("Cannot extract subfield key from invalid key of type '%s' ") %
56 .str());
57 }
58 return Key<Array<T> >(static_cast<Key<Array<T> > const &>(kb).getOffset() +
59 begin * sizeof(typename Key<T>::Element),
60 end - begin);
61 }

◆ makeKey() [1/3]

template<typename T>
static Key< T > lsst::afw::table::detail::Access::makeKey ( Field< T > const & field,
std::size_t offset )
inlinestatic

Definition at line 71 of file Access.h.

71 {
72 return Key<T>(offset, field);
73 }

◆ makeKey() [2/3]

template<typename T>
static Key< T > lsst::afw::table::detail::Access::makeKey ( std::size_t offset)
inlinestatic

Definition at line 65 of file Access.h.

65 {
66 return Key<T>(offset);
67 }

◆ makeKey() [3/3]

static Key< Flag > lsst::afw::table::detail::Access::makeKey ( std::size_t offset,
std::size_t bit )
inlinestatic

Definition at line 76 of file Access.h.

76{ return Key<Flag>(offset, bit); }

◆ makeKeyArray()

template<typename T>
static Key< Array< T > > lsst::afw::table::detail::Access::makeKeyArray ( std::size_t offset,
std::size_t size )
inlinestatic

Definition at line 83 of file Access.h.

83 {
84 return Key<Array<T>>(offset, size);
85 }

◆ makeKeyString()

static Key< std::string > lsst::afw::table::detail::Access::makeKeyString ( std::size_t offset,
std::size_t size )
inlinestatic

Definition at line 79 of file Access.h.

79{ return Key<std::string>(offset, size); }

◆ padSchema()

static void lsst::afw::table::detail::Access::padSchema ( Schema & schema,
std::size_t bytes )
inlinestatic

Definition at line 88 of file Access.h.

88 {
89 schema._edit();
90 schema._impl->_recordSize += bytes;
91 }

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