8 #include "boost/format.hpp" 
   31 using MapItem = Map::value_type;
 
   44             if (
iter->getSchema().compare(
schema, flags) == flags) {
 
   51         if (!
iter->getTable()->getMetadata()) {
 
   53             iter->getTable()->setMetadata(metadata);
 
   54             metadata->set(
"EXTTYPE", 
"ARCHIVE_DATA");
 
   55             metadata->set(
"AR_CATN", catArchive, 
"# of this catalog relative to the start of this archive");
 
   62         indexRecord->set(indexKeys.id, 
id);
 
   63         indexRecord->set(indexKeys.name, 
name);
 
   64         indexRecord->set(indexKeys.module, 
module);
 
   70         indexRecord->set(indexKeys.nRows, 0);
 
   79         indexRecord->set(indexKeys.catPersistable, catPersistable);
 
   80         indexRecord->set(indexKeys.nRows, catalog.
size());
 
   90                               "All catalogs passed to saveCatalog must be created by makeCatalog");
 
   95             auto names = 
iter->getTable()->getMetadata()->getArray<
std::string>(
"AR_NAME");
 
   96             if (
std::find(names.begin(), names.end(), 
name) == names.end()) {
 
   97                 iter->getTable()->getMetadata()->add(
"AR_NAME", 
name, 
"Class name for objects stored here");
 
  100             iter->getTable()->getMetadata()->add(
"AR_NAME", 
name, 
"Class name for objects stored here");
 
  103         iter->getTable()->getMetadata()->set(
"EXTNAME", 
name);
 
  104         indexRecord->set(indexKeys.row0, 
iter->size());
 
  105         indexRecord->set(indexKeys.catArchive, catArchive);
 
  111         if (permissive && !
obj->isPersistable()) 
return 0;
 
  121         if (permissive && !
obj->isPersistable()) 
return 0;
 
  126             return put(
obj.get(), 
self, permissive);
 
  130             return r.first->second;
 
  136                                               "# of catalogs in this archive, including the index");
 
  140             iter->writeFits(fitsfile);
 
  146         metadata->set(
"EXTTYPE", 
"ARCHIVE_INDEX");
 
  147         metadata->set(
"EXTNAME", 
"ARCHIVE_INDEX");
 
  148         metadata->set(
"AR_CATN", 0, 
"# of this catalog relative to the start of this archive");
 
  177     return _impl->
put(
obj, _impl, permissive);
 
  191     if (n == 0) 
return _impl->
_index;
 
  212     _impl->saveCatalog(catalog, _id, _name, _module, _catPersistable);
 
  219     return _impl->put(
obj, _impl, permissive);
 
  230         : _id(
id), _catPersistable(0), _name(
name), _module(
module), _impl(impl) {}
 
table::Key< std::string > name
 
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
 
A simple struct that combines the two arguments that must be passed to most cfitsio routines and cont...
 
std::shared_ptr< RecordT > addNew()
Create a new record, add it to the end of the catalog, and return a pointer to it.
 
size_type size() const
Return the number of elements in the catalog.
 
iterator begin()
Iterator access.
 
std::shared_ptr< Table > getTable() const
Return the table associated with the catalog.
 
void writeFits(std::string const &filename, std::string const &mode="w", int flags=0) const
Write a FITS binary table to a regular file.
 
Defines the fields and offsets for a table.
 
@ EQUAL_NAMES
Fields have the same names (ordered).
 
@ EQUAL_KEYS
Keys have the same types offsets, and sizes.
 
A vector of catalogs used by Persistable.
 
int put(Persistable const *obj, std::shared_ptr< Impl > const &self, bool permissive)
 
BaseCatalog makeCatalog(Schema const &schema)
 
int put(std::shared_ptr< Persistable const > obj, std::shared_ptr< Impl > const &self, bool permissive)
 
void writeFits(fits::Fits &fitsfile)
 
void saveEmpty(int id, std::string const &name, std::string const &module)
 
void saveCatalog(BaseCatalog const &catalog, int id, std::string const &name, std::string const &module, int catPersistable)
 
std::shared_ptr< BaseRecord > addIndexRecord(int id, std::string const &name, std::string const &module)
 
An object passed to Persistable::write to allow it to persist itself.
 
void saveCatalog(BaseCatalog const &catalog)
Save a catalog in the archive.
 
OutputArchiveHandle(const OutputArchiveHandle &)=delete
 
void saveEmpty()
Indicate that the object being persisted has no state, and hence will never call makeCatalog() or sav...
 
BaseCatalog makeCatalog(Schema const &schema)
Return a new, empty catalog with the given schema.
 
int put(Persistable const *obj, bool permissive=false)
Save an object to the archive and return a unique ID that can be used to retrieve it from an InputArc...
 
A multi-catalog archive object used to save table::io::Persistable objects.
 
std::size_t countCatalogs() const
Return the total number of catalogs, including the index.
 
int put(std::shared_ptr< Persistable const > obj, bool permissive=false)
Save an object to the archive and return a unique ID that can be used to retrieve it from an InputArc...
 
void writeFits(fits::Fits &fitsfile) const
Write the archive to an already-open FITS object.
 
BaseCatalog const  & getCatalog(int n) const
Return the nth catalog. Catalog 0 is always the index catalog.
 
OutputArchive & operator=(OutputArchive const &other)
Assign from another OutputArchive. Saved objects are not deep-copied.
 
BaseCatalog const  & getIndexCatalog() const
Return the index catalog that specifies where objects are stored in the data catalogs.
 
OutputArchive()
Construct an empty OutputArchive containing no objects.
 
A base class for objects that can be persisted via afw::table::io Archive classes.
 
Class for storing ordered metadata with comments.
 
Reports attempts to exceed implementation-defined length limits for some classes.
 
Reports errors in the logical structure of the program.
 
Reports attempts to access elements using an invalid key.
 
CatalogT< BaseRecord > BaseCatalog
 
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
 
A base class for image defects.
 
Schema for the index catalog that specifies where objects are stored in the data catalogs.
 
static constexpr int const NO_CATALOGS_SAVED
Special value used for catArchive, catPersistable, and row0 when an object with no state is saved.
 
static ArchiveIndexSchema const  & get()
Return the singleton instance.