![]() |
|
|
Generated: 8 Jan 2009 |
#include <MultiFileCatalog.h>


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 () |
| IService implementation. | |
| virtual StatusCode | finalize () |
| Finalize service object. | |
| virtual std::string | createFID () const |
| Catalog interface. | |
| 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 |
| Catalog management. | |
| 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 | propHandler (Property &) |
| simple property handle to allow interactive modification of list of the file catalogs | |
| 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. | |
| CatalogNames | m_oldNames |
| BACKUP:: Container with catalog names. | |
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.
| MultiFileCatalog::MultiFileCatalog | ( | const std::string & | nam, | |
| ISvcLocator * | svc | |||
| ) |
Create a catalog file, initialization of XercesC.
Definition at line 27 of file MultiFileCatalog.cpp.
00028 : Service(nam, svc), m_started(false), m_oldNames() 00029 { 00030 declareProperty("Catalogs", m_catalogNames, "The list of Catalogs") 00031 -> declareUpdateHandler ( &Gaudi::MultiFileCatalog::propHandler, this ) ; 00032 m_catalogNames.push_back("xmlcatalog_file:test_catalog.xml"); 00033 }
| MultiFileCatalog::~MultiFileCatalog | ( | ) | [virtual] |
| void Gaudi::MultiFileCatalog::_exec | ( | T | pmf | ) | const [inline, protected] |
Definition at line 30 of file MultiFileCatalog.h.
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.
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.
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.
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 }
| StatusCode MultiFileCatalog::queryInterface | ( | const InterfaceID & | id, | |
| void ** | ppv | |||
| ) | [virtual] |
IInterface implementation.
Reimplemented from Service.
Definition at line 67 of file MultiFileCatalog.cpp.
00067 { 00068 if ( riid.versionMatch(IFileCatalog::interfaceID()) ) 00069 *ppv = (IFileCatalog*)this; 00070 else if ( riid.versionMatch(IFileCatalogMgr::interfaceID()) ) 00071 *ppv = (IFileCatalogMgr*)this; 00072 else 00073 return Service::queryInterface(riid,ppv); 00074 *ppv = (IFileCatalog*)this; 00075 addRef(); 00076 return StatusCode::SUCCESS; 00077 }
| StatusCode MultiFileCatalog::initialize | ( | ) | [virtual] |
IService implementation.
Finalize service object
Reimplemented from Service.
Definition at line 38 of file MultiFileCatalog.cpp.
00038 { 00039 CatalogNames::const_iterator i; 00040 std::string current = ""; 00041 if ( !Service::initialize().isSuccess() ) { 00042 printError("Failed to initialize service base class.",false); 00043 return StatusCode::SUCCESS; 00044 } 00045 try { 00046 for(i=m_catalogNames.begin(); i != m_catalogNames.end(); ++i) { 00047 current = *i; 00048 addCatalog(*i); 00049 } 00050 init(); 00051 return StatusCode::SUCCESS; 00052 } 00053 catch(const std::exception& /* e */) { 00054 printError("Cannot add file catalog:"+current,false); 00055 } 00056 return StatusCode::FAILURE; 00057 }
| StatusCode MultiFileCatalog::finalize | ( | void | ) | [virtual] |
Finalize service object.
Reimplemented from Service.
Definition at line 59 of file MultiFileCatalog.cpp.
00059 { 00060 commit(); 00061 _exec(&IFileCatalog::release); 00062 m_catalogs.clear(); 00063 m_started = false; 00064 return Service::finalize(); 00065 }
| std::string MultiFileCatalog::createFID | ( | ) | const [virtual] |
Catalog interface.
Create file identifier using UUID mechanism.
Create file identifier using UUID mechanism
Implements Gaudi::IFileCatalog.
Definition at line 79 of file MultiFileCatalog.cpp.
00079 { 00080 return createGuidAsString(); 00081 }
| MultiFileCatalog::CSTR MultiFileCatalog::connectInfo | ( | ) | const [virtual] |
Access to connect string.
Implements Gaudi::IFileCatalog.
Definition at line 83 of file MultiFileCatalog.cpp.
| 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.
| virtual void Gaudi::MultiFileCatalog::commit | ( | ) | [inline, virtual] |
Save DOM catalog to file.
Implements Gaudi::IFileCatalog.
Definition at line 78 of file MultiFileCatalog.h.
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.
00080 { _exec(&IFileCatalog::rollback); }
| bool MultiFileCatalog::readOnly | ( | ) | const [virtual] |
Check if the catalog is read-only.
Implements Gaudi::IFileCatalog.
Definition at line 250 of file MultiFileCatalog.cpp.
00251 { return _findX0Bool(m_catalogs,&IFileCatalog::readOnly,false); }
| bool MultiFileCatalog::dirty | ( | ) | const [virtual] |
Check if the catalog should be updated.
Implements Gaudi::IFileCatalog.
Definition at line 253 of file MultiFileCatalog.cpp.
00254 { return _findX0Bool(m_catalogs,&IFileCatalog::dirty,true); }
| 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.
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.
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.
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.
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.
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.
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.
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.
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.
00112 { writeCatalog(fid)->deleteFID(fid); }
Create a FileID and DOM Node of the PFN with all the attributes.
Definition at line 238 of file MultiFileCatalog.cpp.
00238 { 00239 IFileCatalog* c = getCatalog(fid,false,true,false); 00240 if ( !c ) c = getCatalog("",true,true,true); 00241 c->registerPFN(fid, pfn, ftype); 00242 }
Create a FileID and DOM Node of the LFN with all the attributes.
Definition at line 244 of file MultiFileCatalog.cpp.
00244 { 00245 IFileCatalog* c = getCatalog(fid,false,true,false); 00246 if ( !c ) c = getCatalog("",true,true,true); 00247 c->registerLFN(fid, lfn); 00248 }
| virtual void Gaudi::MultiFileCatalog::registerFID | ( | CSTR | fid | ) | const [inline, virtual] |
Create a FileID and DOM Node.
Definition at line 118 of file MultiFileCatalog.h.
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.
00122 { _collect(fid,attr,&IFileCatalog::getMetaData); }
Access metadata item.
Definition at line 231 of file MultiFileCatalog.cpp.
00231 { 00232 std::string result; 00233 for(Catalogs::const_iterator i=m_catalogs.begin(); i != m_catalogs.end(); ++i) 00234 if ( !(result= (*i)->getMetaDataItem(fid,attr)).empty() ) break; 00235 return result; 00236 }
| 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.
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.
00130 { writeCatalog(fid)->dropMetaData(fid); }
Drop specified metadata item.
Definition at line 132 of file MultiFileCatalog.h.
00133 { writeCatalog(fid)->dropMetaData(fid,attr); }
| IFileCatalog * MultiFileCatalog::findCatalog | ( | CSTR | connect, | |
| bool | must_be_writable | |||
| ) | const [virtual] |
Catalog management.
Find catalog by connect string
Definition at line 114 of file MultiFileCatalog.cpp.
00114 { 00115 for(Catalogs::const_iterator i=m_catalogs.begin(); i != m_catalogs.end(); ++i) { 00116 if ( connect == (*i)->connectInfo() ) 00117 return (must_be_writable && (*i)->readOnly()) ? 0 : *i; 00118 } 00119 return 0; 00120 }
| void MultiFileCatalog::addCatalog | ( | CSTR | connect | ) | [virtual] |
Add new catalog identified by name to the existing ones.
Catalog is already present ... silently ignore request
Definition at line 141 of file MultiFileCatalog.cpp.
00141 { 00142 if ( !con.empty() ) { 00143 if ( 0 == findCatalog(con,false) ) { 00144 static string xml_typ = "Gaudi::XMLFileCatalog"; 00145 string::size_type id0 = con.find("_"); 00146 string typ = con.substr(0,id0); 00147 string url = con.substr(id0+1); 00148 IInterface* cat = 0; 00149 if ( strncasecmp("xml",typ.c_str(),3) == 0 ) { 00150 cat = PluginService::Create<IInterface*>(xml_typ,url,msgSvc()); 00151 } 00152 else { 00153 cat = PluginService::Create<IInterface*>(typ,url,serviceLocator()); 00154 if ( !cat ) { 00155 cat = PluginService::Create<IInterface*>(typ,url,msgSvc()); 00156 } 00157 } 00158 if ( cat ) { 00159 IFileCatalog* fileCat = 0; 00160 if ( cat->queryInterface(IFileCatalog::interfaceID(),pp_cast<void>(&fileCat)).isSuccess() ) { 00161 addCatalog(fileCat); 00162 cat->release(); 00163 return; 00164 } 00165 } 00166 printError("Failed to create catalog connection:"+con,true); 00167 } 00169 return; 00170 } 00171 printError("Got invalid (empty) catalog connection string.",true); 00172 }
| void MultiFileCatalog::addCatalog | ( | IFileCatalog * | cat | ) | [virtual] |
Add new catalog identified by reference to the existing ones.
Implements Gaudi::IFileCatalogMgr.
Definition at line 174 of file MultiFileCatalog.cpp.
00174 { 00175 if ( cat ) { 00176 cat->addRef(); 00177 m_catalogs.push_back(cat); 00178 return; 00179 } 00180 printError("Got invalid catalog to be added to multi catalog.",true); 00181 }
| void MultiFileCatalog::removeCatalog | ( | CSTR | connect | ) | [virtual] |
Remove catalog identified by name from the existing ones.
Definition at line 183 of file MultiFileCatalog.cpp.
00183 { 00184 if ( con.empty() || con == "*" ) { 00185 _exec(&IFileCatalog::release); 00186 m_catalogs.clear(); 00187 return; 00188 } 00189 removeCatalog(findCatalog(con,false)); 00190 }
| void MultiFileCatalog::removeCatalog | ( | const IFileCatalog * | cat | ) | [virtual] |
Remove catalog identified by reference from the existing ones.
Implements Gaudi::IFileCatalogMgr.
Definition at line 192 of file MultiFileCatalog.cpp.
00192 { 00193 if ( cat ) { 00194 Catalogs::iterator i=find(m_catalogs.begin(),m_catalogs.end(),cat); 00195 if ( i != m_catalogs.end() ) { 00196 (*i)->release(); 00197 m_catalogs.erase(i); 00198 return; 00199 } 00200 printError("Unknown file catalog -- cannot be removed.",true); 00201 } 00202 printError("Invalid file catalog.",true); 00203 }
| virtual Catalogs& Gaudi::MultiFileCatalog::catalogs | ( | ) | [inline, virtual] |
Access catalog container.
Implements Gaudi::IFileCatalogMgr.
Definition at line 147 of file MultiFileCatalog.h.
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.
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.
00152 { return getCatalog(fid,true,true,false); }
| void MultiFileCatalog::setWriteCatalog | ( | IFileCatalog * | cat | ) | [virtual] |
Define the writable catalog identified by reference.
Implements Gaudi::IFileCatalogMgr.
Definition at line 205 of file MultiFileCatalog.cpp.
00205 { 00206 if ( cat ) { 00207 if ( !cat->readOnly() ) { 00208 Catalogs::iterator i=find(m_catalogs.begin(),m_catalogs.end(),cat); 00209 if ( i != m_catalogs.end() ) { 00210 m_catalogs.erase(i); 00211 m_catalogs.insert(m_catalogs.begin(),cat); 00212 return; 00213 } 00214 printError("The catalog "+cat->connectInfo()+" is not known.",true); 00215 } 00216 printError("The catalog "+cat->connectInfo()+" is not writable.",true); 00217 } 00218 printError("Invalid file catalog.",true); 00219 }
| void MultiFileCatalog::setWriteCatalog | ( | CSTR | connect | ) | [virtual] |
Define the writable catalog identified by name.
Definition at line 221 of file MultiFileCatalog.cpp.
00221 { 00222 Catalogs::iterator i = i_findCatalog(connect,true); 00223 if ( i == m_catalogs.end() ) { 00224 addCatalog(connect); 00225 setWriteCatalog(findCatalog(connect,true)); 00226 return; 00227 } 00228 setWriteCatalog(*i); 00229 }
| IFileCatalog * MultiFileCatalog::getCatalog | ( | CSTR | fid, | |
| bool | throw_if_not, | |||
| bool | writable = true, |
|||
| bool | prt = true | |||
| ) | const [private] |
Find catalog containing a given file identifier.
Definition at line 88 of file MultiFileCatalog.cpp.
00092 { 00093 for(Catalogs::const_iterator i=m_catalogs.begin(); i != m_catalogs.end(); ++i) { 00094 IFileCatalog* c = *i; 00095 if ( c ) { 00096 if ( writable && c->readOnly() ) 00097 continue; 00098 else if ( fid.empty() ) 00099 return c; 00100 else if ( !fid.empty() && c->existsFID(fid) ) 00101 return c; 00102 } 00103 } 00104 if ( prt ) { 00105 printError("No writable file catalog found which contains FID:"+fid,throw_if_not); 00106 } 00107 else { 00108 MsgStream log(msgSvc(),name()); 00109 log << MSG::DEBUG << "No writable file catalog found which contains FID:" << fid << endmsg; 00110 } 00111 return 0; 00112 }
| MultiFileCatalog::Catalogs::iterator MultiFileCatalog::i_findCatalog | ( | CSTR | connect, | |
| bool | must_be_writable | |||
| ) | [private] |
Find catalog by connect string.
Definition at line 123 of file MultiFileCatalog.cpp.
00123 { 00124 for(Catalogs::iterator i=m_catalogs.begin(); i != m_catalogs.end(); ++i) { 00125 if ( connect == (*i)->connectInfo() ) { 00126 return (must_be_writable && (*i)->readOnly()) ? m_catalogs.end() : i; 00127 } 00128 } 00129 return m_catalogs.end(); 00130 }
| void MultiFileCatalog::propHandler | ( | Property & | ) | [private] |
simple property handle to allow interactive modification of list of the file catalogs
Definition at line 256 of file MultiFileCatalog.cpp.
00257 { 00258 // not yet initialized 00259 if ( !m_started ) { m_oldNames = m_catalogNames; return; } // RETURN 00260 // no real change - no action 00261 if ( m_catalogNames == m_oldNames ) { return; } 00262 m_oldNames = m_catalogNames ; 00263 // remove ALL catalogs 00264 removeCatalog("") ; 00265 // add new catalogs 00266 for ( CatalogNames::const_iterator inew = m_catalogNames.begin() ; 00267 m_catalogNames.end() != inew ; ++inew ) { addCatalog ( *inew ) ; } 00268 // start 00269 init() ; 00270 // 00271 MsgStream log ( msgSvc() , name() ) ; 00272 log << MSG::DEBUG 00273 << "New catalogs to be used: " 00274 << Gaudi::Utils::toString ( m_catalogNames ) << endreq ; 00275 }
| void MultiFileCatalog::printError | ( | CSTR | msg, | |
| bool | throw_exc = true | |||
| ) | const [private] |
Definition at line 132 of file MultiFileCatalog.cpp.
00132 { 00133 MsgStream log(msgSvc(),name()); 00134 if ( rethrow ) { 00135 log << MSG::FATAL << msg << endmsg; 00136 throw runtime_error("Catalog> "+msg); 00137 } 00138 log << MSG::ERROR << msg << endmsg; 00139 }
| std::string Gaudi::MultiFileCatalog::lookupFID | ( | CSTR | lfn | ) | const [private] |
Catalogs Gaudi::MultiFileCatalog::m_catalogs [private] |
CatalogNames Gaudi::MultiFileCatalog::m_catalogNames [private] |
bool Gaudi::MultiFileCatalog::m_started [private] |
CatalogNames Gaudi::MultiFileCatalog::m_oldNames [private] |