/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Calibration/CalibSvc/CalibMySQLCnv/CalibMySQLCnv-00-01-09/CalibMySQLCnv/CalibMySQLCnvSvc.h

Go to the documentation of this file.
00001 //$Header: /bes/bes/BossCvs/Calibration/CalibSvc/CalibMySQLCnv/CalibMySQLCnv/CalibMySQLCnvSvc.h,v 1.18 2013/05/02 06:20:46 maqm Exp $
00002 #ifndef CalibMySQLCnvSvc_h
00003 #define CalibMySQLCnvSvc_h  1
00004 
00006 #include "CalibDataSvc/ICalibMetaCnvSvc.h"
00007 #include "CalibDataSvc/IInstrumentName.h"
00008 #include "GaudiKernel/ConversionSvc.h"
00009 #include "facilities/Timestamp.h"
00010 #include "GaudiKernel/IDetDataSvc.h"
00011 #include "DatabaseSvc/DatabaseSvc.h"
00012 #include "calibUtil/Metadata.h"
00013 
00014 class Metadata;
00016 // class ConditionsDBGate;
00017 template <class TYPE> class SvcFactory;
00018 class IDetDataSvc;
00019 class IOpaqueAddress;
00020 using namespace std;
00022 //--------------------------------------------------------------------------
00032 
00033 class CalibMySQLCnvSvc : public ConversionSvc, 
00034                          virtual public ICalibMetaCnvSvc
00035 {
00037   friend class SvcFactory<CalibMySQLCnvSvc>;
00038 
00039  protected:
00040 
00041   CalibMySQLCnvSvc(const std::string& name, ISvcLocator* svc );
00042   virtual ~CalibMySQLCnvSvc();
00043 
00044  public:
00045   
00046   // Reimplemented from IInterface
00047 
00048   virtual StatusCode queryInterface( const InterfaceID& riid, 
00049                                      void** ppvInterface );  
00050 
00051  public:
00052 
00053   // Overloaded from ConversionSvc
00054 
00055   virtual StatusCode initialize();
00056     virtual StatusCode finalize();
00057   
00059   virtual StatusCode createObj     ( IOpaqueAddress* pAddress, 
00060                                      DataObject*&    refpObject );
00061   
00063   virtual StatusCode fillObjRefs   ( IOpaqueAddress* pAddress, 
00064                                      DataObject* pObject );
00065   
00067   virtual StatusCode updateObj     ( IOpaqueAddress* pAddress, 
00068                                      DataObject* pObject );
00069 
00071   virtual StatusCode updateObjRefs ( IOpaqueAddress* pAddress, 
00072                                      DataObject* pObject );
00073 
00075   virtual StatusCode createRep     ( DataObject* pObject, 
00076                                      IOpaqueAddress*& refpAddress );
00077 
00079   virtual StatusCode fillRepRefs   ( IOpaqueAddress* pAddress,
00080                                      DataObject* pObject );
00081 
00083   virtual StatusCode updateRep     ( IOpaqueAddress* pAddress, 
00084                                      DataObject* pObject );
00085 
00087   virtual StatusCode updateRepRefs ( IOpaqueAddress* pAddress, 
00088                                      DataObject* pObject );
00089 
00091   virtual StatusCode createAddress ( long svc_type,
00092                                      const CLID& clid,
00093                                      const std::string* par, 
00094                                      const unsigned long* ip,
00095                                      IOpaqueAddress*& refpAddress );
00096   
00097  public:
00098   // Implementation of ICalibMetaCnvSvc.
00099   // Create/update calib DataObject not necessarily registered in the TDS.
00100   
00104    virtual StatusCode createCalib(DataObject*& refpObject,
00105                                   const std::string& fullpath,
00106                                   const CLID&        classID,
00107                                   IRegistry*         entry=0);
00108    
00112   // maqm change
00113  virtual StatusCode updateCalib(DataObject*        pObject,
00114                                 const std::string& fullpath,
00115                                 const CLID&        classID,
00116                                 IRegistry*         entry=0);
00118   virtual StatusCode decodeDescription(const std::string&   description,
00119                                        unsigned char&       type);
00120 
00121   virtual calibUtil::Metadata* getMeta();
00122 //maqm add
00123   //std::string getCalPar()
00124   //      { return m_calVer[0];}
00125 StatusCode  getSftParVer(std::string& SftVer,
00126              std::string& CalParVer, int &runfrm,
00127              int &runto,int RunNo, std::string BossRelease,
00128              std::string DataType);
00129  
00130         //public:
00131         //string flag="0";
00132 
00133  private:
00134 
00136   calibUtil::Metadata*    m_meta;
00137 
00139   std::string             m_host;  
00140 
00143   unsigned int m_calibLevelMask;
00144 
00146   bool m_useEventTime;
00147 
00150   facilities::Timestamp*  m_enterTimeStart;
00151   facilities::Timestamp*  m_enterTimeEnd;
00152 
00153   std::string m_enterTimeStartString;
00154   std::string m_enterTimeEndString;
00155   IInstrumentName*  m_instrSvc;
00156   IDataProviderSvc* m_eventSvc;
00157  
00158    std::string m_dbName;
00159     
00160    std::string sft_ver;
00161    std::string cal_ver;
00162    std::string m_calPar[12];
00163    std::string machine;
00164    std::string m_bossver[12];
00165    std::string m_bossRelease;
00166    std::string m_flag[12]; 
00168 
00170   IConversionSvc*      m_detPersSvc;
00171 
00173   IDetDataSvc*         m_detDataSvc;
00174 
00177   std::vector<std::string> m_qualityList;
00178   unsigned int             m_qualityMask;
00179   bool                     m_crash;   // If true, failure is fatal
00180   int  m_MdcAlign_No;
00181   std::string m_dbStatus;
00182 };
00183 #endif   
00184 

Generated on Tue Nov 29 22:57:50 2016 for BOSS_7.0.2 by  doxygen 1.4.7