![]() |
|
|
Generated: 18 Jul 2008 |
#include <MultiFileCatalog.h>
Inheritance diagram for Gaudi::MultiFileCatalog:


This class manages multiple file catalogs.
Definition at line 20 of file MultiFileCatalog.h.
Public Member Functions | |
| MultiFileCatalog (const std::string &nam, ISvcLocator *svc) | |
| Create a catalog file, initialization of XercesC. | |
| virtual | ~MultiFileCatalog () |
| Destructor,. | |
| virtual StatusCode | queryInterface (const InterfaceID &id, void **ppv) |
| IInterface implementation. | |
| virtual StatusCode | initialize () |
| Finalize service object. | |
| virtual StatusCode | finalize () |
| Finalize service object. | |
| virtual std::string | createFID () const |
| Create file identifier using UUID mechanism. | |
| virtual CSTR | connectInfo () const |
| Access to connect string. | |
| virtual void | init () |
| Parse the DOM tree of the XML catalog. | |
| virtual void | commit () |
| Save DOM catalog to file. | |
| virtual void | rollback () |
| Save DOM catalog to file. | |
| virtual bool | readOnly () const |
| Check if the catalog is read-only. | |
| virtual bool | dirty () const |
| Check if the catalog should be updated. | |
| virtual bool | existsPFN (CSTR pfn) const |
| Return the status of physical file name. | |
| virtual std::string | lookupPFN (CSTR pfn) const |
| Lookup file identifier by physical file name. | |
| virtual bool | existsLFN (CSTR lfn) const |
| Return the status of a logical file name. | |
| virtual std::string | lookupLFN (CSTR lfn) const |
| Lookup file identifier by logical file name. | |
| virtual bool | existsFID (CSTR fid) const |
| Return the status of a FileID. | |
| virtual void | getPFN (CSTR fid, Files &files) const |
| Dump all physical file names of the catalog and their attributes associate to the FileID. | |
| virtual void | getLFN (CSTR fid, Files &files) const |
| Dump all logical file names of the catalog associate to the FileID. | |
| virtual void | getFID (Strings &fids) const |
| Dump all file Identifiers. | |
| virtual void | deleteFID (CSTR fid) const |
| Delete FileID from the catalog. | |
| virtual void | registerPFN (CSTR fid, CSTR pfn, CSTR ftype) const |
| Create a FileID and DOM Node of the PFN with all the attributes. | |
| virtual void | registerLFN (CSTR fid, CSTR lfn) const |
| Create a FileID and DOM Node of the LFN with all the attributes. | |
| virtual void | registerFID (CSTR fid) const |
| Create a FileID and DOM Node. | |
| virtual void | getMetaData (CSTR fid, Attributes &attr) const |
| Dump all MetaData of the catalog for a given file ID. | |
| virtual std::string | getMetaDataItem (CSTR fid, CSTR name) const |
| Access metadata item. | |
| virtual void | setMetaData (CSTR fid, CSTR attr, CSTR val) const |
| Insert/update metadata item. | |
| virtual void | dropMetaData (CSTR fid) const |
| Drop all metadata of one FID. | |
| virtual void | dropMetaData (CSTR fid, CSTR attr) const |
| Drop specified metadata item. | |
| virtual IFileCatalog * | findCatalog (CSTR connect, bool must_be_writable) const |
| Find catalog by connect string. | |
| virtual void | addCatalog (CSTR connect) |
| Add new catalog identified by name to the existing ones. | |
| virtual void | addCatalog (IFileCatalog *cat) |
| Add new catalog identified by reference to the existing ones. | |
| virtual void | removeCatalog (CSTR connect) |
| Remove catalog identified by name from the existing ones. | |
| virtual void | removeCatalog (const IFileCatalog *cat) |
| Remove catalog identified by reference from the existing ones. | |
| virtual Catalogs & | catalogs () |
| Access catalog container. | |
| virtual const Catalogs & | catalogs () const |
| Access catalog container (CONST). | |
| virtual IFileCatalog * | writeCatalog (CSTR fid="") const |
| Access to the (first) writable file catalog. | |
| virtual void | setWriteCatalog (IFileCatalog *cat) |
| Define the writable catalog identified by reference. | |
| virtual void | setWriteCatalog (CSTR connect) |
| Define the writable catalog identified by name. | |
Protected Types | |
| typedef const std::string & | CSTR |
| typedef std::vector< IFileCatalog * > | Catalogs |
| Public type definitions. | |
| typedef std::vector< std::string > | CatalogNames |
Protected Member Functions | |
| template<class T> | |
| void | _exec (T pmf) const |
| template<class A1, class F> | |
| std::string | _find (A1 &arg1, F pmf) const |
| template<class A1, class F> | |
| void | _collect (A1 arg1, F pmf) const |
| template<class A1, class A2, class F> | |
| void | _collect (A1 arg1, A2 &arg2, F pmf) const |
Private Member Functions | |
| IFileCatalog * | getCatalog (CSTR fid, bool throw_if_not, bool writable=true, bool prt=true) const |
| Find catalog containing a given file identifier. | |
| Catalogs::iterator | i_findCatalog (CSTR connect, bool must_be_writable) |
| Find catalog by connect string. | |
| void | printError (CSTR msg, bool throw_exc=true) const |
| std::string | lookupFID (CSTR lfn) const |
Private Attributes | |
| Catalogs | m_catalogs |
| Container with references to known catalogs. | |
| CatalogNames | m_catalogNames |
| Property : Container with catalog names. | |
| bool | m_started |
| Flag to indicate if catalog is started. | |
typedef const std::string& Gaudi::MultiFileCatalog::CSTR [protected] |
Definition at line 26 of file MultiFileCatalog.h.
typedef std::vector<IFileCatalog*> Gaudi::MultiFileCatalog::Catalogs [protected] |
Public type definitions.
Reimplemented from Gaudi::IFileCatalogMgr.
Definition at line 27 of file MultiFileCatalog.h.
typedef std::vector<std::string> Gaudi::MultiFileCatalog::CatalogNames [protected] |
Definition at line 28 of file MultiFileCatalog.h.
| Gaudi::MultiFileCatalog::MultiFileCatalog | ( | const std::string & | nam, | |
| ISvcLocator * | svc | |||
| ) |
Create a catalog file, initialization of XercesC.
| virtual Gaudi::MultiFileCatalog::~MultiFileCatalog | ( | ) | [virtual] |
Destructor,.
| void Gaudi::MultiFileCatalog::_exec | ( | T | pmf | ) | const [inline, protected] |
Definition at line 30 of file MultiFileCatalog.h.
References _exec(), std::vector< _Tp, _Alloc >::begin(), std::vector< _Tp, _Alloc >::end(), and m_catalogs.
Referenced by _exec(), commit(), init(), and rollback().
00030 { 00031 for(Catalogs::const_iterator i=m_catalogs.begin(); i != m_catalogs.end(); ++i) 00032 ((*i)->*pmf)(); 00033 }
| std::string Gaudi::MultiFileCatalog::_find | ( | A1 & | arg1, | |
| F | pmf | |||
| ) | const [inline, protected] |
Definition at line 34 of file MultiFileCatalog.h.
References _find(), std::vector< _Tp, _Alloc >::begin(), std::vector< _Tp, _Alloc >::end(), and m_catalogs.
Referenced by _find(), lookupLFN(), and lookupPFN().
00034 { 00035 std::string result; 00036 for(Catalogs::const_iterator i=m_catalogs.begin(); i != m_catalogs.end(); ++i) 00037 if ( !(result= ((*i)->*pmf)(arg1)).empty() ) break; 00038 return result; 00039 }
| void Gaudi::MultiFileCatalog::_collect | ( | A1 | arg1, | |
| F | pmf | |||
| ) | const [inline, protected] |
Definition at line 40 of file MultiFileCatalog.h.
References _collect(), std::vector< _Tp, _Alloc >::begin(), std::vector< _Tp, _Alloc >::end(), std::basic_string< _CharT, _Traits, _Alloc >::insert(), and m_catalogs.
Referenced by _collect(), getFID(), getLFN(), getMetaData(), and getPFN().
00040 { 00041 A1 tmp; 00042 for(Catalogs::const_iterator i=m_catalogs.begin();i!=m_catalogs.end();++i,tmp.clear()) { 00043 ((*i)->*pmf)(tmp); 00044 arg1.insert(arg1.end(),tmp.begin(),tmp.end()); 00045 } 00046 }
| void Gaudi::MultiFileCatalog::_collect | ( | A1 | arg1, | |
| A2 & | arg2, | |||
| F | pmf | |||
| ) | const [inline, protected] |
Definition at line 47 of file MultiFileCatalog.h.
References _collect(), std::vector< _Tp, _Alloc >::begin(), std::vector< _Tp, _Alloc >::end(), and m_catalogs.
00047 { 00048 A2 tmp; 00049 for(Catalogs::const_iterator i=m_catalogs.begin();i!=m_catalogs.end();++i,tmp.clear()) { 00050 ((*i)->*pmf)(arg1,tmp); 00051 arg2.insert(arg2.end(),tmp.begin(),tmp.end()); 00052 } 00053 }
| virtual StatusCode Gaudi::MultiFileCatalog::queryInterface | ( | const InterfaceID & | id, | |
| void ** | ppv | |||
| ) | [virtual] |
| virtual StatusCode Gaudi::MultiFileCatalog::initialize | ( | ) | [virtual] |
| virtual StatusCode Gaudi::MultiFileCatalog::finalize | ( | ) | [virtual] |
| virtual std::string Gaudi::MultiFileCatalog::createFID | ( | ) | const [virtual] |
| virtual CSTR Gaudi::MultiFileCatalog::connectInfo | ( | ) | const [virtual] |
| virtual void Gaudi::MultiFileCatalog::init | ( | ) | [inline, virtual] |
Parse the DOM tree of the XML catalog.
Implements Gaudi::IFileCatalog.
Definition at line 75 of file MultiFileCatalog.h.
References _exec(), init(), and m_started.
Referenced by init().
| virtual void Gaudi::MultiFileCatalog::commit | ( | ) | [inline, virtual] |
Save DOM catalog to file.
Implements Gaudi::IFileCatalog.
Definition at line 78 of file MultiFileCatalog.h.
References _exec(), and commit().
Referenced by commit().
00078 { _exec(&IFileCatalog::commit); }
| virtual void Gaudi::MultiFileCatalog::rollback | ( | ) | [inline, virtual] |
Save DOM catalog to file.
Implements Gaudi::IFileCatalog.
Definition at line 80 of file MultiFileCatalog.h.
References _exec(), and rollback().
Referenced by rollback().
00080 { _exec(&IFileCatalog::rollback); }
| virtual bool Gaudi::MultiFileCatalog::readOnly | ( | ) | const [virtual] |
| virtual bool Gaudi::MultiFileCatalog::dirty | ( | ) | const [virtual] |
| virtual bool Gaudi::MultiFileCatalog::existsPFN | ( | CSTR | pfn | ) | const [inline, virtual] |
Return the status of physical file name.
Definition at line 86 of file MultiFileCatalog.h.
References std::basic_string< _CharT, _Traits, _Alloc >::empty(), existsPFN(), and lookupPFN().
Referenced by existsPFN().
| virtual std::string Gaudi::MultiFileCatalog::lookupPFN | ( | CSTR | pfn | ) | const [inline, virtual] |
Lookup file identifier by physical file name.
Definition at line 89 of file MultiFileCatalog.h.
References _find(), and lookupPFN().
Referenced by existsPFN(), and lookupPFN().
00090 { return _find(pfn,&IFileCatalog::lookupPFN); }
| virtual bool Gaudi::MultiFileCatalog::existsLFN | ( | CSTR | lfn | ) | const [inline, virtual] |
Return the status of a logical file name.
Definition at line 92 of file MultiFileCatalog.h.
References std::basic_string< _CharT, _Traits, _Alloc >::empty(), existsLFN(), and lookupLFN().
Referenced by existsLFN().
| virtual std::string Gaudi::MultiFileCatalog::lookupLFN | ( | CSTR | lfn | ) | const [inline, virtual] |
Lookup file identifier by logical file name.
Definition at line 95 of file MultiFileCatalog.h.
References _find(), and lookupLFN().
Referenced by existsLFN(), and lookupLFN().
00096 { return _find(lfn,&IFileCatalog::lookupLFN); }
| virtual bool Gaudi::MultiFileCatalog::existsFID | ( | CSTR | fid | ) | const [inline, virtual] |
Return the status of a FileID.
Definition at line 98 of file MultiFileCatalog.h.
References existsFID(), and getCatalog().
Referenced by existsFID().
00099 { return 0 != getCatalog(fid,false,false,false); }
Dump all physical file names of the catalog and their attributes associate to the FileID.
Definition at line 101 of file MultiFileCatalog.h.
References _collect(), and getPFN().
Referenced by getPFN().
00102 { _collect(fid,files,&IFileCatalog::getPFN); }
Dump all logical file names of the catalog associate to the FileID.
Definition at line 104 of file MultiFileCatalog.h.
References _collect(), and getLFN().
Referenced by getLFN().
00105 { _collect(fid,files,&IFileCatalog::getLFN); }
| virtual void Gaudi::MultiFileCatalog::getFID | ( | Strings & | fids | ) | const [inline, virtual] |
Dump all file Identifiers.
Implements Gaudi::IFileCatalog.
Definition at line 108 of file MultiFileCatalog.h.
References _collect(), and getFID().
Referenced by getFID().
00109 { _collect(fids,&IFileCatalog::getFID); }
| virtual void Gaudi::MultiFileCatalog::deleteFID | ( | CSTR | fid | ) | const [inline, virtual] |
Delete FileID from the catalog.
Definition at line 111 of file MultiFileCatalog.h.
References Gaudi::IFileCatalog::deleteFID(), deleteFID(), and writeCatalog().
Referenced by deleteFID().
00112 { writeCatalog(fid)->deleteFID(fid); }
| virtual void Gaudi::MultiFileCatalog::registerPFN | ( | CSTR | fid, | |
| CSTR | pfn, | |||
| CSTR | ftype | |||
| ) | const [virtual] |
Create a FileID and DOM Node of the PFN with all the attributes.
Create a FileID and DOM Node of the LFN with all the attributes.
| virtual void Gaudi::MultiFileCatalog::registerFID | ( | CSTR | fid | ) | const [inline, virtual] |
Create a FileID and DOM Node.
Definition at line 118 of file MultiFileCatalog.h.
References Gaudi::IFileCatalog::registerFID(), registerFID(), and writeCatalog().
Referenced by registerFID().
00119 { writeCatalog()->registerFID(fid); }
| virtual void Gaudi::MultiFileCatalog::getMetaData | ( | CSTR | fid, | |
| Attributes & | attr | |||
| ) | const [inline, virtual] |
Dump all MetaData of the catalog for a given file ID.
Definition at line 121 of file MultiFileCatalog.h.
References _collect(), and getMetaData().
Referenced by getMetaData().
00122 { _collect(fid,attr,&IFileCatalog::getMetaData); }
| virtual std::string Gaudi::MultiFileCatalog::getMetaDataItem | ( | CSTR | fid, | |
| CSTR | name | |||
| ) | const [virtual] |
Access metadata item.
| virtual void Gaudi::MultiFileCatalog::setMetaData | ( | CSTR | fid, | |
| CSTR | attr, | |||
| CSTR | val | |||
| ) | const [inline, virtual] |
Insert/update metadata item.
Definition at line 126 of file MultiFileCatalog.h.
References Gaudi::IFileCatalog::setMetaData(), setMetaData(), and writeCatalog().
Referenced by setMetaData().
00127 { writeCatalog(fid)->setMetaData(fid,attr,val); }
| virtual void Gaudi::MultiFileCatalog::dropMetaData | ( | CSTR | fid | ) | const [inline, virtual] |
Drop all metadata of one FID.
Definition at line 129 of file MultiFileCatalog.h.
References Gaudi::IFileCatalog::dropMetaData(), dropMetaData(), and writeCatalog().
Referenced by dropMetaData().
00130 { writeCatalog(fid)->dropMetaData(fid); }
Drop specified metadata item.
Definition at line 132 of file MultiFileCatalog.h.
References Gaudi::IFileCatalog::dropMetaData(), dropMetaData(), and writeCatalog().
00133 { writeCatalog(fid)->dropMetaData(fid,attr); }
| virtual IFileCatalog* Gaudi::MultiFileCatalog::findCatalog | ( | CSTR | connect, | |
| bool | must_be_writable | |||
| ) | const [virtual] |
Find catalog by connect string.
| virtual void Gaudi::MultiFileCatalog::addCatalog | ( | CSTR | connect | ) | [virtual] |
Add new catalog identified by name to the existing ones.
| virtual void Gaudi::MultiFileCatalog::addCatalog | ( | IFileCatalog * | cat | ) | [virtual] |
| virtual void Gaudi::MultiFileCatalog::removeCatalog | ( | CSTR | connect | ) | [virtual] |
Remove catalog identified by name from the existing ones.
| virtual void Gaudi::MultiFileCatalog::removeCatalog | ( | const IFileCatalog * | cat | ) | [virtual] |
| virtual Catalogs& Gaudi::MultiFileCatalog::catalogs | ( | ) | [inline, virtual] |
Access catalog container.
Implements Gaudi::IFileCatalogMgr.
Definition at line 147 of file MultiFileCatalog.h.
References catalogs(), and m_catalogs.
Referenced by catalogs().
00147 { return m_catalogs; }
| virtual const Catalogs& Gaudi::MultiFileCatalog::catalogs | ( | ) | const [inline, virtual] |
Access catalog container (CONST).
Implements Gaudi::IFileCatalogMgr.
Definition at line 149 of file MultiFileCatalog.h.
References catalogs(), and m_catalogs.
00149 { return m_catalogs; }
| virtual IFileCatalog* Gaudi::MultiFileCatalog::writeCatalog | ( | CSTR | fid = "" |
) | const [inline, virtual] |
Access to the (first) writable file catalog.
Definition at line 151 of file MultiFileCatalog.h.
References getCatalog(), and writeCatalog().
Referenced by deleteFID(), dropMetaData(), registerFID(), setMetaData(), and writeCatalog().
00152 { return getCatalog(fid,true,true,false); }
| virtual void Gaudi::MultiFileCatalog::setWriteCatalog | ( | IFileCatalog * | cat | ) | [virtual] |
| virtual void Gaudi::MultiFileCatalog::setWriteCatalog | ( | CSTR | connect | ) | [virtual] |
Define the writable catalog identified by name.
| IFileCatalog* Gaudi::MultiFileCatalog::getCatalog | ( | CSTR | fid, | |
| bool | throw_if_not, | |||
| bool | writable = true, |
|||
| bool | prt = true | |||
| ) | const [private] |
| Catalogs::iterator Gaudi::MultiFileCatalog::i_findCatalog | ( | CSTR | connect, | |
| bool | must_be_writable | |||
| ) | [private] |
Find catalog by connect string.
| void Gaudi::MultiFileCatalog::printError | ( | CSTR | msg, | |
| bool | throw_exc = true | |||
| ) | const [private] |
| std::string Gaudi::MultiFileCatalog::lookupFID | ( | CSTR | lfn | ) | const [private] |
Catalogs Gaudi::MultiFileCatalog::m_catalogs [private] |
Container with references to known catalogs.
Definition at line 168 of file MultiFileCatalog.h.
Referenced by _collect(), _exec(), _find(), and catalogs().
CatalogNames Gaudi::MultiFileCatalog::m_catalogNames [private] |
bool Gaudi::MultiFileCatalog::m_started [private] |
Flag to indicate if catalog is started.
Definition at line 172 of file MultiFileCatalog.h.
Referenced by init().