lsst.afw gaa753fd333+03f406da14
Loading...
Searching...
No Matches
KeyBase.h
Go to the documentation of this file.
1// -*- lsst-c++ -*-
2#ifndef AFW_TABLE_KeyBase_h_INCLUDED
3#define AFW_TABLE_KeyBase_h_INCLUDED
4
5#include <vector>
6
8
9namespace lsst {
10namespace afw {
11namespace table {
12
13class BaseRecord;
14
15template <typename T>
16class Key;
17
19template <typename T>
20class KeyBase {
21public:
22 static bool const HAS_NAMED_SUBFIELDS = false;
23};
24
26template <typename U>
27class KeyBase<Array<U> > {
28public:
29 static bool const HAS_NAMED_SUBFIELDS = false;
30
31 std::vector<U> extractVector(BaseRecord const& record) const;
32
33 void assignVector(BaseRecord& record, std::vector<U> const& values) const;
34
36
37 Key<Array<U> > slice(std::size_t begin, std::size_t end) const;
38};
39} // namespace table
40} // namespace afw
41} // namespace lsst
42
43#endif // !AFW_TABLE_KeyBase_h_INCLUDED
Tag types used to declare specialized field types.
Definition misc.h:31
Base class for all records.
Definition BaseRecord.h:31
Key< Array< U > > slice(std::size_t begin, std::size_t end) const
Return a key for a range of elements.
Definition KeyBase.cc:48
void assignVector(BaseRecord &record, std::vector< U > const &values) const
Definition KeyBase.cc:29
static bool const HAS_NAMED_SUBFIELDS
Definition KeyBase.h:29
Key< U > operator[](std::size_t i) const
Return a subfield key for the i-th element of the array.
Definition KeyBase.cc:35
std::vector< U > extractVector(BaseRecord const &record) const
Definition KeyBase.cc:20
A base class for Key that allows subfield keys to be extracted for some field types.
Definition KeyBase.h:20
static bool const HAS_NAMED_SUBFIELDS
Definition KeyBase.h:22
A class used as a handle to a particular field in a table.
Definition Key.h:53