Loading [MathJax]/extensions/tex2jax.js
Go to the documentation of this file.
11 #ifndef GAUDIUTILS_XMLFILECATALOG_H
12 #define GAUDIUTILS_XMLFILECATALOG_H
15 #include "xercesc/dom/DOMDocument.hpp"
16 #include "xercesc/dom/DOMElement.hpp"
17 #include "xercesc/parsers/XercesDOMParser.hpp"
18 #include "xercesc/sax/ErrorHandler.hpp"
73 void getPFN(
CSTR fid, Files& files )
const override;
75 void getLFN(
CSTR fid, Files& files )
const override;
102 xercesc::DOMDocument*
getDoc(
bool throw_if_no_exists =
true )
const;
106 xercesc::DOMNode*
element(
CSTR fid,
bool print_err =
true )
const;
107 xercesc::DOMNode*
child( xercesc::DOMNode*
par,
CSTR tag,
CSTR attr =
"",
CSTR val =
"" )
const;
111 xercesc::DOMDocument*
m_doc =
nullptr;
void deletePFN(CSTR pfn) const override
remove a PFN
std::unique_ptr< xercesc::XercesDOMParser > m_parser
bool existsFID(CSTR fid) const override
Return the status of a FileID.
xercesc::DOMNode * child(xercesc::DOMNode *par, CSTR tag, CSTR attr="", CSTR val="") const
XMLFileCatalog(CSTR url, IMessageSvc *m)
Create a catalog file, initialization of XercesC.
void setMetaData(CSTR fid, CSTR name, CSTR value) const override
Insert/update metadata item.
void deleteFID(CSTR FileID) const override
Delete FileID Node from the catalog.
void getLFN(CSTR fid, Files &files) const override
Dump all logical file names of the catalog associate to the FileID.
void getPFN(CSTR fid, Files &files) const override
Dump all physical file names of the catalog and their attributes associate to the FileID.
void commit() override
Save DOM catalog to file.
CSTR connectInfo() const override
Access to connect string.
std::string getfile(bool create)
void registerLFN(CSTR fid, CSTR lfn) const override
Create a FileID and Node of the logical file name with all the attributes.
void dropMetaData(CSTR fid) const override
Drop all metadata of one FID.
bool dirty() const override
Check if the catalog should be updated.
xercesc::DOMDocument * m_doc
std::pair< xercesc::DOMElement *, xercesc::DOMElement * > i_registerFID(CSTR fid) const
xercesc::DOMNode * element(CSTR fid, bool print_err=true) const
bool readOnly() const override
Check if the catalog is read-only.
Header file for std:chrono::duration-based Counters.
void printError(CSTR msg, bool throw_exc=true) const
Base class used to implement the interfaces.
void rollback() override
Save DOM catalog to file.
std::string lookupPFN(CSTR fid) const override
Lookup file identifier by physical file name.
void registerPFN(CSTR fid, CSTR pfn, CSTR ftype) const override
Create a FileID and Node of the physical file name with all the attributes.
void init() override
Parse the DOM tree of the XML catalog.
std::string createGuidAsString()
Helper function creating file identifier using the UUID mechanism.
void renamePFN(CSTR pfn, CSTR new_pfn) const override
rename a PFN
void getMetaData(CSTR fid, Attributes &attr) const override
Dump all MetaData of the catalog for a given file ID.
xercesc::DOMDocument * getDoc(bool throw_if_no_exists=true) const
std::string getMetaDataItem(CSTR fid, CSTR name) const override
Access metadata item.
std::string lookupLFN(CSTR lfn) const override
Lookup file identifier by logical file name.
void registerFID(CSTR fid) const override
Create a FileID and Node.
std::unique_ptr< xercesc::ErrorHandler > m_errHdlr
void getFID(Strings &fids) const override
Dump all file Identifiers.
bool existsPFN(CSTR pfn) const override
Return the status of a physical file name.
std::string lookupFID(CSTR lfn) const
bool existsLFN(CSTR lfn) const override
Return the status of a logical file name.
std::string createFID() const override
Catalog interface