Loading [MathJax]/extensions/tex2jax.js
LSST Applications g04dff08e69+42feea4ef2,g0fba68d861+a0b9de4ea6,g1ec0fe41b4+f536777771,g1fd858c14a+42269675ea,g35bb328faa+fcb1d3bbc8,g4af146b050+bbef1ba6f0,g4d2262a081+8f21adb3a6,g53246c7159+fcb1d3bbc8,g5a012ec0e7+b20b785ecb,g60b5630c4e+43e3f0d37c,g6273192d42+e9a7147bac,g67b6fd64d1+4086c0989b,g78460c75b0+2f9a1b4bcd,g786e29fd12+cf7ec2a62a,g7b71ed6315+fcb1d3bbc8,g7bbe65ff3e+43e3f0d37c,g8352419a5c+fcb1d3bbc8,g87b7deb4dc+43704db330,g8852436030+eb2388797a,g89139ef638+4086c0989b,g9125e01d80+fcb1d3bbc8,g94187f82dc+43e3f0d37c,g989de1cb63+4086c0989b,g9d31334357+43e3f0d37c,g9f33ca652e+9b312035f9,gabe3b4be73+1e0a283bba,gabf8522325+fa80ff7197,gb1101e3267+61f2793e68,gb58c049af0+f03b321e39,gb89ab40317+4086c0989b,gc0bb628dac+834c1753f9,gcf25f946ba+eb2388797a,gd6cbbdb0b4+af3c3595f5,gde0f65d7ad+9e0145b227,ge278dab8ac+d65b3c2b70,ge410e46f29+4086c0989b,gf23fb2af72+37a5db1cfd,gf67bdafdda+4086c0989b,v29.0.0.rc7
LSST Data Management Base Package
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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:308
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)