00001
00002 #ifndef CalibDataSvc_h
00003 #define CalibDataSvc_h
00004
00005
00006 #include "GaudiKernel/DataSvc.h"
00007 #include "GaudiKernel/IDetDataSvc.h"
00008 #include "GaudiKernel/IIncidentListener.h"
00009 #include "CalibData/CalibBase1.h"
00010 #include "CalibDataSvc/IInstrumentName.h"
00011
00012 using namespace CalibData;
00013
00014
00015 class StatusCode;
00016 class IDataProviderSvc;
00017
00032 class IAddressCreator;
00033 class MsgStream;
00034
00035 template <class TYPE> class SvcFactory;
00036 class CalibDataSvc : public DataSvc,
00037
00038 virtual public IIncidentListener
00039
00040 {
00041
00042 friend class SvcFactory<CalibDataSvc>;
00043
00044 public:
00045
00046
00047
00048 virtual StatusCode initialize();
00049
00050 virtual StatusCode finalize();
00051
00053 virtual StatusCode clearStore();
00054
00056 virtual StatusCode updateObject( DataObject* toUpdate );
00057
00060 virtual StatusCode loadObject(IConversionSvc* pLoader, IRegistry* pRegistry);
00061
00062 virtual StatusCode retrieveObject(const std::string& fullPath,DataObject*& pObject);
00063
00064 virtual StatusCode registerObject(const std::string& parentPath,
00065 const std::string& objPath,
00066 DataObject* pObject);
00067
00068
00069
00070 public:
00071 CalibDataSvc(const std::string& name, ISvcLocator* svc);
00072 virtual ~CalibDataSvc();
00073
00074 public:
00075
00076
00077
00079 virtual StatusCode queryInterface( const InterfaceID& riid,
00080 void** ppvInterface );
00081
00082
00083 public:
00084
00085
00086
00087 public:
00088
00089
00090
00092 virtual void handle( const Incident& );
00093
00095 private:
00096 StatusCode updateRun(int &runfrm,int &runto,std::string& fullPath);
00097
00099
00100
00101
00102 int m_calibType[12];
00103
00105 std::string m_calibRootName;
00106
00108 StringArrayProperty m_calibList;
00109
00110
00111 std::vector<std::string> m_flavorList;
00112
00113
00115
00116
00118
00119
00120 IDataProviderSvc* m_eventSvc;
00126
00127
00128
00130 StatusCode makeFlavorNodes(IAddressCreator* calibCreator,
00131 MsgStream* log );
00132
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00152
00153
00155
00156
00157 };
00158
00159 #endif // CalibDataSvc_h
00160
00161
00162