2#ifndef AFW_TABLE_BaseTable_h_INCLUDED
3#define AFW_TABLE_BaseTable_h_INCLUDED
7#include "ndarray/Manager.h"
220 if (_metadata) _metadata = std::static_pointer_cast<daf::base::PropertyList>(_metadata->deepCopy());
250 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.
Tag types used to declare specialized field types.
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.
std::shared_ptr< RecordT > constructRecord(Args &&... args)
Helper function that must be used by all _makeRecord overrides to actually construct records.
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.
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.
std::shared_ptr< BaseTable > clone() const
Return a polymorphic deep copy of the table.
BaseTable(Schema const &schema, std::shared_ptr< daf::base::PropertyList > metadata=nullptr)
Construct from a schema.
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.
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