lsst.afw g87b8406481+6d9b2db676
Loading...
Searching...
No Matches
InputArchive.h
Go to the documentation of this file.
1// -*- lsst-c++ -*-
2#ifndef AFW_TABLE_IO_InputArchive_h_INCLUDED
3#define AFW_TABLE_IO_InputArchive_h_INCLUDED
4
5#include <map>
6
7#include "lsst/base.h"
9
10namespace lsst {
11namespace afw {
12namespace table {
13
14class BaseRecord;
15template <typename RecordT>
16class CatalogT;
17using BaseCatalog = CatalogT<BaseRecord>;
18
19namespace io {
20
21class CatalogVector;
22
31class InputArchive final {
32public:
34
37
39 InputArchive(BaseCatalog const& index, CatalogVector const& dataCatalogs);
40
44
48
50
57
59 template <typename T>
60 std::shared_ptr<T> get(int id) const {
61 std::shared_ptr<T> p = std::dynamic_pointer_cast<T>(get(id));
62 LSST_ARCHIVE_ASSERT(p || id == 0);
63 return p;
64 }
65
67 Map const& getAll() const;
68
74 static InputArchive readFits(fits::Fits& fitsfile);
75
76private:
77 class Impl;
78
80
82};
83} // namespace io
84} // namespace table
85} // namespace afw
86} // namespace lsst
87
88#endif // !AFW_TABLE_IO_InputArchive_h_INCLUDED
#define LSST_ARCHIVE_ASSERT(EXPR)
An assertion macro used to validate the structure of an InputArchive.
Definition: Persistable.h:48
A simple struct that combines the two arguments that must be passed to most cfitsio routines and cont...
Definition: fits.h:308
A vector of catalogs used by Persistable.
Definition: CatalogVector.h:29
A multi-catalog archive object used to load table::io::Persistable objects.
Definition: InputArchive.h:31
static InputArchive readFits(fits::Fits &fitsfile)
Read an object from an already open FITS object.
InputArchive & operator=(InputArchive const &other)
Assignment. Does not deep-copy loaded Persistables.
Map const & getAll() const
Load and return all objects in the archive.
std::shared_ptr< Persistable > get(int id) const
Load the Persistable with the given ID and return it.
InputArchive(InputArchive const &other)
Copy-constructor. Does not deep-copy loaded Persistables.
std::shared_ptr< T > get(int id) const
Load an object of the given type and ID with error checking.
Definition: InputArchive.h:60
std::map< int, std::shared_ptr< Persistable > > Map
Definition: InputArchive.h:33
InputArchive()
Construct an empty InputArchive that contains no objects.
CatalogT< BaseRecord > BaseCatalog
Definition: fwd.h:72