Gaudi Framework, version v20r2

Generated: 18 Jul 2008

VFSSvc.h

Go to the documentation of this file.
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

Generated at Fri Jul 18 11:59:26 2008 for Gaudi Framework, version v20r2 by Doxygen version 1.5.1 written by Dimitri van Heesch, © 1997-2004