LSST Applications 27.0.0,g0265f82a02+469cd937ee,g02d81e74bb+21ad69e7e1,g1470d8bcf6+cbe83ee85a,g2079a07aa2+e67c6346a6,g212a7c68fe+04a9158687,g2305ad1205+94392ce272,g295015adf3+81dd352a9d,g2bbee38e9b+469cd937ee,g337abbeb29+469cd937ee,g3939d97d7f+72a9f7b576,g487adcacf7+71499e7cba,g50ff169b8f+5929b3527e,g52b1c1532d+a6fc98d2e7,g591dd9f2cf+df404f777f,g5a732f18d5+be83d3ecdb,g64a986408d+21ad69e7e1,g858d7b2824+21ad69e7e1,g8a8a8dda67+a6fc98d2e7,g99cad8db69+f62e5b0af5,g9ddcbc5298+d4bad12328,ga1e77700b3+9c366c4306,ga8c6da7877+71e4819109,gb0e22166c9+25ba2f69a1,gb6a65358fc+469cd937ee,gbb8dafda3b+69d3c0e320,gc07e1c2157+a98bf949bb,gc120e1dc64+615ec43309,gc28159a63d+469cd937ee,gcf0d15dbbd+72a9f7b576,gdaeeff99f8+a38ce5ea23,ge6526c86ff+3a7c1ac5f1,ge79ae78c31+469cd937ee,gee10cc3b42+a6fc98d2e7,gf1cff7945b+21ad69e7e1,gfbcc870c63+9a11dc8c8f
LSST Data Management Base Package
Loading...
Searching...
No Matches
Static Public Member Functions | List of all members
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
bool isValid
Definition fits.cc:404
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 }
int end
T begin(T... args)

◆ 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 }
table::Key< table::Array< std::uint8_t > > bytes
Definition python.h:135

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