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.
Helper struct that contains the information passed from BaseTable to BaseRecord at construction.
ndarray::Manager::Ptr manager
std::shared_ptr< BaseTable > table