14#include <xercesc/dom/DOMDocument.hpp>
15#include <xercesc/dom/DOMElement.hpp>
16#include <xercesc/parsers/XercesDOMParser.hpp>
17#include <xercesc/sax/ErrorHandler.hpp>
38 typedef const std::string&
CSTR;
72 void getPFN(
CSTR fid, Files& files )
const override;
74 void getLFN(
CSTR fid, Files& files )
const override;
76 void getFID( Strings& fids )
const override;
101 xercesc::DOMDocument*
getDoc(
bool throw_if_no_exists =
true )
const;
102 std::string
getfile(
bool create );
105 xercesc::DOMNode*
element(
CSTR fid,
bool print_err =
true )
const;
106 xercesc::DOMNode*
child( xercesc::DOMNode* par,
CSTR tag,
CSTR attr =
"",
CSTR val =
"" )
const;
107 std::pair<xercesc::DOMElement*, xercesc::DOMElement*>
i_registerFID(
CSTR fid )
const;
110 xercesc::DOMDocument*
m_doc =
nullptr;
111 std::unique_ptr<xercesc::XercesDOMParser>
m_parser;
void rollback() override
Save DOM catalog to file.
std::string getfile(bool create)
void getLFN(CSTR fid, Files &files) const override
Dump all logical file names of the catalog associate to the FileID.
bool existsFID(CSTR fid) const override
Return the status of a FileID.
std::pair< xercesc::DOMElement *, xercesc::DOMElement * > i_registerFID(CSTR fid) const
std::unique_ptr< xercesc::ErrorHandler > m_errHdlr
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 getPFN(CSTR fid, Files &files) const override
Dump all physical file names of the catalog and their attributes associate to the FileID.
void getMetaData(CSTR fid, Attributes &attr) const override
Dump all MetaData of the catalog for a given file ID.
void getFID(Strings &fids) const override
Dump all file Identifiers.
void init() override
Parse the DOM tree of the XML catalog.
xercesc::DOMNode * child(xercesc::DOMNode *par, CSTR tag, CSTR attr="", CSTR val="") const
std::unique_ptr< xercesc::XercesDOMParser > m_parser
xercesc::DOMDocument * getDoc(bool throw_if_no_exists=true) const
void registerFID(CSTR fid) const override
Create a FileID and Node.
void deletePFN(CSTR pfn) const override
remove a PFN
std::string createFID() const override
Catalog interface.
XMLFileCatalog(CSTR url, IMessageSvc *m)
Create a catalog file, initialization of XercesC.
bool existsPFN(CSTR pfn) const override
Return the status of a physical file name.
void setMetaData(CSTR fid, CSTR name, CSTR value) const override
Insert/update metadata item.
void printError(CSTR msg, bool throw_exc=true) const
void commit() override
Save DOM catalog to file.
void registerLFN(CSTR fid, CSTR lfn) const override
Create a FileID and Node of the logical file name with all the attributes.
xercesc::DOMDocument * m_doc
void dropMetaData(CSTR fid) const override
Drop all metadata of one FID.
bool dirty() const override
Check if the catalog should be updated.
bool readOnly() const override
Check if the catalog is read-only.
CSTR connectInfo() const override
Access to connect string.
std::string getMetaDataItem(CSTR fid, CSTR name) const override
Access metadata item.
bool existsLFN(CSTR lfn) const override
Return the status of a logical file name.
std::string lookupLFN(CSTR lfn) const override
Lookup file identifier by logical file name.
void deleteFID(CSTR FileID) const override
Delete FileID Node from the catalog.
std::string lookupFID(CSTR lfn) const
std::string lookupPFN(CSTR fid) const override
Lookup file identifier by physical file name.
void renamePFN(CSTR pfn, CSTR new_pfn) const override
rename a PFN
xercesc::DOMNode * element(CSTR fid, bool print_err=true) const
The IMessage is the interface implemented by the message service.
This file provides a Grammar for the type Gaudi::Accumulators::Axis It allows to use that type from p...
std::string createGuidAsString()
Helper function creating file identifier using the UUID mechanism.