Gaudi Framework, version v23r6

Home   Generated: Wed Jan 30 2013
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Member Functions | Protected Types | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
Gaudi::MultiFileCatalog Class Reference

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

#include <MultiFileCatalog.h>

Inheritance diagram for Gaudi::MultiFileCatalog:
Inheritance graph
[legend]
Collaboration diagram for Gaudi::MultiFileCatalog:
Collaboration graph
[legend]

Public Member Functions

 MultiFileCatalog (const std::string &nam, ISvcLocator *svc)
 Create a catalog file, initialization of XercesC.
 
virtual ~MultiFileCatalog ()
 Destructor,.
 
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 IFileCatalogfindCatalog (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 Catalogscatalogs ()
 Access catalog container.
 
virtual const Catalogscatalogs () const
 Access catalog container (CONST)
 
virtual IFileCatalogwriteCatalog (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.
 
- Public Member Functions inherited from extends2< Service, IFileCatalog, IFileCatalogMgr >
 extends2 (A1 a1, A2 a2, A3 a3)
 Templated constructor with 3 arguments.
 
 extends2 (A1 a1, A2 a2)
 Templated constructor with 2 arguments.
 
 extends2 (A1 a1)
 Templated constructor with 1 argument.
 
 extends2 ()
 Default constructor.
 
virtual void * i_cast (const InterfaceID &tid) const
 Implementation of IInterface::i_cast.
 
virtual StatusCode queryInterface (const InterfaceID &ti, void **pp)
 Implementation of IInterface::queryInterface.
 
virtual std::vector< std::stringgetInterfaceNames () const
 Implementation of IInterface::getInterfaceNames.
 
virtual ~extends2 ()
 Virtual destructor.
 
- Public Member Functions inherited from Service
virtual unsigned long release ()
 Release Interface instance.
 
virtual const std::stringname () const
 Retrieve name of the service.
 
virtual StatusCode configure ()
 
virtual StatusCode start ()
 
virtual StatusCode stop ()
 
virtual StatusCode terminate ()
 
virtual Gaudi::StateMachine::State FSMState () const
 
virtual Gaudi::StateMachine::State targetFSMState () const
 
virtual StatusCode reinitialize ()
 
virtual StatusCode restart ()
 
virtual StatusCode sysInitialize ()
 Initialize Service.
 
virtual StatusCode sysStart ()
 Initialize Service.
 
virtual StatusCode sysStop ()
 Initialize Service.
 
virtual StatusCode sysFinalize ()
 Finalize Service.
 
virtual StatusCode sysReinitialize ()
 Re-initialize the Service.
 
virtual StatusCode sysRestart ()
 Re-initialize the Service.
 
virtual StatusCode setProperty (const Property &p)
 
virtual StatusCode setProperty (const std::string &s)
 
virtual StatusCode setProperty (const std::string &n, const std::string &v)
 
virtual StatusCode getProperty (Property *p) const
 
virtual const PropertygetProperty (const std::string &name) const
 
virtual StatusCode getProperty (const std::string &n, std::string &v) const
 
virtual const std::vector
< Property * > & 
getProperties () const
 
template<class TYPE >
StatusCode setProperty (const std::string &name, const TYPE &value)
 set the property form the value
 
 Service (const std::string &name, ISvcLocator *svcloc)
 Standard Constructor.
 
SmartIF< ISvcLocator > & serviceLocator () const
 Retrieve pointer to service locator.
 
StatusCode setProperties ()
 Method for setting declared properties to the values specified for the job.
 
template<class T >
StatusCode service (const std::string &name, const T *&psvc, bool createIf=true) const
 Access a service by name, creating it if it doesn't already exist.
 
template<class T >
StatusCode service (const std::string &name, T *&psvc, bool createIf=true) const
 
template<class T >
StatusCode service (const std::string &svcType, const std::string &svcName, T *&psvc) const
 Access a service by name and type, creating it if it doesn't already exist.
 
template<class T >
PropertydeclareProperty (const std::string &name, T &property, const std::string &doc="none") const
 Declare the named property.
 
PropertydeclareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") const
 Declare remote named properties.
 
SmartIF< IAuditorSvc > & auditorSvc () const
 The standard auditor service.May not be invoked before sysInitialize() has been invoked.
 
- Public Member Functions inherited from CommonMessaging< implements3< IService, IProperty, IStateful > >
 CommonMessaging (const A1 &a1, const A2 &a2, const A3 &a3)
 Templated constructor with 3 arguments.
 
 CommonMessaging (const A1 &a1, const A2 &a2)
 Templated constructor with 2 arguments.
 
 CommonMessaging (const A1 &a1)
 Templated constructor with 1 argument.
 
 CommonMessaging ()
 Default constructor.
 
virtual ~CommonMessaging ()
 Virtual destructor.
 
SmartIF< IMessageSvc > & msgSvc () const
 The standard message service.
 
MsgStreammsgStream () const
 Return an uninitialized MsgStream.
 
MsgStreammsgStream (const MSG::Level level) const
 Predefined configurable message stream for the efficient printouts.
 
MsgStreamalways () const
 shortcut for the method msgStream(MSG::ALWAYS)
 
MsgStreamfatal () const
 shortcut for the method msgStream(MSG::FATAL)
 
MsgStreamerr () const
 shortcut for the method msgStream(MSG::ERROR)
 
MsgStreamerror () const
 shortcut for the method msgStream(MSG::ERROR)
 
MsgStreamwarning () const
 shortcut for the method msgStream(MSG::WARNING)
 
MsgStreaminfo () const
 shortcut for the method msgStream(MSG::INFO)
 
MsgStreamdebug () const
 shortcut for the method msgStream(MSG::DEBUG)
 
MsgStreamverbose () const
 shortcut for the method msgStream(MSG::VERBOSE)
 
MsgStreammsg () const
 shortcut for the method msgStream(MSG::INFO)
 
MSG::Level msgLevel () const
 get the output level from the embedded MsgStream
 
bool msgLevel (MSG::Level lvl) const
 get the output level from the embedded MsgStream
 
- Public Member Functions inherited from extend_interfaces2< I1, I2 >
virtual ~extend_interfaces2 ()
 Virtual destructor.
 

Protected Types

typedef const std::stringCSTR
 
typedef std::vector
< IFileCatalog * > 
Catalogs
 
typedef std::vector< std::stringCatalogNames
 

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

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

Additional Inherited Members

- Public Types inherited from extends2< Service, IFileCatalog, IFileCatalogMgr >
typedef extends2 base_class
 Typedef to this class.
 
typedef extend_interfaces2
< IFileCatalog,
IFileCatalogMgr
extend_interfaces_base
 Typedef to the base of this class.
 
typedef
extend_interfaces_base::ext_iids 
interfaces
 MPL set of all the implemented interfaces.
 
- Protected Attributes inherited from Service
IntegerProperty m_outputLevel
 Service output level.
 
Gaudi::StateMachine::State m_state
 Service state.
 
Gaudi::StateMachine::State m_targetState
 Service state.
 

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.

Member Typedef Documentation

typedef std::vector<std::string> Gaudi::MultiFileCatalog::CatalogNames
protected

Definition at line 25 of file MultiFileCatalog.h.

typedef std::vector<IFileCatalog*> Gaudi::MultiFileCatalog::Catalogs
protected

Definition at line 24 of file MultiFileCatalog.h.

typedef const std::string& Gaudi::MultiFileCatalog::CSTR
protected

Definition at line 23 of file MultiFileCatalog.h.

Constructor & Destructor Documentation

MultiFileCatalog::MultiFileCatalog ( const std::string nam,
ISvcLocator svc 
)

Create a catalog file, initialization of XercesC.

Definition at line 27 of file MultiFileCatalog.cpp.

: base_class(nam, svc), m_started(false), m_oldNames()
{
declareProperty("Catalogs", m_catalogNames, "The list of Catalogs")
-> declareUpdateHandler ( &Gaudi::MultiFileCatalog::propHandler, this ) ;
m_catalogNames.push_back("xmlcatalog_file:test_catalog.xml");
}
MultiFileCatalog::~MultiFileCatalog ( )
virtual

Destructor,.

Definition at line 35 of file MultiFileCatalog.cpp.

{
}

Member Function Documentation

template<class A1 , class F >
void Gaudi::MultiFileCatalog::_collect ( A1  arg1,
pmf 
) const
inlineprotected

Definition at line 37 of file MultiFileCatalog.h.

{
A1 tmp;
for(Catalogs::const_iterator i=m_catalogs.begin();i!=m_catalogs.end();++i,tmp.clear()) {
((*i)->*pmf)(tmp);
arg1.insert(arg1.end(),tmp.begin(),tmp.end());
}
}
template<class A1 , class A2 , class F >
void Gaudi::MultiFileCatalog::_collect ( A1  arg1,
A2 &  arg2,
pmf 
) const
inlineprotected

Definition at line 44 of file MultiFileCatalog.h.

{
A2 tmp;
for(Catalogs::const_iterator i=m_catalogs.begin();i!=m_catalogs.end();++i,tmp.clear()) {
((*i)->*pmf)(arg1,tmp);
arg2.insert(arg2.end(),tmp.begin(),tmp.end());
}
}
template<class T >
void Gaudi::MultiFileCatalog::_exec ( pmf) const
inlineprotected

Definition at line 27 of file MultiFileCatalog.h.

{
for(Catalogs::const_iterator i=m_catalogs.begin(); i != m_catalogs.end(); ++i)
((*i)->*pmf)();
}
template<class A1 , class F >
std::string Gaudi::MultiFileCatalog::_find ( A1 &  arg1,
pmf 
) const
inlineprotected

Definition at line 31 of file MultiFileCatalog.h.

{
std::string result;
for(Catalogs::const_iterator i=m_catalogs.begin(); i != m_catalogs.end(); ++i)
if ( !(result= ((*i)->*pmf)(arg1)).empty() ) break;
return result;
}
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 130 of file MultiFileCatalog.cpp.

{
if ( !con.empty() ) {
if ( 0 == findCatalog(con,false) ) {
static string xml_typ = "Gaudi::XMLFileCatalog";
string::size_type id0 = con.find("_");
string typ = con.substr(0,id0);
string url = con.substr(id0+1);
IInterface* cat = 0;
if ( strncasecmp("xml",typ.c_str(),3) == 0 ) {
cat = PluginService::Create<IInterface*>(xml_typ,url,msgSvc().get());
}
else {
cat = PluginService::Create<IInterface*>(typ,url,serviceLocator().get());
if ( !cat ) {
cat = PluginService::Create<IInterface*>(typ,url,msgSvc().get());
}
}
if ( cat ) {
IFileCatalog* fileCat = 0;
if ( cat->queryInterface(IFileCatalog::interfaceID(),pp_cast<void>(&fileCat)).isSuccess() ) {
addCatalog(fileCat);
cat->release();
return;
}
}
printError("Failed to create catalog connection:"+con,true);
}
return;
}
printError("Got invalid (empty) catalog connection string.",true);
}
void MultiFileCatalog::addCatalog ( IFileCatalog cat)
virtual

Add new catalog identified by reference to the existing ones.

Definition at line 163 of file MultiFileCatalog.cpp.

{
if ( cat ) {
cat->addRef();
return;
}
printError("Got invalid catalog to be added to multi catalog.",true);
}
virtual Catalogs& Gaudi::MultiFileCatalog::catalogs ( )
inlinevirtual

Access catalog container.

Definition at line 141 of file MultiFileCatalog.h.

{ return m_catalogs; }
virtual const Catalogs& Gaudi::MultiFileCatalog::catalogs ( ) const
inlinevirtual

Access catalog container (CONST)

Definition at line 143 of file MultiFileCatalog.h.

{ return m_catalogs; }
virtual void Gaudi::MultiFileCatalog::commit ( )
inlinevirtual

Save DOM catalog to file.

Definition at line 72 of file MultiFileCatalog.h.

{ _exec(&IFileCatalog::commit); }
MultiFileCatalog::CSTR MultiFileCatalog::connectInfo ( ) const
virtual

Access to connect string.

Definition at line 72 of file MultiFileCatalog.cpp.

{
static string s("MultiCatalog");
return s;
}
std::string MultiFileCatalog::createFID ( ) const
virtual

Catalog interface.

Create file identifier using UUID mechanism.

Create file identifier using UUID mechanism

Definition at line 68 of file MultiFileCatalog.cpp.

{
}
virtual void Gaudi::MultiFileCatalog::deleteFID ( CSTR  fid) const
inlinevirtual

Delete FileID from the catalog.

Definition at line 105 of file MultiFileCatalog.h.

{ writeCatalog(fid)->deleteFID(fid); }
bool MultiFileCatalog::dirty ( ) const
virtual

Check if the catalog should be updated.

Definition at line 242 of file MultiFileCatalog.cpp.

{ return _findX0Bool(m_catalogs,&IFileCatalog::dirty,true); }
virtual void Gaudi::MultiFileCatalog::dropMetaData ( CSTR  fid) const
inlinevirtual

Drop all metadata of one FID.

Definition at line 123 of file MultiFileCatalog.h.

{ writeCatalog(fid)->dropMetaData(fid); }
virtual void Gaudi::MultiFileCatalog::dropMetaData ( CSTR  fid,
CSTR  attr 
) const
inlinevirtual

Drop specified metadata item.

Definition at line 126 of file MultiFileCatalog.h.

{ writeCatalog(fid)->dropMetaData(fid,attr); }
virtual bool Gaudi::MultiFileCatalog::existsFID ( CSTR  fid) const
inlinevirtual

Return the status of a FileID.

Definition at line 92 of file MultiFileCatalog.h.

{ return 0 != getCatalog(fid,false,false,false); }
virtual bool Gaudi::MultiFileCatalog::existsLFN ( CSTR  lfn) const
inlinevirtual

Return the status of a logical file name.

Definition at line 86 of file MultiFileCatalog.h.

{ return !lookupLFN(lfn).empty(); }
virtual bool Gaudi::MultiFileCatalog::existsPFN ( CSTR  pfn) const
inlinevirtual

Return the status of physical file name.

Definition at line 80 of file MultiFileCatalog.h.

{ return !lookupPFN(pfn).empty(); }
StatusCode MultiFileCatalog::finalize ( )
virtual

Finalize service object.

Reimplemented from Service.

Definition at line 59 of file MultiFileCatalog.cpp.

{
commit();
_exec(&IFileCatalog::release);
m_started = false;
}
IFileCatalog * MultiFileCatalog::findCatalog ( CSTR  connect,
bool  must_be_writable 
) const
virtual

Catalog management.

Find catalog by connect string

Definition at line 103 of file MultiFileCatalog.cpp.

{
for(Catalogs::const_iterator i=m_catalogs.begin(); i != m_catalogs.end(); ++i) {
if ( connect == (*i)->connectInfo() )
return (must_be_writable && (*i)->readOnly()) ? 0 : *i;
}
return 0;
}
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 77 of file MultiFileCatalog.cpp.

{
for(Catalogs::const_iterator i=m_catalogs.begin(); i != m_catalogs.end(); ++i) {
if ( c ) {
if ( writable && c->readOnly() )
continue;
else if ( fid.empty() )
return c;
else if ( !fid.empty() && c->existsFID(fid) )
return c;
}
}
if ( prt ) {
printError("No writable file catalog found which contains FID:"+fid,throw_if_not);
}
else {
log << MSG::DEBUG << "No writable file catalog found which contains FID:" << fid << endmsg;
}
return 0;
}
virtual void Gaudi::MultiFileCatalog::getFID ( Strings &  fids) const
inlinevirtual

Dump all file Identifiers.

Definition at line 102 of file MultiFileCatalog.h.

{ _collect(fids,&IFileCatalog::getFID); }
virtual void Gaudi::MultiFileCatalog::getLFN ( CSTR  fid,
Files &  files 
) const
inlinevirtual

Dump all logical file names of the catalog associate to the FileID.

Definition at line 98 of file MultiFileCatalog.h.

{ _collect(fid,files,&IFileCatalog::getLFN); }
virtual void Gaudi::MultiFileCatalog::getMetaData ( CSTR  fid,
Attributes &  attr 
) const
inlinevirtual

Dump all MetaData of the catalog for a given file ID.

Definition at line 115 of file MultiFileCatalog.h.

{ _collect(fid,attr,&IFileCatalog::getMetaData); }
string MultiFileCatalog::getMetaDataItem ( CSTR  fid,
CSTR  name 
) const
virtual

Access metadata item.

Definition at line 220 of file MultiFileCatalog.cpp.

{
std::string result;
for(Catalogs::const_iterator i=m_catalogs.begin(); i != m_catalogs.end(); ++i)
if ( !(result= (*i)->getMetaDataItem(fid,attr)).empty() ) break;
return result;
}
virtual void Gaudi::MultiFileCatalog::getPFN ( CSTR  fid,
Files &  files 
) const
inlinevirtual

Dump all physical file names of the catalog and their attributes associate to the FileID.

Definition at line 95 of file MultiFileCatalog.h.

{ _collect(fid,files,&IFileCatalog::getPFN); }
MultiFileCatalog::Catalogs::iterator MultiFileCatalog::i_findCatalog ( CSTR  connect,
bool  must_be_writable 
)
private

Find catalog by connect string.

Definition at line 112 of file MultiFileCatalog.cpp.

{
for(Catalogs::iterator i=m_catalogs.begin(); i != m_catalogs.end(); ++i) {
if ( connect == (*i)->connectInfo() ) {
return (must_be_writable && (*i)->readOnly()) ? m_catalogs.end() : i;
}
}
return m_catalogs.end();
}
virtual void Gaudi::MultiFileCatalog::init ( )
inlinevirtual

Parse the DOM tree of the XML catalog.

Definition at line 69 of file MultiFileCatalog.h.

{ _exec(&IFileCatalog::init); m_started=true; }
StatusCode MultiFileCatalog::initialize ( )
virtual

IService implementation.

Finalize service object

Reimplemented from Service.

Definition at line 38 of file MultiFileCatalog.cpp.

{
CatalogNames::const_iterator i;
std::string current = "";
if ( !Service::initialize().isSuccess() ) {
printError("Failed to initialize service base class.",false);
}
try {
for(i=m_catalogNames.begin(); i != m_catalogNames.end(); ++i) {
current = *i;
}
init();
}
catch(const std::exception& /* e */) {
printError("Cannot add file catalog:"+current,false);
}
}
std::string Gaudi::MultiFileCatalog::lookupFID ( CSTR  lfn) const
private
virtual std::string Gaudi::MultiFileCatalog::lookupLFN ( CSTR  lfn) const
inlinevirtual

Lookup file identifier by logical file name.

Definition at line 89 of file MultiFileCatalog.h.

{ return _find(lfn,&IFileCatalog::lookupLFN); }
virtual std::string Gaudi::MultiFileCatalog::lookupPFN ( CSTR  pfn) const
inlinevirtual

Lookup file identifier by physical file name.

Definition at line 83 of file MultiFileCatalog.h.

{ return _find(pfn,&IFileCatalog::lookupPFN); }
void MultiFileCatalog::printError ( CSTR  msg,
bool  throw_exc = true 
) const
private

Definition at line 121 of file MultiFileCatalog.cpp.

{
if ( rethrow ) {
throw runtime_error("Catalog> "+msg);
}
}
void MultiFileCatalog::propHandler ( Property )
private

simple property handle to allow interactive modification of list of the file catalogs

Definition at line 245 of file MultiFileCatalog.cpp.

{
// not yet initialized
if ( !m_started ) { m_oldNames = m_catalogNames; return; } // RETURN
// no real change - no action
if ( m_catalogNames == m_oldNames ) { return; }
// remove ALL catalogs
// add new catalogs
for ( CatalogNames::const_iterator inew = m_catalogNames.begin() ;
m_catalogNames.end() != inew ; ++inew ) { addCatalog ( *inew ) ; }
// start
init() ;
//
MsgStream log ( msgSvc() , name() ) ;
<< "New catalogs to be used: "
<< Gaudi::Utils::toString ( m_catalogNames ) << endmsg ;
}
bool MultiFileCatalog::readOnly ( ) const
virtual

Check if the catalog is read-only.

Definition at line 239 of file MultiFileCatalog.cpp.

{ return _findX0Bool(m_catalogs,&IFileCatalog::readOnly,false); }
virtual void Gaudi::MultiFileCatalog::registerFID ( CSTR  fid) const
inlinevirtual

Create a FileID and DOM Node.

Definition at line 112 of file MultiFileCatalog.h.

void MultiFileCatalog::registerLFN ( CSTR  fid,
CSTR  lfn 
) const
virtual

Create a FileID and DOM Node of the LFN with all the attributes.

Definition at line 233 of file MultiFileCatalog.cpp.

{
IFileCatalog* c = getCatalog(fid,false,true,false);
if ( !c ) c = getCatalog("",true,true,true);
c->registerLFN(fid, lfn);
}
void MultiFileCatalog::registerPFN ( CSTR  fid,
CSTR  pfn,
CSTR  ftype 
) const
virtual

Create a FileID and DOM Node of the PFN with all the attributes.

Definition at line 227 of file MultiFileCatalog.cpp.

{
IFileCatalog* c = getCatalog(fid,false,true,false);
if ( !c ) c = getCatalog("",true,true,true);
c->registerPFN(fid, pfn, ftype);
}
void MultiFileCatalog::removeCatalog ( CSTR  connect)
virtual

Remove catalog identified by name from the existing ones.

Definition at line 172 of file MultiFileCatalog.cpp.

{
if ( con.empty() || con == "*" ) {
_exec(&IFileCatalog::release);
return;
}
}
void MultiFileCatalog::removeCatalog ( const IFileCatalog cat)
virtual

Remove catalog identified by reference from the existing ones.

Definition at line 181 of file MultiFileCatalog.cpp.

{
if ( cat ) {
Catalogs::iterator i=find(m_catalogs.begin(),m_catalogs.end(),cat);
if ( i != m_catalogs.end() ) {
(*i)->release();
return;
}
printError("Unknown file catalog -- cannot be removed.",true);
}
printError("Invalid file catalog.",true);
}
virtual void Gaudi::MultiFileCatalog::rollback ( )
inlinevirtual

Save DOM catalog to file.

Definition at line 74 of file MultiFileCatalog.h.

{ _exec(&IFileCatalog::rollback); }
virtual void Gaudi::MultiFileCatalog::setMetaData ( CSTR  fid,
CSTR  attr,
CSTR  val 
) const
inlinevirtual

Insert/update metadata item.

Definition at line 120 of file MultiFileCatalog.h.

{ writeCatalog(fid)->setMetaData(fid,attr,val); }
void MultiFileCatalog::setWriteCatalog ( IFileCatalog cat)
virtual

Define the writable catalog identified by reference.

Definition at line 194 of file MultiFileCatalog.cpp.

{
if ( cat ) {
if ( !cat->readOnly() ) {
Catalogs::iterator i=find(m_catalogs.begin(),m_catalogs.end(),cat);
if ( i != m_catalogs.end() ) {
return;
}
printError("The catalog "+cat->connectInfo()+" is not known.",true);
}
printError("The catalog "+cat->connectInfo()+" is not writable.",true);
}
printError("Invalid file catalog.",true);
}
void MultiFileCatalog::setWriteCatalog ( CSTR  connect)
virtual

Define the writable catalog identified by name.

Definition at line 210 of file MultiFileCatalog.cpp.

{
Catalogs::iterator i = i_findCatalog(connect,true);
if ( i == m_catalogs.end() ) {
addCatalog(connect);
setWriteCatalog(findCatalog(connect,true));
return;
}
}
virtual IFileCatalog* Gaudi::MultiFileCatalog::writeCatalog ( CSTR  fid = "") const
inlinevirtual

Access to the (first) writable file catalog.

Definition at line 145 of file MultiFileCatalog.h.

{ return getCatalog(fid,true,true,false); }

Member Data Documentation

CatalogNames Gaudi::MultiFileCatalog::m_catalogNames
private

Property : Container with catalog names.

Definition at line 168 of file MultiFileCatalog.h.

Catalogs Gaudi::MultiFileCatalog::m_catalogs
private

Container with references to known catalogs.

Definition at line 166 of file MultiFileCatalog.h.

CatalogNames Gaudi::MultiFileCatalog::m_oldNames
private

BACKUP:: Container with catalog names.

Definition at line 172 of file MultiFileCatalog.h.

bool Gaudi::MultiFileCatalog::m_started
private

Flag to indicate if catalog is started.

Definition at line 170 of file MultiFileCatalog.h.


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

Generated at Wed Jan 30 2013 17:13:50 for Gaudi Framework, version v23r6 by Doxygen version 1.8.2 written by Dimitri van Heesch, © 1997-2004