| The Gaudi Framework v28r2p1 (f1a77ff4)

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

XMLFileCatalog.h
Go to the documentation of this file.
1 #ifndef GAUDIUTILS_XMLFILECATALOG_H
2 #define GAUDIUTILS_XMLFILECATALOG_H
3
4 #include "GaudiUtils/IFileCatalog.h"
5 #include "xercesc/dom/DOMElement.hpp"
6 #include "xercesc/dom/DOMDocument.hpp"
7 #include "xercesc/sax/ErrorHandler.hpp"
8 #include "xercesc/parsers/XercesDOMParser.hpp"
9
10 // Forward declarations
11 class IMessageSvc;
12
13 /*
14 * Gaudi namespace declaration
15 */
16 namespace Gaudi {
17
25 class XMLFileCatalog : public implements<IFileCatalog> {
26 protected:
27 typedef const std::string& CSTR;
28
29 public:
31 XMLFileCatalog(CSTR url, IMessageSvc* m);
33 ~XMLFileCatalog() override = default;
34
36 std::string createFID() const override;
39 CSTR connectInfo() const override { return m_file; }
41 void init() override;
43 void commit() override;
45 void rollback() override { if ( dirty() ) init(); }
47 bool readOnly() const override { return m_rdOnly; }
49 bool dirty() const override { return m_update; }
51 bool existsPFN(CSTR pfn) const override { return element(pfn,false) != 0; }
53 std::string lookupPFN(CSTR fid) const override { return lookupFID(fid); }
55 bool existsLFN(CSTR lfn) const override { return element(lfn,false) != 0; }
57 std::string lookupLFN(CSTR lfn) const override { return lookupFID(lfn); }
59 bool existsFID(CSTR fid) const override { return element(fid,false) != 0; }
61 void getPFN(CSTR fid, Files& files) const override;
63 void getLFN(CSTR fid, Files& files) const override;
65 void getFID(Strings& fids) const override;
67 void deleteFID(CSTR FileID) const override;
69 void registerPFN(CSTR fid, CSTR pfn, CSTR ftype) const override;
71 void registerLFN(CSTR fid, CSTR lfn) const override;
73 void registerFID(CSTR fid) const override;
75 void getMetaData(CSTR fid, Attributes& attr) const override;
77 std::string getMetaDataItem(CSTR fid, CSTR name) const override;
79 void setMetaData(CSTR fid, CSTR name, CSTR value) const override;
81 void dropMetaData(CSTR fid) const override { dropMetaData(fid,"*"); }
83 void dropMetaData(CSTR fid, CSTR attr) const override;
84 private:
85 xercesc::DOMDocument* getDoc(bool throw_if_no_exists=true) const;
86 std::string getfile(bool create);
87 void printError(CSTR msg, bool throw_exc=true) const;
88 std::string lookupFID(CSTR lfn) const;
89 xercesc::DOMNode* element(CSTR fid, bool print_err=true) const;
90 xercesc::DOMNode* child(xercesc::DOMNode* par, CSTR tag, CSTR attr="", CSTR val="") const;
91 std::pair<xercesc::DOMElement*, xercesc::DOMElement*> i_registerFID(CSTR fid) const;
92 bool m_rdOnly;
93 mutable bool m_update;
94 xercesc::DOMDocument *m_doc;
95 std::unique_ptr<xercesc::XercesDOMParser> m_parser;
96 std::unique_ptr<xercesc::ErrorHandler> m_errHdlr;
97 std::string m_file;
98 IMessageSvc* m_msgSvc;
99 };
101 std::string createGuidAsString();
102 } /* End namespace Gaudi */
103 #endif /* GAUDIUTILS_XMLFILECATALOG_H */
Gaudi::XMLFileCatalog::getMetaDataItem
std::string getMetaDataItem(CSTR fid, CSTR name) const override
Access metadata item.
Definition: XMLFileCatalog.cpp:310
Gaudi::XMLFileCatalog::readOnly
bool readOnly() const override
Check if the catalog is read-only.
Definition: XMLFileCatalog.h:47
Gaudi::XMLFileCatalog::m_file
std::string m_file
Definition: XMLFileCatalog.h:97
implements
Base class used to implement the interfaces.
Definition: implements.h:9
Gaudi::XMLFileCatalog::registerPFN
void registerPFN(CSTR fid, CSTR pfn, CSTR ftype) const override
Create a FileID and Node of the physical file name with all the attributes.
Definition: XMLFileCatalog.cpp:383
gaudiComponentHelp.name
name
Definition: gaudiComponentHelp.py:28
Gaudi::XMLFileCatalog::rollback
void rollback() override
Save DOM catalog to file.
Definition: XMLFileCatalog.h:45
Gaudi::XMLFileCatalog::lookupPFN
std::string lookupPFN(CSTR fid) const override
Lookup file identifier by physical file name.
Definition: XMLFileCatalog.h:53
Gaudi::XMLFileCatalog::lookupFID
std::string lookupFID(CSTR lfn) const
Definition: XMLFileCatalog.cpp:242
Gaudi::XMLFileCatalog::getfile
std::string getfile(bool create)
Definition: XMLFileCatalog.cpp:472
Gaudi::XMLFileCatalog::element
xercesc::DOMNode * element(CSTR fid, bool print_err=true) const
Definition: XMLFileCatalog.cpp:324
Gaudi::XMLFileCatalog::m_parser
std::unique_ptr< xercesc::XercesDOMParser > m_parser
Definition: XMLFileCatalog.h:95
std::string
STL class.
Gaudi::XMLFileCatalog::CSTR
const std::string & CSTR
Definition: XMLFileCatalog.h:27
compareOutputFiles.par
string par
Definition: compareOutputFiles.py:386
Gaudi::XMLFileCatalog::lookupLFN
std::string lookupLFN(CSTR lfn) const override
Lookup file identifier by logical file name.
Definition: XMLFileCatalog.h:57
Gaudi::XMLFileCatalog::child
xercesc::DOMNode * child(xercesc::DOMNode *par, CSTR tag, CSTR attr="", CSTR val="") const
Definition: XMLFileCatalog.cpp:284
Gaudi::XMLFileCatalog::existsPFN
bool existsPFN(CSTR pfn) const override
Return the status of a physical file name.
Definition: XMLFileCatalog.h:51
Gaudi::Units::m
constexpr double m
Definition: SystemOfUnits.h:93
Gaudi::XMLFileCatalog::printError
void printError(CSTR msg, bool throw_exc=true) const
Definition: XMLFileCatalog.cpp:203
Gaudi::XMLFileCatalog::getMetaData
void getMetaData(CSTR fid, Attributes &attr) const override
Dump all MetaData of the catalog for a given file ID.
Definition: XMLFileCatalog.cpp:276
Gaudi::XMLFileCatalog::m_errHdlr
std::unique_ptr< xercesc::ErrorHandler > m_errHdlr
Definition: XMLFileCatalog.h:96
IMessageSvc
The IMessage is the interface implemented by the message service.
Definition: IMessageSvc.h:57
Gaudi::XMLFileCatalog::m_doc
xercesc::DOMDocument * m_doc
Definition: XMLFileCatalog.h:94
Gaudi::XMLFileCatalog::getDoc
xercesc::DOMDocument * getDoc(bool throw_if_no_exists=true) const
Definition: XMLFileCatalog.cpp:197
Gaudi::XMLFileCatalog::connectInfo
CSTR connectInfo() const override
Access to connect string.
Definition: XMLFileCatalog.h:39
IFileCatalog.h
Gaudi::XMLFileCatalog::existsLFN
bool existsLFN(CSTR lfn) const override
Return the status of a logical file name.
Definition: XMLFileCatalog.h:55
Gaudi::XMLFileCatalog::getLFN
void getLFN(CSTR fid, Files &files) const override
Dump all logical file names of the catalog associate to the FileID.
Definition: XMLFileCatalog.cpp:270
Gaudi::XMLFileCatalog::XMLFileCatalog
XMLFileCatalog(CSTR url, IMessageSvc *m)
Create a catalog file, initialization of XercesC.
Definition: XMLFileCatalog.cpp:186
Gaudi::XMLFileCatalog::m_rdOnly
bool m_rdOnly
Definition: XMLFileCatalog.h:92
std::pair
Gaudi::XMLFileCatalog::~XMLFileCatalog
~XMLFileCatalog() override=default
Destructor,.
Gaudi::XMLFileCatalog::existsFID
bool existsFID(CSTR fid) const override
Return the status of a FileID.
Definition: XMLFileCatalog.h:59
Gaudi::XMLFileCatalog::setMetaData
void setMetaData(CSTR fid, CSTR name, CSTR value) const override
Insert/update metadata item.
Definition: XMLFileCatalog.cpp:294
std::unique_ptr< xercesc::XercesDOMParser >
Gaudi::createGuidAsString
std::string createGuidAsString()
Helper function creating file identifier using the UUID mechanism.
Gaudi::XMLFileCatalog::registerLFN
void registerLFN(CSTR fid, CSTR lfn) const override
Create a FileID and Node of the logical file name with all the attributes.
Definition: XMLFileCatalog.cpp:413
Gaudi::XMLFileCatalog::commit
void commit() override
Save DOM catalog to file.
Definition: XMLFileCatalog.cpp:441
GaudiMP.FdsRegistry.msg
msg
Definition: FdsRegistry.py:8
Gaudi::XMLFileCatalog::i_registerFID
std::pair< xercesc::DOMElement *, xercesc::DOMElement * > i_registerFID(CSTR fid) const
Definition: XMLFileCatalog.cpp:347
Gaudi::XMLFileCatalog::init
void init() override
Parse the DOM tree of the XML catalog.
Definition: XMLFileCatalog.cpp:211
Gaudi::XMLFileCatalog::m_msgSvc
IMessageSvc * m_msgSvc
Definition: XMLFileCatalog.h:98
Gaudi::XMLFileCatalog::registerFID
void registerFID(CSTR fid) const override
Create a FileID and Node.
Definition: XMLFileCatalog.cpp:336
Gaudi::XMLFileCatalog::getPFN
void getPFN(CSTR fid, Files &files) const override
Dump all physical file names of the catalog and their attributes associate to the FileID...
Definition: XMLFileCatalog.cpp:264
Gaudi::XMLFileCatalog
This class constitutes the core of the XML based FileCatalog API for POOL.
Definition: XMLFileCatalog.h:25
Gaudi::XMLFileCatalog::dirty
bool dirty() const override
Check if the catalog should be updated.
Definition: XMLFileCatalog.h:49
Gaudi::XMLFileCatalog::createFID
std::string createFID() const override
Catalog interface.
Definition: XMLFileCatalog.cpp:193
Gaudi::XMLFileCatalog::m_update
bool m_update
Definition: XMLFileCatalog.h:93
Gaudi
Helper functions to set/get the application return code.
Definition: __init__.py:1
Gaudi::XMLFileCatalog::getFID
void getFID(Strings &fids) const override
Dump all file Identifiers.
Definition: XMLFileCatalog.cpp:257
Gaudi::XMLFileCatalog::dropMetaData
void dropMetaData(CSTR fid) const override
Drop all metadata of one FID.
Definition: XMLFileCatalog.h:81
Gaudi::XMLFileCatalog::deleteFID
void deleteFID(CSTR FileID) const override
Delete FileID Node from the catalog.
Definition: XMLFileCatalog.cpp:330