00001
00002
00003
00004
00005 #ifndef _H_FluxSvc_
00006 #define _H_FluxSvc_
00007
00008
00009 #include "GaudiKernel/Service.h"
00010 #include "FluxSvc/IFluxSvc.h"
00011 #include <list>
00012
00013
00014
00015 template <class TYPE> class SvcFactory;
00016 class IFlux;
00017 class FluxMgr;
00018
00021 class FluxSvc : virtual public Service, virtual public IFluxSvc
00022 {
00023 public:
00024
00026 StatusCode source(std::string name, IFlux*&);
00027
00029 std::list<std::string> fluxNames()const;
00030
00032 virtual void addFactory(std::string name, const ISpectrumFactory* factory );
00033
00035 virtual HepRandomEngine* getEngine();
00036
00037
00038
00039
00040
00042 virtual StatusCode initialize ();
00043
00045 virtual StatusCode finalize ();
00046
00047
00049 virtual StatusCode queryInterface( const IID& riid, void** ppvUnknown );
00050
00051 protected:
00052
00054 FluxSvc ( const std::string& name, ISvcLocator* al );
00055
00057 virtual ~FluxSvc ();
00058
00059 private:
00061 friend class SvcFactory<FluxSvc>;
00062
00063 FluxMgr * m_fluxMgr;
00065
00066 std::vector<std::string> m_source_lib;
00068 std::string m_source_lib_default;
00069
00070 };
00071
00072
00073 #endif // _H_FluxSvc