QBaseLoadCurve.hh 00001
00002 #ifndef _QBASE_LOAD_CURVE_HH_
00003 #define _QBASE_LOAD_CURVE_HH_
00004
00005 #include "QCuore.hh"
00006
00007 #include <vector>
00008 #include <set>
00009 #include <string>
00010 #include <ostream>
00011
00012 #include "QOnlineMessenger.hh "
00013
00014 namespace Cuore {class QEvent ;}
00015
00016 class QEleChannelConfig ;
00017 class QLCBaseMeasurement ;
00018
00028 class QBaseLoadCurve: public QOnlineMessenger
00029 {
00030 public :
00036 QBaseLoadCurve(unsigned int lg, const std::string& name);
00037
00039 virtual ~QBaseLoadCurve();
00040
00047 bool AddMeasurement(const Cuore::QEvent* const ev);
00048
00050 unsigned int GetLg() const { return fLg; }
00051
00053 virtual void Dump(std::ostream& file) const = 0;
00054
00059 virtual void ProcessCurve();
00060
00065 const QEleChannelConfig * GetOutputConfig() const
00066 { return fOutputConfig; }
00067
00072 bool GetIsActive() const { return fIsActive; }
00073
00074
00075 bool GetHeaterIsWorking() const { return fHasHeater; }
00076
00077 protected :
00078
00094 virtual QLCBaseMeasurement *
00095 FillMeasurement(const Cuore::QEvent* ev,
00096 const QEleChannelConfig * config) const = 0;
00097
00098
00099 virtual bool ValidateChild(const QLCBaseMeasurement * meas) const
00100 { return true ; }
00101
00109 virtual void ClassifyMeasurement(const QLCBaseMeasurement * meas) {}
00110
00119 unsigned int
00120 FindMeasurements(const QEleChannelConfig * refMeas,
00121 std::set<const QLCBaseMeasurement*>& matching) const ;
00122
00127 virtual void ProcessCurveChild() = 0;
00128
00135 virtual void SetOutputConfig() = 0;
00136
00145 virtual void SetIsActive() {}
00146
00155 virtual void SetHeaterIsWorking() {}
00156
00158 QEleChannelConfig *fOutputConfig;
00159
00165 bool fIsActive;
00166
00171 bool fHasHeater;
00172
00173 private :
00174
00180 bool ValidateMeasurement(const QLCBaseMeasurement * meas) const ;
00181
00183 const unsigned int fLg;
00184
00186 std::vector<QLCBaseMeasurement*> fMeasurements;
00187 };
00188 #endif // _QBASE_LOAD_CURVE_HH_
In questo sito non sono utilizzati cookie per la profilazione degli utenti. Utilizza cookie di sessione, necessari per il corretto funzionamento dello stesso e per gestire l'autenticazione ai servizi on-line, alla intranet e alle aree riservate...
leggi tutto Più info OK