00001 #ifndef GAUDIFILECATALOG_IFILECATALOGMGR_H
00002 #define GAUDIFILECATALOG_IFILECATALOGMGR_H
00003
00004
00005 #include "GaudiKernel/IInterface.h"
00006 #include <string>
00007 #include <vector>
00008
00009
00010 static const InterfaceID IID_IFileCatalogMgr("IFileCatalogMgr", 1, 0);
00011
00012
00013
00014
00015 namespace Gaudi {
00016
00017
00018 class IFileCatalog;
00019
00029 class IFileCatalogMgr : virtual public IInterface {
00030 public:
00032 typedef std::vector<IFileCatalog*> Catalogs;
00033 public:
00035 static const InterfaceID& interfaceID() { return IID_IFileCatalogMgr; }
00037
00038 virtual IFileCatalog* findCatalog(const std::string& connect, bool must_be_writable) const = 0;
00040 virtual void addCatalog(const std::string& connect) = 0;
00042 virtual void addCatalog(IFileCatalog* cat) = 0;
00044 virtual void removeCatalog(const std::string& connect) = 0;
00046 virtual void removeCatalog(const IFileCatalog* cat) = 0;
00048 virtual Catalogs& catalogs() = 0;
00050 virtual const Catalogs& catalogs() const = 0;
00052 virtual IFileCatalog* writeCatalog(const std::string& fid="") const = 0;
00054 virtual void setWriteCatalog(IFileCatalog* cat) = 0;
00056 virtual void setWriteCatalog(const std::string& connect) = 0;
00057 };
00058 }
00059 #endif