00001
00002 #ifndef GaudiKernel_IFileAccess_H
00003 #define GaudiKernel_IFileAccess_H
00004
00005
00006 #include "GaudiKernel/IInterface.h"
00007 #include <string>
00008 #include <istream>
00009 #include <memory>
00010 #include <vector>
00011
00012
00013
00014 static const InterfaceID IID_IFileAccess("IFileAccess", 1 , 0);
00015
00023 class IFileAccess : virtual public IInterface {
00024 public:
00025
00027 static const InterfaceID& interfaceID() { return IID_IFileAccess; }
00028
00029 virtual ~IFileAccess();
00030
00034 virtual std::auto_ptr<std::istream> open(const std::string &url) = 0;
00035
00037 virtual const std::vector<std::string> &protocols() const = 0;
00038
00039 };
00040
00041 #endif // GaudiKernel_IFileAccess_H