2#ifndef AFW_TABLE_BaseTable_h_INCLUDED
3#define AFW_TABLE_BaseTable_h_INCLUDED
7#include "ndarray/Manager.h"
205 template <
typename RecordT,
typename ...Args>
221 if (_metadata) _metadata = std::static_pointer_cast<daf::base::PropertyList>(_metadata->deepCopy());
251 ndarray::Manager::Ptr _manager;
A simple struct that combines the two arguments that must be passed to most cfitsio routines and cont...
Mapping class that holds aliases for a Schema.
Column-wise view into a sequence of records that have been allocated contiguously.
Base class for all records.
Base class for all tables.
void setMetadata(std::shared_ptr< daf::base::PropertyList > const &metadata)
Set the flexible metadata associated with the table. May be null.
virtual std::shared_ptr< BaseRecord > _makeRecord()
Default-construct an associated record (protected implementation).
BaseTable & operator=(BaseTable const &other)=delete
std::shared_ptr< daf::base::PropertyList > popMetadata()
Return the metadata and set the internal metadata to a null pointer.
virtual std::shared_ptr< io::FitsWriter > makeFitsWriter(fits::Fits *fitsfile, int flags) const
Schema getSchema() const
Return the table's schema.
void preallocate(std::size_t nRecords)
Allocate contiguous space for new records in advance.
std::shared_ptr< RecordT > constructRecord(Args &&...args)
Helper function that must be used by all _makeRecord overrides to actually construct records.
BaseTable & operator=(BaseTable &&other)=delete
std::shared_ptr< daf::base::PropertyList > getMetadata() const
Return the flexible metadata associated with the table. May be null.
std::shared_ptr< BaseRecord > copyRecord(BaseRecord const &input)
Deep-copy a record, requiring that it have the same schema as this table.
BaseTable(BaseTable const &other)
Copy construct.
BaseTable(Schema const &schema)
Construct from a schema.
std::shared_ptr< BaseTable > clone() const
Return a polymorphic deep copy of the table.
std::size_t getBufferSize() const
Return the number of additional records space has been already been allocated for.
BaseTable(BaseTable &&other)
static Schema makeMinimalSchema()
Return a minimal schema for Base tables and records.
static int nRecordsPerBlock
Number of records in each memory block.
static std::shared_ptr< BaseTable > make(Schema const &schema)
Construct a new table.
virtual void handleAliasChange(std::string const &alias)
virtual std::shared_ptr< BaseTable > _clone() const
Clone implementation with noncovariant return types.
std::shared_ptr< BaseRecord > makeRecord()
Default-construct an associated record.
A custom container class for records, based on std::vector.
Defines the fields and offsets for a table.
A mapping between the keys of two Schemas, used to copy data between them.
Writer object for FITS binary tables.
A base class for image defects.
Helper struct that contains the information passed from BaseTable to BaseRecord at construction.
ndarray::Manager::Ptr manager
std::shared_ptr< BaseTable > table