LSST Applications g0fba68d861+bb7a7cfa1f,g1ec0fe41b4+f536777771,g1fd858c14a+470a99fdf4,g216c3ac8a7+0d4d80193f,g35bb328faa+fcb1d3bbc8,g4d2262a081+23bd310d1b,g53246c7159+fcb1d3bbc8,g56a49b3a55+369644a549,g5a012ec0e7+3632fc3ff3,g60b5630c4e+3bfb9058a5,g67b6fd64d1+ed4b5058f4,g78460c75b0+2f9a1b4bcd,g786e29fd12+cf7ec2a62a,g8180f54f50+60bd39f3b6,g8352419a5c+fcb1d3bbc8,g87d29937c9+57a68d035f,g8852436030+4699110379,g89139ef638+ed4b5058f4,g9125e01d80+fcb1d3bbc8,g94187f82dc+3bfb9058a5,g989de1cb63+ed4b5058f4,g9ccd5d7f00+b7cae620c0,g9d31334357+3bfb9058a5,g9f33ca652e+00883ace41,gabe3b4be73+1e0a283bba,gabf8522325+fa80ff7197,gb1101e3267+27b24065a3,gb58c049af0+f03b321e39,gb89ab40317+ed4b5058f4,gc0af124501+708fe67c54,gcf25f946ba+4699110379,gd6cbbdb0b4+bb83cc51f8,gde0f65d7ad+acd5afb0eb,ge1ad929117+3bfb9058a5,ge278dab8ac+d65b3c2b70,ge410e46f29+ed4b5058f4,gf5e32f922b+fcb1d3bbc8,gf67bdafdda+ed4b5058f4,w.2025.17
LSST Data Management Base Package
|
A base class for factory classes used to reconstruct objects from records. More...
#include <Persistable.h>
Public Member Functions | |
PersistableFactory (std::string const &name) | |
Constructor for the factory. | |
virtual std::shared_ptr< Persistable > | read (InputArchive const &archive, CatalogVector const &catalogs) const =0 |
Construct a new object from the given InputArchive and vector of catalogs. | |
virtual | ~PersistableFactory () noexcept=default |
PersistableFactory (const PersistableFactory &)=delete | |
PersistableFactory & | operator= (const PersistableFactory &)=delete |
PersistableFactory (PersistableFactory &&)=delete | |
PersistableFactory & | operator= (PersistableFactory &&)=delete |
Static Public Member Functions | |
static PersistableFactory const & | lookup (std::string const &name, std::string const &module="") |
Return the factory that has been registered with the given name. | |
Protected Types | |
using | InputArchive = io::InputArchive |
using | CatalogVector = io::CatalogVector |
A base class for factory classes used to reconstruct objects from records.
Classes that inherit from Persistable should also subclass PersistableFactory, and instantiate exactly one instance of the derived factory with static duration (usually the class and instance are both defined in an anonymous namespace in a source file).
Definition at line 228 of file Persistable.h.
|
protected |
Definition at line 231 of file Persistable.h.
|
protected |
Definition at line 230 of file Persistable.h.
|
explicit |
Constructor for the factory.
This should be called only once, and only on an object with static duration, as a pointer to the object will be put in a singleton registry.
The name must be globally unique with respect to all Persistables and be the same as Persistable::getPersistenceName(); the Python module that a Persistable may also declare is not used to resolve names, but rather just to import the module that may install the necessary factory in the registry.
Definition at line 74 of file Persistable.cc.
|
virtualdefaultnoexcept |
|
delete |
|
delete |
|
static |
Return the factory that has been registered with the given name.
If the lookup fails and module is not an empty string, we will attempt to import a Python module with that name (this will only work when the C++ is being called from Python) and try again.
Definition at line 76 of file Persistable.cc.
|
delete |
|
delete |
|
pure virtual |
Construct a new object from the given InputArchive and vector of catalogs.
Implemented in lsst::afw::cameraGeom::Camera::Factory, lsst::afw::cameraGeom::Detector::Factory, lsst::afw::cameraGeom::DetectorCollection::Factory, lsst::afw::cameraGeom::TransformMap::Factory, lsst::afw::detection::FootprintFactory, lsst::afw::detection::HeavyFootprint< ImagePixelT, MaskPixelT, VariancePixelT >::Factory, lsst::afw::image::FilterLabel::Factory, lsst::afw::math::AnalyticKernel::Factory, lsst::afw::math::DeltaFunctionKernel::Factory, lsst::afw::math::FixedKernel::Factory, lsst::afw::math::LinearCombinationKernel::Factory, lsst::meas::algorithms::CoaddBoundedField::Factory, lsst::meas::algorithms::CoaddPsf::Factory, lsst::meas::algorithms::KernelPsfFactory< T, K >, and lsst::meas::extensions::psfex::detail::PsfexPsfFactory.