All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
IFileCatalog.h
Go to the documentation of this file.
1 #ifndef GAUDIFILECATALOG_IFILECATALOG_H
2 #define GAUDIFILECATALOG_IFILECATALOG_H
3 
5 #include <Gaudi/PluginService.h>
6 #include <string>
7 #include <vector>
8 #include <utility>
9 
10 /*
11  * Gaudi namespace declaration
12  */
13 namespace Gaudi {
14 
24  class GAUDI_API IFileCatalog : virtual public IInterface {
25 
26  public:
29 
31  const std::string&,
33 
35  typedef std::pair<std::string,std::string> NamedItem;
36  typedef std::vector<NamedItem> Attributes;
37  typedef std::vector<NamedItem> Files;
38  typedef std::vector<std::string> Strings;
39 
41  virtual std::string createFID() const = 0;
44  virtual const std::string& connectInfo() const = 0;
46  virtual void init() = 0;
48  virtual void commit() = 0;
50  virtual void rollback() = 0;
52  virtual bool readOnly() const = 0;
54  virtual bool dirty() const = 0;
56  virtual void getPFN(const std::string& fid, Files& files) const = 0;
58  virtual void getLFN(const std::string& fid, Files& files) const = 0;
60  virtual void getFID(Strings& fids) const = 0;
62  virtual bool existsPFN(const std::string& pfn) const = 0;
64  virtual std::string lookupPFN(const std::string& lfn) const = 0;
66  virtual bool existsLFN(const std::string& lfn) const = 0;
68  virtual std::string lookupLFN(const std::string& lfn) const = 0;
70  virtual bool existsFID(const std::string& fid) const = 0;
72  virtual void deleteFID(const std::string& FileID) const = 0;
74  virtual void registerPFN(const std::string& fid, const std::string& pfn, const std::string& ftype) const = 0;
76  virtual void registerLFN(const std::string& fid, const std::string& lfn) const = 0;
78  virtual void registerFID(const std::string& fid) const = 0;
80  virtual void getMetaData(const std::string& fid, Attributes& attr) const = 0;
82  virtual std::string getMetaDataItem(const std::string& fid, const std::string& name) const = 0;
84  virtual void setMetaData(const std::string& fid, const std::string& name, const std::string& value) const = 0;
86  virtual void dropMetaData(const std::string& fid) const = 0;
88  virtual void dropMetaData(const std::string& fid, const std::string& attr) const = 0;
89  };
90 } /* End namespace Gaudi */
91 #endif /* GAUDIFILECATALOG_IFILECATALOG_H */
std::vector< NamedItem > Files
Definition: IFileCatalog.h:37
std::vector< std::string > Strings
Definition: IFileCatalog.h:38
std::pair< std::string, std::string > NamedItem
Public type definitions.
Definition: IFileCatalog.h:35
std::vector< NamedItem > Attributes
Definition: IFileCatalog.h:36
Definition of the basic interface.
Definition: IInterface.h:160
#define DeclareInterfaceID(name, major, minor)
Macro to declare the interface ID when using the new mechanism of extending and implementing interfac...
Definition: IInterface.h:23
The IMessage is the interface implemented by the message service.
Definition: IMessageSvc.h:57
File catalog interface.
Definition: IFileCatalog.h:24
Class wrapping the signature for a factory with 2 arguments.
Definition: PluginService.h:86
Gaudi::PluginService::Factory2< IInterface *, const std::string &, IMessageSvc * > Factory
Definition: IFileCatalog.h:32
This is a number of static methods for bootstrapping the Gaudi framework.
Definition: Bootstrap.h:15
#define GAUDI_API
Definition: Kernel.h:108