LSST Applications g00d0e8bbd7+edbf708997,g03191d30f7+9ce8016dbd,g1955dfad08+0bd186d245,g199a45376c+5137f08352,g1fd858c14a+a888a50aa2,g262e1987ae+45f9aba685,g29ae962dfc+1c7d47a24f,g2cef7863aa+73c82f25e4,g35bb328faa+edbf708997,g3fd5ace14f+eed17d2c67,g47891489e3+6dc8069a4c,g53246c7159+edbf708997,g64539dfbff+c4107e45b5,g67b6fd64d1+6dc8069a4c,g74acd417e5+f452e9c21a,g786e29fd12+af89c03590,g7ae74a0b1c+a25e60b391,g7aefaa3e3d+2025e9ce17,g7cc15d900a+2d158402f9,g87389fa792+a4172ec7da,g89139ef638+6dc8069a4c,g8d4809ba88+c4107e45b5,g8d7436a09f+e96c132b44,g8ea07a8fe4+db21c37724,g98df359435+aae6d409c1,ga2180abaac+edbf708997,gac66b60396+966efe6077,gb632fb1845+88945a90f8,gbaa8f7a6c5+38b34f4976,gbf99507273+edbf708997,gca7fc764a6+6dc8069a4c,gd7ef33dd92+6dc8069a4c,gda68eeecaf+7d1e613a8d,gdab6d2f7ff+f452e9c21a,gdbb4c4dda9+c4107e45b5,ge410e46f29+6dc8069a4c,ge41e95a9f2+c4107e45b5,geaed405ab2+e194be0d2b,w.2025.47
LSST Data Management Base Package
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;
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 {
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
Basic LSST definitions.
A simple struct that combines the two arguments that must be passed to most cfitsio routines and cont...
Definition fits.h:242
Base class for all records.
Definition BaseRecord.h:31
A custom container class for records, based on std::vector.
Definition Catalog.h:98
A vector of catalogs used by Persistable.
A multi-catalog archive object used to load table::io::Persistable objects.
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.
std::map< int, std::shared_ptr< Persistable > > Map
InputArchive()
Construct an empty InputArchive that contains no objects.
CatalogT< BaseRecord > BaseCatalog
Definition fwd.h:72
T dynamic_pointer_cast(T... args)