| # Gaudi Framework, version v20r2
Generated: 18 Jul 2008

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

- Search for |

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# Gaudi::MultiFileCatalog Class Reference

`#include <MultiFileCatalog.h>`

Inheritance diagram for Gaudi::MultiFileCatalog:

[legend]
Collaboration diagram for Gaudi::MultiFileCatalog:

[legend]
List of all members.

## Detailed Description

This class constitutes the core of the XML based FileCatalog API for using POOL within Gaudi.

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.

## Member Typedef Documentation

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.

## Constructor & Destructor Documentation

Gaudi::MultiFileCatalog::MultiFileCatalog | ( | const std::string & | nam,
|  | ISvcLocator * | svc |
| ) |  |  |

Create a catalog file, initialization of XercesC.

virtual Gaudi::MultiFileCatalog::~MultiFileCatalog | ( |  | ) | `[virtual]`

Destructor,.

## Member Function Documentation

template<class T>

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     }

template<class A1, class F>

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     }

template<class A1, class F>

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     }

template<class A1, class A2, class F>

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]`

IInterface implementation.

Reimplemented from Service.

virtual StatusCode Gaudi::MultiFileCatalog::initialize | ( |  | ) | `[virtual]`

Finalize service object.

Reimplemented from Service.

virtual StatusCode Gaudi::MultiFileCatalog::finalize | ( |  | ) | `[virtual]`

Finalize service object.

Reimplemented from Service.

virtual std::string Gaudi::MultiFileCatalog::createFID | ( |  | ) | const`[virtual]`

Create file identifier using UUID mechanism.

Implements Gaudi::IFileCatalog.

virtual CSTR Gaudi::MultiFileCatalog::connectInfo | ( |  | ) | const`[virtual]`

Access to connect string.

Implements Gaudi::IFileCatalog.

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().

    00076     {  _exec(&IFileCatalog::init); m_started=true;                           }

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]`

Check if the catalog is read-only.

Implements Gaudi::IFileCatalog.

virtual bool Gaudi::MultiFileCatalog::dirty | ( |  | ) | const`[virtual]`

Check if the catalog should be updated.

Implements Gaudi::IFileCatalog.

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().

    00087     { return !lookupPFN(pfn).empty();                                         }

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().

    00093     { return !lookupLFN(lfn).empty();                                         }

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);                          }

virtual void Gaudi::MultiFileCatalog::getPFN | ( | CSTR | fid,
|  | Files & | files |
| ) |  |  | const`[inline, virtual]`

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);                             }

virtual void Gaudi::MultiFileCatalog::getLFN | ( | CSTR | fid,
|  | Files & | files |
| ) |  |  | const`[inline, virtual]`

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.

virtual void Gaudi::MultiFileCatalog::registerLFN | ( | CSTR | fid,
|  | CSTR | lfn |
| ) |  |  | const`[virtual]`

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);                                  }

virtual void Gaudi::MultiFileCatalog::dropMetaData | ( | CSTR | fid,
|  | CSTR | attr |
| ) |  |  | const`[inline, virtual]`

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]`

Add new catalog identified by reference to the existing ones.

Implements Gaudi::IFileCatalogMgr.

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]`

Remove catalog identified by reference from the existing ones.

Implements Gaudi::IFileCatalogMgr.

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]`

Define the writable catalog identified by reference.

Implements Gaudi::IFileCatalogMgr.

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]`

Find catalog containing a given file identifier.

Referenced by existsFID(), and writeCatalog().

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]`

## Member Data Documentation

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]`

Property : Container with catalog names.

Definition at line 170 of file MultiFileCatalog.h.

bool Gaudi::MultiFileCatalog::m_started`[private]`

Flag to indicate if catalog is started.

Definition at line 172 of file MultiFileCatalog.h.

Referenced by init().

The documentation for this class was generated from the following file:

- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v20r2/GaudiUtils/v2r0/src/component/MultiFileCatalog.h