23 #ifndef AFW_TABLE_arrays_h_INCLUDED
24 #define AFW_TABLE_arrays_h_INCLUDED
108 int getSize() const noexcept {
return _size; }
111 ndarray::Array<T const, 1, 1>
get(
BaseRecord const& record)
const override;
114 void set(
BaseRecord& record, ndarray::Array<T const, 1, 1>
const& value)
const override;
125 return other._begin == _begin &&
other._size == _size;
137 bool isValid() const noexcept {
return _begin.isValid(); }
146 ArrayKey(
Key<T> const& begin,
int size) noexcept : _begin(begin), _size(size) {}
156 template <
typename T>
table::Key< std::string > name
ItemVariant const * other
Tag types used to declare specialized field types.
A FunctorKey used to get or set a ndarray::Array from a sequence of scalar Keys.
ArrayKey(ArrayKey &&) noexcept
ndarray::Array< T const, 1, 1 > get(BaseRecord const &record) const override
Get an array from the given record.
ArrayKey(ArrayKey const &) noexcept
void set(BaseRecord &record, ndarray::Array< T const, 1, 1 > const &value) const override
Set an array in the given record.
Key< T > operator[](int i) const
Return a scalar Key for an element of the array.
std::size_t hash_value() const noexcept
Return a hash of this object.
ArrayKey slice(int begin, int end) const
Return a FunctorKey corresponding to a range of elements.
ndarray::ArrayRef< T const, 1, 1 > getConstReference(BaseRecord const &record) const override
Get const reference array from the given record.
ArrayKey() noexcept
Default constructor; instance will not be usable unless subsequently assigned to.
bool isValid() const noexcept
Return True if the FunctorKey contains valid scalar keys.
int getSize() const noexcept
Return the number of elements in the array.
static ArrayKey addFields(Schema &schema, std::string const &name, std::string const &doc, std::string const &unit, std::vector< T > const &docData)
Add an array of fields to a Schema, and return an ArrayKey that points to them.
bool operator!=(ArrayKey< T > const &other) const noexcept
ndarray::ArrayRef< T, 1, 1 > getReference(BaseRecord &record) const override
Get non-const reference array from the given record.
bool operator==(ArrayKey< T > const &other) const noexcept
Compare the FunctorKey for equality with another, using the underlying scalar Keys.
Base class for all records.
Base class for objects that can return a const reference to part of a record, but are not a true Key.
Convenience base class that combines the OutputFunctorKey and InputFunctorKey.
A class used as a handle to a particular field in a table.
Base class for objects that can return a non-const reference to part of a record, but are not a true ...
Defines the fields and offsets for a table.
A proxy type for name lookups in a Schema.
std::size_t hashCombine(std::size_t seed) noexcept
A base class for image defects.
size_t operator()(argument_type const &obj) const noexcept