| # Gaudi Framework, version v20r2
Generated: 18 Jul 2008

- Main Page
- Namespaces
- Classes
- Files
- Directories
- Related Pages

- Search for |

- File List
- File Members

# 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