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 Attributes | List of all members
lsst::afw::formatters::MaskFormatter< MaskPixelT > Class Template Reference

Class implementing persistence and retrieval for Masks. More...

#include <MaskFormatter.h>

Inheritance diagram for lsst::afw::formatters::MaskFormatter< MaskPixelT >:
lsst::daf::persistence::Formatter lsst::daf::base::Citizen

Public Member Functions

virtual ~MaskFormatter (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

static
lsst::daf::persistence::Formatter::Ptr 
createInstance (lsst::pex::policy::Policy::Ptr policy)
 
template<class Archive >
static void delegateSerialize (Archive &ar, 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

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

Static Private Attributes

static
lsst::daf::persistence::FormatterRegistration 
registration
 

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

template<typename MaskPixelT>
class lsst::afw::formatters::MaskFormatter< MaskPixelT >

Class implementing persistence and retrieval for Masks.

Definition at line 54 of file MaskFormatter.h.

Constructor & Destructor Documentation

template<typename MaskPixelT >
lsst::afw::formatters::MaskFormatter< MaskPixelT >::~MaskFormatter ( void  )
virtual

Definition at line 97 of file MaskFormatter.cc.

97  {
98 }
template<typename MaskPixelT >
lsst::afw::formatters::MaskFormatter< MaskPixelT >::MaskFormatter ( lsst::pex::policy::Policy::Ptr  policy)
explicitprivate

Definition at line 91 of file MaskFormatter.cc.

92  :
93  lsst::daf::persistence::Formatter(typeid(this)) {
94 }
Abstract base class for all formatters.
Definition: Formatter.h:79

Member Function Documentation

template<typename MaskPixelT >
lsst::daf::persistence::Formatter::Ptr lsst::afw::formatters::MaskFormatter< MaskPixelT >::createInstance ( lsst::pex::policy::Policy::Ptr  policy)
static

Definition at line 190 of file MaskFormatter.cc.

191  {
192  return lsst::daf::persistence::Formatter::Ptr(new MaskFormatter<MaskPixelT>(policy));
193 }
boost::shared_ptr< Formatter > Ptr
Definition: Formatter.h:81
template<typename MaskPixelT >
template<class Archive >
void lsst::afw::formatters::MaskFormatter< MaskPixelT >::delegateSerialize ( Archive &  ar,
int const  version,
lsst::daf::base::Persistable persistable 
)
static

Definition at line 162 of file MaskFormatter.cc.

163  {
164  execTrace("MaskFormatter delegateSerialize start");
165  Mask<MaskPixelT>* ip = dynamic_cast<Mask<MaskPixelT>*>(persistable);
166  if (ip == 0) {
167  throw LSST_EXCEPT(lsst::pex::exceptions::RuntimeError, "Serializing non-Mask");
168  }
169  ar & ip->_offsetRows & ip->_offsetCols;
170  ar & ip->_maskPlaneDict;
171  unsigned int cols;
172  unsigned int rows;
173  unsigned int planes;
174  if (Archive::is_saving::value) {
175  cols = ip->_vwImagePtr->cols();
176  rows = ip->_vwImagePtr->rows();
177  planes = ip->_vwImagePtr->planes();
178  }
179  ar & cols & rows & planes;
180  if (Archive::is_loading::value) {
181  ip->_vwImagePtr->set_size(cols, rows, planes);
182  }
183  unsigned int pixels = cols * rows * planes;
184  MaskPixelT* data = ip->_vwImagePtr->data();
185  ar & boost::serialization::make_array(data, pixels);
186  execTrace("MaskFormatter delegateSerialize end");
187 }
Represent a 2-dimensional array of bitmask pixels.
Definition: Mask.h:93
#define LSST_EXCEPT(type,...)
Definition: Exception.h:46
static boost::shared_ptr< detail::MaskDict > _maskPlaneDict()
Definition: Mask.cc:1246
template<typename MaskPixelT >
Persistable * lsst::afw::formatters::MaskFormatter< MaskPixelT >::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 131 of file MaskFormatter.cc.

133  {
134  execTrace("MaskFormatter read start");
135  if (typeid(*storage) == typeid(BoostStorage)) {
136  execTrace("MaskFormatter read BoostStorage");
137  BoostStorage* boost = dynamic_cast<BoostStorage*>(storage.get());
139  boost->getIArchive() & *ip;
140  execTrace("MaskFormatter read end");
141  return ip;
142  }
143  else if (typeid(*storage) == typeid(FitsStorage)) {
144  execTrace("MaskFormatter read FitsStorage");
145  FitsStorage* fits = dynamic_cast<FitsStorage*>(storage.get());
146  Mask<MaskPixelT>* ip = new Mask<MaskPixelT>(fits->getPath(), fits->getHdu());
147  execTrace("MaskFormatter read end");
148  return ip;
149  }
150  throw LSST_EXCEPT(lsst::pex::exceptions::RuntimeError, "Unrecognized Storage for Mask");
151 }
virtual boost::archive::text_iarchive & getIArchive(void)
virtual std::string const & getPath(void)
Definition: FitsStorage.cc:109
Class for FITS file storage.
Definition: FitsStorage.h:52
Represent a 2-dimensional array of bitmask pixels.
Definition: Mask.h:93
#define LSST_EXCEPT(type,...)
Definition: Exception.h:46
Class for boost::serialization storage.
Definition: BoostStorage.h:58
template<typename MaskPixelT >
void lsst::afw::formatters::MaskFormatter< MaskPixelT >::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 154 of file MaskFormatter.cc.

157  {
158  throw LSST_EXCEPT(lsst::pex::exceptions::RuntimeError, "Unexpected call to update for Mask");
159 }
#define LSST_EXCEPT(type,...)
Definition: Exception.h:46
template<typename MaskPixelT >
void lsst::afw::formatters::MaskFormatter< MaskPixelT >::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 101 of file MaskFormatter.cc.

104  {
105  execTrace("MaskFormatter write start");
106  Mask<MaskPixelT> const* ip =
107  dynamic_cast<Mask<MaskPixelT> const*>(persistable);
108  if (ip == 0) {
109  throw LSST_EXCEPT(lsst::pex::exceptions::RuntimeError, "Persisting non-Mask");
110  }
111  if (typeid(*storage) == typeid(BoostStorage)) {
112  execTrace("MaskFormatter write BoostStorage");
113  BoostStorage* boost = dynamic_cast<BoostStorage*>(storage.get());
114  boost->getOArchive() & *ip;
115  execTrace("MaskFormatter write end");
116  return;
117  }
118  else if (typeid(*storage) == typeid(FitsStorage)) {
119  execTrace("MaskFormatter write FitsStorage");
120  FitsStorage* fits = dynamic_cast<FitsStorage*>(storage.get());
121  // Need to cast away const because writeFits modifies the metadata.
122  Mask<MaskPixelT>* vip = const_cast<Mask<MaskPixelT>*>(ip);
123  vip->writeFits(fits->getPath());
124  execTrace("MaskFormatter write end");
125  return;
126  }
127  throw LSST_EXCEPT(lsst::pex::exceptions::RuntimeError, "Unrecognized Storage for Mask");
128 }
void writeFits(std::string const &fileName, boost::shared_ptr< lsst::daf::base::PropertySet const > metadata=boost::shared_ptr< lsst::daf::base::PropertySet >(), std::string const &mode="w") const
Write a mask to a regular FITS file.
virtual std::string const & getPath(void)
Definition: FitsStorage.cc:109
Class for FITS file storage.
Definition: FitsStorage.h:52
Represent a 2-dimensional array of bitmask pixels.
Definition: Mask.h:93
#define LSST_EXCEPT(type,...)
Definition: Exception.h:46
virtual boost::archive::text_oarchive & getOArchive(void)
Class for boost::serialization storage.
Definition: BoostStorage.h:58

Member Data Documentation

template<typename MaskPixelT >
lsst::daf::persistence::FormatterRegistration lsst::afw::formatters::MaskFormatter< MaskPixelT >::registration
staticprivate

Definition at line 87 of file MaskFormatter.h.


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