LSSTApplications
20.0.0
LSSTDataManagementBasePackage
stack
1a1d771
Linux64
afw
20.0.0
include
lsst
afw
table
detail
Access.h
Go to the documentation of this file.
1
// -*- lsst-c++ -*-
2
#ifndef AFW_TABLE_DETAIL_Access_h_INCLUDED
3
#define AFW_TABLE_DETAIL_Access_h_INCLUDED
4
5
#include <cstring>
6
7
#include "ndarray/Manager.h"
8
#include "
lsst/afw/table/FieldBase.h
"
9
#include "
lsst/afw/table/Schema.h
"
10
#include "
lsst/afw/table/detail/SchemaImpl.h
"
11
12
namespace
lsst
{
13
namespace
afw
{
14
namespace
table {
15
16
class
BaseRecord;
17
class
BaseTable;
18
19
namespace
detail {
20
31
class
Access
final {
32
public
:
34
template
<
typename
T>
35
static
Key<typename Key<T>::Element
>
extractElement
(
KeyBase<T>
const
&kb,
int
n) {
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)"
) %
42
Key<T>::getTypeString
())
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
}
48
50
template
<
typename
T>
51
static
Key<Array<T>
>
extractRange
(
KeyBase
<
Array<T>
>
const
&kb,
int
begin,
int
end
) {
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' "
) %
55
Key<T>::getTypeString
())
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
}
62
64
template
<
typename
T>
65
static
Key<T>
makeKey
(
int
offset) {
66
return
Key<T>
(offset);
67
}
68
70
template
<
typename
T>
71
static
Key<T>
makeKey
(
Field<T>
const
&
field
,
int
offset) {
72
return
Key<T>
(offset,
field
);
73
}
74
76
static
Key<Flag>
makeKey
(
int
offset,
int
bit) {
return
Key<Flag>
(offset, bit); }
77
79
static
Key<std::string>
makeKeyString
(
int
offset,
int
size) {
return
Key<std::string>
(offset, size); }
80
82
template
<
typename
T>
83
static
Key<Array<T>
>
makeKeyArray
(
int
offset,
int
size) {
84
return
Key<Array<T>
>(offset, size);
85
}
86
88
static
void
padSchema
(
Schema
&
schema
,
int
bytes
) {
89
schema
._edit();
90
schema
._impl->_recordSize +=
bytes
;
91
}
92
};
93
}
// namespace detail
94
}
// namespace table
95
}
// namespace afw
96
}
// namespace lsst
97
98
#endif // !AFW_TABLE_DETAIL_Access_h_INCLUDED
schema
table::Schema schema
Definition:
Amplifier.cc:115
lsst::afw::table::detail::Access::makeKeyArray
static Key< Array< T > > makeKeyArray(int offset, int size)
Definition:
Access.h:83
lsst::afw::table::detail::Access::makeKey
static Key< T > makeKey(int offset)
Definition:
Access.h:65
lsst::afw::table::detail::Access::makeKeyString
static Key< std::string > makeKeyString(int offset, int size)
Definition:
Access.h:79
pex.config.history.format
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
Definition:
history.py:174
lsst::afw::table::KeyBase
A base class for Key that allows subfield keys to be extracted for some field types.
Definition:
KeyBase.h:20
lsst::afw
Definition:
imageAlgorithm.dox:1
lsst::afw::table::Schema
Defines the fields and offsets for a table.
Definition:
Schema.h:50
end
int end
Definition:
BoundedField.cc:105
lsst::afw::table::detail::Access::extractRange
static Key< Array< T > > extractRange(KeyBase< Array< T > > const &kb, int begin, int end)
Definition:
Access.h:51
lsst::afw::table::detail::Access::padSchema
static void padSchema(Schema &schema, int bytes)
Definition:
Access.h:88
lsst::afw::table::detail::Access::makeKey
static Key< Flag > makeKey(int offset, int bit)
Definition:
Access.h:76
field
table::Key< int > field
Definition:
ApCorrMap.cc:77
lsst::pex::exceptions::LogicError
Reports errors in the logical structure of the program.
Definition:
Runtime.h:46
lsst::afw::table::detail::Access::makeKey
static Key< T > makeKey(Field< T > const &field, int offset)
Definition:
Access.h:71
lsst::afw::table::Key
A class used as a handle to a particular field in a table.
Definition:
fwd.h:45
lsst::afw::table::Array
Tag types used to declare specialized field types.
Definition:
misc.h:32
lsst
A base class for image defects.
Definition:
imageAlgorithm.dox:1
LSST_EXCEPT
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition:
Exception.h:48
lsst::afw::table::detail::Access::extractElement
static Key< typename Key< T >::Element > extractElement(KeyBase< T > const &kb, int n)
Definition:
Access.h:35
bytes
table::Key< table::Array< std::uint8_t > > bytes
Definition:
Transform.cc:199
lsst::afw::table::Field
A description of a field in a table.
Definition:
Field.h:24
lsst::afw::table::detail::Access
Definition:
Access.h:31
SchemaImpl.h
isValid
bool isValid
Definition:
fits.cc:399
Schema.h
FieldBase.h
lsst::afw::table::Key< Flag >
Key specialization for Flag.
Definition:
Flag.h:94
Generated on Wed Jun 24 2020 18:10:01 for LSSTApplications by
1.8.18