LSSTApplications  10.0+286,10.0+36,10.0+46,10.0-2-g4f67435,10.1+152,10.1+37,11.0,11.0+1,11.0-1-g47edd16,11.0-1-g60db491,11.0-1-g7418c06,11.0-2-g04d2804,11.0-2-g68503cd,11.0-2-g818369d,11.0-2-gb8b8ce7
LSSTDataManagementBasePackage
Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
lsst::afw::detection::PsfFormatter Class Reference

Formatter for persistence of Psf instances. More...

#include <PsfFormatter.h>

Inheritance diagram for lsst::afw::detection::PsfFormatter:
lsst::daf::persistence::Formatter lsst::daf::base::Citizen

Public Member Functions

virtual ~PsfFormatter (void)
 
virtual void write (lsst::daf::base::Persistable const *persistable, lsst::daf::persistence::Storage::Ptr storage, lsst::daf::base::PropertySet::Ptr additionalData)
 
virtual
lsst::daf::base::Persistable
read (lsst::daf::persistence::Storage::Ptr storage, lsst::daf::base::PropertySet::Ptr additionalData)
 
virtual void update (lsst::daf::base::Persistable *persistable, lsst::daf::persistence::Storage::Ptr storage, lsst::daf::base::PropertySet::Ptr additionalData)
 
- Public Member Functions inherited from lsst::daf::persistence::Formatter
virtual ~Formatter (void)
 
- Public Member Functions inherited from lsst::daf::base::Citizen
 Citizen (const std::type_info &)
 
 Citizen (Citizen const &)
 
 ~Citizen ()
 
Citizenoperator= (Citizen const &)
 
std::string repr () const
 Return a string representation of a Citizen. More...
 
void markPersistent (void)
 Mark a Citizen as persistent and not destroyed until process end. More...
 
memId getId () const
 Return the Citizen's ID. More...
 

Static Public Member Functions

template<class Archive >
static void delegateSerialize (Archive &ar, unsigned int const version, lsst::daf::base::Persistable *persistable)
 
- Static Public Member Functions inherited from lsst::daf::persistence::Formatter
static Formatter::Ptr lookupFormatter (std::string const &persistableType, lsst::pex::policy::Policy::Ptr policy)
 
static Formatter::Ptr lookupFormatter (std::type_info const &persistableType, lsst::pex::policy::Policy::Ptr policy)
 
- Static Public Member Functions inherited from lsst::daf::base::Citizen
static bool hasBeenCorrupted ()
 Check all allocated blocks for corruption. More...
 
static memId getNextMemId ()
 Return the memId of the next object to be allocated. More...
 
static int init ()
 Called once when the memory system is being initialised. More...
 
static int census (int, memId startingMemId=0)
 How many active Citizens are there? More...
 
static void census (std::ostream &stream, memId startingMemId=0)
 Print a list of all active Citizens to stream, sorted by ID. More...
 
static const std::vector
< const Citizen * > * 
census ()
 Return a (newly allocated) std::vector of active Citizens sorted by ID. More...
 
static memId setNewCallbackId (memId id)
 Call the NewCallback when block is allocated. More...
 
static memId setDeleteCallbackId (memId id)
 Call the current DeleteCallback when block is deleted. More...
 
static memNewCallback setNewCallback (memNewCallback func)
 Set the NewCallback function. More...
 
static memCallback setDeleteCallback (memCallback func)
 Set the DeleteCallback function. More...
 
static memCallback setCorruptionCallback (memCallback func)
 Set the CorruptionCallback function. More...
 

Private Member Functions

 PsfFormatter (lsst::pex::policy::Policy::Ptr policy)
 

Static Private Member Functions

static
lsst::daf::persistence::Formatter::Ptr 
createInstance (lsst::pex::policy::Policy::Ptr policy)
 

Private Attributes

lsst::pex::policy::Policy::Ptr _policy
 

Static Private Attributes

static
lsst::daf::persistence::FormatterRegistration 
registration
 
static
lsst::daf::persistence::FormatterRegistration 
doubleGaussianPsfRegistration
 
static
lsst::daf::persistence::FormatterRegistration 
pcaPsfRegistration
 

Additional Inherited Members

- Public Types inherited from lsst::daf::persistence::Formatter
typedef boost::shared_ptr
< Formatter
Ptr
 
typedef Ptr(* FactoryPtr )(lsst::pex::policy::Policy::Ptr)
 
- Public Types inherited from lsst::daf::base::Citizen
enum  { magicSentinel = 0xdeadbeef }
 
typedef unsigned long memId
 Type of the block's ID. More...
 
typedef memId(* memNewCallback )(const memId cid)
 A function used to register a callback. More...
 
typedef memId(* memCallback )(const Citizen *ptr)
 
- Protected Member Functions inherited from lsst::daf::persistence::Formatter
 Formatter (std::type_info const &type)
 

Detailed Description

Formatter for persistence of Psf instances.

Definition at line 30 of file PsfFormatter.h.

Constructor & Destructor Documentation

lsst::afw::detection::PsfFormatter::~PsfFormatter ( void  )
virtual

Minimal destructor.

Definition at line 58 of file PsfFormatter.cc.

58 {}
lsst::afw::detection::PsfFormatter::PsfFormatter ( lsst::pex::policy::Policy::Ptr  policy)
explicitprivate

Constructor.

Parameters
[in]policyPolicy for configuring this Formatter

Definition at line 52 of file PsfFormatter.cc.

53  :
54  dafPersist::Formatter(typeid(this)), _policy(policy) {}
lsst::pex::policy::Policy::Ptr _policy
Definition: PsfFormatter.h:52
Abstract base class for all formatters.
Definition: Formatter.h:79

Member Function Documentation

dafPersist::Formatter::Ptr lsst::afw::detection::PsfFormatter::createInstance ( lsst::pex::policy::Policy::Ptr  policy)
staticprivate

Factory method for PsfFormatter.

Parameters
[in]policyPolicy for configuring the PsfFormatter
Returns
Shared pointer to a new instance

Definition at line 143 of file PsfFormatter.cc.

144  {
146 }
boost::shared_ptr< Formatter > Ptr
Definition: Formatter.h:81
Formatter for persistence of Psf instances.
Definition: PsfFormatter.h:30
template<class Archive >
void lsst::afw::detection::PsfFormatter::delegateSerialize ( Archive &  ar,
unsigned int const  version,
lsst::daf::base::Persistable persistable 
)
static

Serialize a Psf to a Boost archive. Handles text or XML archives, input or output.

Parameters
arBoost archive
versionVersion of the Psf class
persistablepersistable Pointer to the Psf as a Persistable

Definition at line 121 of file PsfFormatter.cc.

125  {
126  execTrace("PsfFormatter delegateSerialize start");
127  afwDetect::Psf* ps = dynamic_cast<afwDetect::Psf*>(persistable);
128  if (ps == 0) {
129  throw LSST_EXCEPT(lsst::pex::exceptions::RuntimeError, "Serializing non-Psf");
130  }
131 #if 0 // not present in baseclass
132  ar & make_nvp("width", ps->_width) & make_nvp("height", ps->_height);
133  ar & make_nvp("k", ps->_kernel);
134 #endif
135 
136  execTrace("PsfFormatter delegateSerialize end");
137 }
#define LSST_EXCEPT(type,...)
Definition: Exception.h:46
A polymorphic base class for representing an image&#39;s Point Spread Function.
Definition: Psf.h:68
dafBase::Persistable * lsst::afw::detection::PsfFormatter::read ( lsst::daf::persistence::Storage::Ptr  storage,
lsst::daf::base::PropertySet::Ptr  additionalData 
)
virtual

Read a Persistable instance from a Storage instance.

Parameters
[in]storagePointer to the Storage instance.
[in]additionalDataAdditional data used to find the proper instance within the Storage.
Returns
Shared pointer to the new Persistable instance.

Implements lsst::daf::persistence::Formatter.

Definition at line 88 of file PsfFormatter.cc.

89  {
90  execTrace("PsfFormatter read start");
91  afwDetect::Psf* ps;
92  if (typeid(*storage) == typeid(dafPersist::BoostStorage)) {
93  execTrace("PsfFormatter read BoostStorage");
95  dynamic_cast<dafPersist::BoostStorage*>(storage.get());
96  boost->getIArchive() & ps;
97  execTrace("PsfFormatter read end");
98  return ps;
99  }
100  else if (typeid(*storage) == typeid(dafPersist::XmlStorage)) {
101  execTrace("PsfFormatter read XmlStorage");
103  dynamic_cast<dafPersist::XmlStorage*>(storage.get());
104  xml->getIArchive() & make_nvp("psf", ps);
105  execTrace("PsfFormatter read end");
106  return ps;
107  }
108  throw LSST_EXCEPT(lsst::pex::exceptions::RuntimeError, "Unrecognized Storage for Psf");
109 }
Class for XML file storage.
Definition: XmlStorage.h:57
virtual boost::archive::text_iarchive & getIArchive(void)
virtual boost::archive::xml_iarchive & getIArchive(void)
Definition: XmlStorage.cc:114
#define LSST_EXCEPT(type,...)
Definition: Exception.h:46
Class for boost::serialization storage.
Definition: BoostStorage.h:58
A polymorphic base class for representing an image&#39;s Point Spread Function.
Definition: Psf.h:68
void lsst::afw::detection::PsfFormatter::update ( lsst::daf::base::Persistable persistable,
lsst::daf::persistence::Storage::Ptr  storage,
lsst::daf::base::PropertySet::Ptr  additionalData 
)
virtual

Update an existing Persistable instance with information from an additional Storage instance.

Parameters
[in,out]persistablePointer to the Persistable instance.
[in]storageShared pointer to the additional Storage instance.
[in]additionalDataAdditional data used to find the proper instance within the Storage.

Implements lsst::daf::persistence::Formatter.

Definition at line 111 of file PsfFormatter.cc.

113  {
114  throw LSST_EXCEPT(lsst::pex::exceptions::RuntimeError, "Unexpected call to update for Psf");
115 }
#define LSST_EXCEPT(type,...)
Definition: Exception.h:46
void lsst::afw::detection::PsfFormatter::write ( lsst::daf::base::Persistable const *  persistable,
lsst::daf::persistence::Storage::Ptr  storage,
lsst::daf::base::PropertySet::Ptr  additionalData 
)
virtual

Write a Persistable instance to a Storage instance.

Parameters
[in]persistablePointer to the Persistable instance.
[in]storageShared pointer to the Storage instance.
[in]additionalDataAdditional data used to find the proper place to put the instance into the Storage.

Implements lsst::daf::persistence::Formatter.

Definition at line 60 of file PsfFormatter.cc.

63  {
64  execTrace("PsfFormatter write start");
65  afwDetect::Psf const* ps = dynamic_cast<afwDetect::Psf const*>(persistable);
66  if (ps == 0) {
67  throw LSST_EXCEPT(lsst::pex::exceptions::RuntimeError, "Persisting non-Psf");
68  }
69  if (typeid(*storage) == typeid(dafPersist::BoostStorage)) {
70  execTrace("PsfFormatter write BoostStorage");
72  dynamic_cast<dafPersist::BoostStorage*>(storage.get());
73  boost->getOArchive() & ps;
74  execTrace("PsfFormatter write end");
75  return;
76  }
77  else if (typeid(*storage) == typeid(dafPersist::XmlStorage)) {
78  execTrace("PsfFormatter write XmlStorage");
80  dynamic_cast<dafPersist::XmlStorage*>(storage.get());
81  xml->getOArchive() & make_nvp("psf", ps);
82  execTrace("PsfFormatter write end");
83  return;
84  }
85  throw LSST_EXCEPT(lsst::pex::exceptions::RuntimeError, "Unrecognized Storage for Psf");
86 }
Class for XML file storage.
Definition: XmlStorage.h:57
#define LSST_EXCEPT(type,...)
Definition: Exception.h:46
virtual boost::archive::text_oarchive & getOArchive(void)
virtual boost::archive::xml_oarchive & getOArchive(void)
Definition: XmlStorage.cc:107
Class for boost::serialization storage.
Definition: BoostStorage.h:58
A polymorphic base class for representing an image&#39;s Point Spread Function.
Definition: Psf.h:68

Member Data Documentation

lsst::pex::policy::Policy::Ptr lsst::afw::detection::PsfFormatter::_policy
private

Definition at line 52 of file PsfFormatter.h.

lsst::daf::persistence::FormatterRegistration lsst::afw::detection::PsfFormatter::doubleGaussianPsfRegistration
staticprivate

Definition at line 58 of file PsfFormatter.h.

lsst::daf::persistence::FormatterRegistration lsst::afw::detection::PsfFormatter::pcaPsfRegistration
staticprivate

Definition at line 59 of file PsfFormatter.h.

dafPersist::FormatterRegistration lsst::afw::detection::PsfFormatter::registration
staticprivate

Register this Formatter subclass through a static instance of FormatterRegistration.

Definition at line 57 of file PsfFormatter.h.


The documentation for this class was generated from the following files: