LSSTApplications  8.0.0.0+107,8.0.0.1+13,9.1+18,9.2,master-g084aeec0a4,master-g0aced2eed8+6,master-g15627eb03c,master-g28afc54ef9,master-g3391ba5ea0,master-g3d0fb8ae5f,master-g4432ae2e89+36,master-g5c3c32f3ec+17,master-g60f1e072bb+1,master-g6a3ac32d1b,master-g76a88a4307+1,master-g7bce1f4e06+57,master-g8ff4092549+31,master-g98e65bf68e,master-ga6b77976b1+53,master-gae20e2b580+3,master-gb584cd3397+53,master-gc5448b162b+1,master-gc54cf9771d,master-gc69578ece6+1,master-gcbf758c456+22,master-gcec1da163f+63,master-gcf15f11bcc,master-gd167108223,master-gf44c96c709
LSSTDataManagementBasePackage
Public Member Functions | Static Public Member Functions | Private Member Functions | List of all members
lsst::daf::persistence::StorageRegistry Class Reference

Class to register Storage subclasses. More...

#include <StorageRegistry.h>

Public Member Functions

Storage::Ptr createInstance (std::string const &name)
 

Static Public Member Functions

static StorageRegistrygetRegistry (void)
 

Private Member Functions

 StorageRegistry (void)
 
 ~StorageRegistry (void)
 
 StorageRegistry (StorageRegistry const &)
 
StorageRegistryoperator= (StorageRegistry const &)
 

Detailed Description

Class to register Storage subclasses.

A registry so that subclasses can be looked up by name.

Definition at line 56 of file StorageRegistry.h.

Constructor & Destructor Documentation

lsst::daf::persistence::StorageRegistry::StorageRegistry ( void  )
private

Constructor.

Definition at line 63 of file StorageRegistry.cc.

63  {
64  // : lsst::daf::base::Citizen(typeid(this))
65 }
lsst::daf::persistence::StorageRegistry::~StorageRegistry ( void  )
private

Minimal destructor. Do not destroy the Storage subclasses in case they are needed at static destruction time.

Definition at line 70 of file StorageRegistry.cc.

70  {
71 }
lsst::daf::persistence::StorageRegistry::StorageRegistry ( StorageRegistry const &  )
private

Member Function Documentation

Storage::Ptr lsst::daf::persistence::StorageRegistry::createInstance ( std::string const &  name)

Create a Storage subclass instance by name.

Parameters
[in]nameName of subclass
Returns
Shared pointer to subclass instance

All Storage subclasses must be listed here. Implemented as code; could be a lookup in a data structure.

Definition at line 80 of file StorageRegistry.cc.

80  {
81  if (name == "BoostStorage") {
82  return Storage::Ptr(new BoostStorage);
83  }
84  else if (name == "DbStorage") {
85  return Storage::Ptr(new DbStorage);
86  }
87  else if (name == "DbTsvStorage") {
88  return Storage::Ptr(new DbTsvStorage);
89  }
90  else if (name == "FitsStorage") {
91  return Storage::Ptr(new FitsStorage);
92  }
93  else if (name == "XmlStorage") {
94  return Storage::Ptr(new XmlStorage);
95  }
96  else throw std::invalid_argument("Invalid storage type: " + name);
97 }
boost::shared_ptr< Storage > Ptr
Definition: Storage.h:62
StorageRegistry & lsst::daf::persistence::StorageRegistry::getRegistry ( void  )
static

Return a reference to a subclass registry.

Returns
Reference to the registry.

Used to guarantee initialization of the registry before use.

Definition at line 104 of file StorageRegistry.cc.

104  {
106  return *registry;
107 }
StorageRegistry& lsst::daf::persistence::StorageRegistry::operator= ( StorageRegistry const &  )
private

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