00001
00002
00003 #ifndef DBUSUBRUNSUMMARY_H
00004 #define DBUSUBRUNSUMMARY_H
00005
00007
00008
00009
00010
00011
00012
00013
00014
00016
00017 #include "DatabaseInterface/DbiTableRow.h"
00018 #include "LeakChecker/Lea.h"
00019
00020 #include "Validity/VldContext.h"
00021 #include <string>
00022 using std::string;
00023 #include <iosfwd>
00024
00025 class DbiValidityRec;
00026
00027 class DbuSubRunSummary;
00028 std::ostream& operator<<(std::ostream& os, const DbuSubRunSummary& drs);
00029
00030 class DbuSubRunSummary : public DbiTableRow
00031 {
00032
00033 public:
00034
00035
00036
00037 DbuSubRunSummary() :
00038 fDetector(Detector::kUnknown),
00039 fRun(0), fSubRun(0), fRunType(0),
00040 fStartTime((time_t)0,0), fEndTime((time_t)0,0),
00041 fTermCode(-1), fSnarlRec(-1), fMonitorRec(-1), fLightInjRec(-1),
00042 fNErr(0), fTimeFrames(0), fDroppedFrames(0), fConsistency(0),
00043 fComment("No Comment")
00044 { LEA_CTOR; }
00045
00046 DbuSubRunSummary(Detector::Detector_t det,
00047 Int_t run, Short_t subrun, Short_t runtype,
00048 VldTimeStamp starttime, VldTimeStamp endtime,
00049 Int_t termcode, Int_t snarlrec, Int_t monitorrec,
00050 Int_t nerr, Int_t timeframes, Int_t droppedframes,
00051 Int_t consistency, string comment) :
00052 fDetector(det), fRun(run), fSubRun(subrun), fRunType(runtype),
00053 fStartTime(starttime), fEndTime(endtime), fTermCode(termcode),
00054 fSnarlRec(snarlrec), fMonitorRec(monitorrec), fLightInjRec(0),
00055 fNErr(nerr), fTimeFrames(timeframes), fDroppedFrames(droppedframes),
00056 fConsistency(consistency), fComment(comment)
00057 { LEA_CTOR; }
00058
00059 virtual ~DbuSubRunSummary(){ LEA_DTOR; };
00060
00061
00062
00063 virtual Int_t GetAggregateNo() const
00064 #ifdef MULTIAGRREGATE
00065 { return CalcUniqueSeqNo(fDetector,fRun,fSubRun); }
00066 #else
00067 { return -1; }
00068 #endif
00069
00070 Bool_t IsSameSubRun(Detector::Detector_t det,
00071 Int_t run, Short_t subrun);
00072
00073
00074
00075 virtual DbiTableRow* CreateTableRow() const { return new DbuSubRunSummary; }
00076
00077
00078
00079 virtual void Fill(DbiResultSet& rs,
00080 const DbiValidityRec* vrec);
00081 virtual void Store(DbiOutRowStream& ors,
00082 const DbiValidityRec* vrec) const;
00083
00084 Int_t GetSeqNo() const
00085 { return CalcUniqueSeqNo(fDetector,fRun,fSubRun); }
00086
00087 static Int_t CalcUniqueSeqNo(Detector::Detector_t det,
00088 Int_t run, Short_t subrun);
00089
00090 static const char* GetTableDescr();
00091
00092
00093
00094 typedef enum EConsistencyBits {
00095 kRecCountUnverified = 0x00000001,
00096 kSawNoRunStart = 0x00000002,
00097 kSawNoRunComment = 0x00000004,
00098 kSawNoRunEnd = 0x00000008,
00099 kInProgress = 0x00000010
00100 } ConsistencyBits_t;
00101
00102 private:
00103
00104
00105
00106 DbuSubRunSummary(const DbuSubRunSummary& from)
00107 : DbiTableRow() { LEA_CTOR; *this = from; }
00108
00109
00110
00111 public:
00112
00113 Detector::Detector_t fDetector;
00114 SimFlag::SimFlag_t fSimFlag;
00115 Int_t fRun;
00116 Short_t fSubRun;
00117 Short_t fRunType;
00118 VldTimeStamp fStartTime;
00119 VldTimeStamp fEndTime;
00120 Int_t fTermCode;
00121 Int_t fSnarlRec;
00122 Int_t fMonitorRec;
00123 Int_t fLightInjRec;
00124 Int_t fNErr;
00125 Int_t fTimeFrames;
00126 Int_t fDroppedFrames;
00127 Int_t fConsistency;
00128 string fComment;
00129
00130 ClassDef(DbuSubRunSummary,0)
00131
00132 };
00133
00134 #endif // DBUSUBRUNSUMMARY_H