00001 #ifndef BEAM_ENERGY_SVC_H 00002 #define BEAM_ENERGY_SVC_H 00003 00004 #include "GaudiKernel/Service.h" 00005 #include "GaudiKernel/IInterface.h" 00006 #include "GaudiKernel/Property.h" 00007 #include "GaudiKernel/IIncidentListener.h" 00008 #include "GaudiKernel/IDataProviderSvc.h" 00009 #include "BeamEnergySvc/IBeamEnergySvc.h" 00010 #include "DatabaseSvc/IDatabaseSvc.h" 00011 #include "GaudiKernel/Service.h" 00012 //#include <mysql/mysql.h> 00013 #include <vector> 00014 00015 template <class TYPE> class CnvFactory; 00016 00017 class BeamEnergySvc : public Service, virtual public IBeamEnergySvc, virtual public IIncidentListener 00018 { 00019 friend class CnvFactory<BeamEnergySvc>; 00020 00021 public : 00022 BeamEnergySvc(const std::string& name, ISvcLocator* svcLoc); 00023 virtual ~BeamEnergySvc(); 00024 00025 virtual StatusCode initialize(); 00026 virtual StatusCode finalize(); 00027 virtual StatusCode queryInterface(const InterfaceID& riid, void** ppvIF); 00028 00029 void handle(const Incident&); 00030 void getBeamEnergyInfo(); 00031 00032 bool isRunValid(); 00033 double getbeamE(); 00034 00035 private : 00036 std::string m_host; 00037 IDataProviderSvc* m_eventSvc; 00038 IDatabaseSvc* m_dbsvc; 00039 int m_run; 00040 bool m_isRunValid; 00041 double m_beamE; 00042 }; 00043 00044 #endif