00001
00002
00003
00004
00005
00006
00007
00008 #ifndef GAUDI_RNDMGENSVC_RNDMENGINE_H
00009 #define GAUDI_RNDMGENSVC_RNDMENGINE_H 1
00010
00011
00012 #include <vector>
00013
00014
00015 #include "GaudiKernel/Service.h"
00016 #include "GaudiKernel/ISerialize.h"
00017 #include "GaudiKernel/IRndmEngine.h"
00018 #include "GaudiKernel/IIncidentListener.h"
00019
00020
00021 class IIncidentSvc;
00022
00046 class RndmEngine: public Service,
00047 virtual public IRndmEngine,
00048 virtual public ISerialize,
00049 virtual public IIncidentListener
00050 {
00051 protected:
00053 IIncidentSvc* m_pIncidentSvc;
00054
00056 RndmEngine(const std::string& name, ISvcLocator* loc);
00058 virtual ~RndmEngine();
00059 public:
00061 StatusCode queryInterface(const IID& riid, void** ppvInterface);
00063 virtual StatusCode initialize();
00065 virtual StatusCode finalize();
00067 virtual double rndm() const;
00074 virtual StatusCode rndmArray( std::vector<double>& array, long howmany, long start = 0) const;
00079 virtual StreamBuffer& serialize(StreamBuffer& str);
00084 virtual StreamBuffer& serialize(StreamBuffer& str) const;
00086 virtual void handle(const Incident& inc);
00087 };
00088
00089 #endif // GAUDI_RNDMGENSVC_RNDMENGINE_H