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 | 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 }
table::Key< std::string > name
Definition: ApCorrMap.cc:71
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: