1 #ifndef GAUDIUTILS_MULTIFILECATALOG_H 2 #define GAUDIUTILS_MULTIFILECATALOG_H 32 template <
class A1,
class F>
37 result = ( i->*pmf )( arg1 );
38 if ( !result.
empty() )
break;
42 template <
class A1,
class F>
48 arg1.insert( arg1.end(), tmp.begin(), tmp.end() );
52 template <
class A2,
class A1,
class F>
53 void _collect(
const A2& arg2, A1& arg1, F f )
const 58 arg1.insert( arg1.end(), tmp.begin(), tmp.end() );
87 bool dirty()
const override;
99 void getPFN( CSTR fid, Files& files )
const override 104 void getLFN( CSTR fid, Files& files )
const override 114 void registerPFN( CSTR fid, CSTR pfn, CSTR ftype )
const override;
116 void registerLFN( CSTR fid, CSTR lfn )
const override;
166 Catalogs::iterator
i_findCatalog( CSTR connect,
bool must_be_writable );
179 this,
"Catalogs", {{
"xmlcatalog_file:test_catalog.xml"}},
"catalog names"};
MultiFileCatalog(const std::string &nam, ISvcLocator *svc)
Create a catalog file, initialization of XercesC.
MsgStream & msg() const
shortcut for the method msgStream(MSG::INFO)
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
bool m_started
Flag to indicate if catalog is started.
std::string createFID() const override
Catalog interface.
const std::string & name() const override
Retrieve name of the service.
void getPFN(CSTR fid, Files &files) const override
Dump all physical file names of the catalog and their attributes associate to the FileID...
virtual void getPFN(const std::string &fid, Files &files) const =0
Dump all PFNames of the catalog and their attributes associate to the FileID.
Implementation of property with value of concrete type.
void registerPFN(CSTR fid, CSTR pfn, CSTR ftype) const override
Create a FileID and DOM Node of the PFN with all the attributes.
void deletePFN(CSTR pfn) const override
remove a PFN
virtual void getMetaData(const std::string &fid, Attributes &attr) const =0
Dump all MetaData of the catalog for a given file ID.
virtual void getLFN(const std::string &fid, Files &files) const =0
Dump all LFNames of the catalog associate to the FileID.
std::string getMetaDataItem(CSTR fid, CSTR name) const override
Access metadata item.
virtual void deletePFN(const std::string &pfn) const =0
remove a PFN
void printError(CSTR msg, bool throw_exc=true) const
virtual void deleteFID(const std::string &FileID) const =0
Delete FileID Node from the catalog.
std::string lookupFID(CSTR lfn) const
void setWriteCatalog(IFileCatalog *cat) override
Define the writable catalog identified by reference.
void dropMetaData(CSTR fid) const override
Drop all metadata of one FID.
virtual void registerFID(const std::string &fid) const =0
Create a Node for a FileID and DOM Node.
void _collect(A1 &arg1, F f) const
Catalogs::iterator i_findCatalog(CSTR connect, bool must_be_writable)
Find catalog by connect string.
virtual void getFID(Strings &fids) const =0
Dump all file Identifiers.
IFileCatalog * getCatalog(CSTR fid, bool throw_if_not, bool writable=true, bool prt=true) const
Find catalog containing a given file identifier.
StatusCode initialize() override
IService implementation.
const Catalogs & catalogs() const override
Access catalog container (CONST)
Catalogs m_catalogs
Container with references to known catalogs.
This class is used for returning status codes from appropriate routines.
Gaudi::Property< CatalogNames > m_catalogNames
std::string _find(A1 &arg1, F pmf) const
void getMetaData(CSTR fid, Attributes &attr) const override
Dump all MetaData of the catalog for a given file ID.
void setMetaData(CSTR fid, CSTR attr, CSTR val) const override
Insert/update metadata item.
void getFID(Strings &fids) const override
Dump all file Identifiers.
PropertyBase base class allowing PropertyBase* collections to be "homogeneous".
CSTR connectInfo() const override
Access to connect string.
virtual std::string lookupPFN(const std::string &lfn) const =0
Lookup file identifier by physical file name.
void getLFN(CSTR fid, Files &files) const override
Dump all logical file names of the catalog associate to the FileID.
std::vector< IFileCatalog * > Catalogs
void registerLFN(CSTR fid, CSTR lfn) const override
Create a FileID and DOM Node of the LFN with all the attributes.
std::string lookupLFN(CSTR lfn) const override
Lookup file identifier by logical file name.
std::string lookupPFN(CSTR pfn) const override
Lookup file identifier by physical file name.
virtual void setMetaData(const std::string &fid, const std::string &name, const std::string &value) const =0
Insert/update metadata item.
IFileCatalog * findCatalog(CSTR connect, bool must_be_writable) const override
Catalog management.
Gaudi::PluginService::Factory< IService *(const std::string &, ISvcLocator *)> Factory
virtual void dropMetaData(const std::string &fid) const =0
Drop all metadata of one FID.
Base class used to extend a class implementing other interfaces.
bool dirty() const override
Check if the catalog should be updated.
CatalogNames m_oldNames
BACKUP:: Container with catalog names.
void rollback() override
Save DOM catalog to file.
StatusCode finalize() override
Finalize service object.
void init() override
Parse the DOM tree of the XML catalog.
void registerFID(CSTR fid) const override
Create a FileID and DOM Node.
void addCatalog(CSTR connect) override
Add new catalog identified by name to the existing ones.
std::vector< std::string > CatalogNames
Catalogs & catalogs() override
Access catalog container.
bool readOnly() const override
Check if the catalog is read-only.
bool existsFID(CSTR fid) const override
Return the status of a FileID.
virtual void renamePFN(const std::string &pfn, const std::string &new_pfn) const =0
rename a PFN
void renamePFN(CSTR pfn, CSTR newpfn) const override
rename a PFN
void deleteFID(CSTR fid) const override
Delete FileID from the catalog.
bool existsPFN(CSTR pfn) const override
Return the status of physical file name.
IFileCatalog * writeCatalog(CSTR fid="") const override
Access to the (first) writable file catalog.
void commit() override
Save DOM catalog to file.
bool existsLFN(CSTR lfn) const override
Return the status of a logical file name.
void removeCatalog(CSTR connect) override
Remove catalog identified by name from the existing ones.
Helper functions to set/get the application return code.
void dropMetaData(CSTR fid, CSTR attr) const override
Drop specified metadata item.
virtual std::string lookupLFN(const std::string &lfn) const =0
Lookup file identifier by physical file name.
void _collect(const A2 &arg2, A1 &arg1, F f) const
void propHandler(Details::PropertyBase &)
simple property handle to allow interactive modification of list of the file catalogs ...
This class constitutes the core of the XML based FileCatalog API for using POOL within Gaudi...