![]() |
|
|
Generated: 18 Jul 2008 |
00001 // $Id: VFSSvc.h,v 1.2 2008/06/12 15:23:03 marcocle Exp $ 00002 #ifndef GaudiSvc_VFSSvc_H 00003 #define GaudiSvc_VFSSvc_H 1 00004 00005 // Include files 00006 #include "GaudiKernel/Service.h" 00007 #include "GaudiKernel/IFileAccess.h" 00008 #include "GaudiKernel/HashMap.h" 00009 00010 #include <list> 00011 00012 // Forward declarations 00013 template <class TYPE> class SvcFactory; 00014 class IToolSvc; 00015 class IAlgTool; 00016 00028 class VFSSvc: public Service, 00029 virtual public IFileAccess { 00030 00031 public: 00032 00037 virtual StatusCode queryInterface(const InterfaceID& riid, void** ppvUnknown); 00038 00040 virtual StatusCode initialize(); 00042 virtual StatusCode finalize(); 00043 00045 virtual std::auto_ptr<std::istream> open(const std::string &url); 00046 00048 virtual const std::vector<std::string> &protocols() const; 00049 00050 protected: 00052 VFSSvc(const std::string& name, ISvcLocator* svcloc); 00053 00054 virtual ~VFSSvc(); 00055 00056 private: 00057 00058 // Allow SvcFactory to instantiate the service. 00059 friend class SvcFactory<VFSSvc>; 00060 00062 std::vector<std::string> m_urlHandlersNames; 00063 00065 std::vector<std::string> m_protocols; 00066 00068 std::string m_fallBackProtocol; 00069 00071 GaudiUtils::HashMap<std::string,IFileAccess*> m_urlHandlers; 00072 00074 IToolSvc * m_toolSvc; 00075 00077 std::list<IAlgTool*> m_acquiredTools; 00078 00079 }; 00080 00081 #endif