25 #ifndef LSST_MWI_PERSISTENCE_STORAGE_H
26 #define LSST_MWI_PERSISTENCE_STORAGE_H
51 #include "lsst/daf/base/Citizen.h"
52 #include "lsst/pex/policy.h"
56 namespace persistence {
58 class LogicalLocation;
60 class Storage :
public lsst::daf::base::Citizen {
62 typedef std::shared_ptr<Storage>
Ptr;
63 typedef std::vector<Ptr>
List;
72 virtual void setPolicy(lsst::pex::policy::Policy::Ptr policy) = 0;
98 lsst::pex::policy::Policy::Ptr policy);
101 explicit Storage(std::type_info
const& type);
std::shared_ptr< Storage > Ptr
Class for logical location of a persisted Persistable instance.
static Ptr createInstance(std::string const &name, LogicalLocation const &location, bool persist, lsst::pex::policy::Policy::Ptr policy)
Create and configure a Storage subclass instance.
virtual void setPersistLocation(LogicalLocation const &location)=0
Set the destination for persistence.
virtual ~Storage(void)
Minimal destructor.
virtual void setPolicy(lsst::pex::policy::Policy::Ptr policy)=0
Allow a Policy to be used to configure the Storage.
virtual void startTransaction(void)=0
Begin an atomic transaction.
virtual void endTransaction(void)=0
End an atomic transaction.
void verifyPathName(std::string const &pathName)
Ensure that all directories along a path exist, creating them if necessary.
virtual void setRetrieveLocation(LogicalLocation const &location)=0
Set the source for retrieval.
Abstract base class for storage implementations.
Storage(std::type_info const &type)
Constructor.