Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

DbuRunSummary.h

Go to the documentation of this file.
00001 // $Id: DbuRunSummary.h,v 1.6 2006/04/13 15:50:08 rhatcher Exp $
00002 
00003 #ifndef DBURUNSUMMARY_H
00004 #define DBURUNSUMMARY_H
00005 
00007 // DbuRunSummary
00008 //
00009 // Package: DatabaseUpdater
00010 //
00011 // Concept:
00012 //
00013 //
00014 // R. Hatcher 2002-04-19
00016 
00017 #include "DatabaseUpdater/DbuBits.h"
00018 #include "DatabaseUpdater/DbuDaqConfigFilesText.h"
00019 class DbuDaqFileSummary;
00020 
00021 #include "DatabaseInterface/DbiTableRow.h"
00022 #include "LeakChecker/Lea.h"
00023 
00024 #include "Validity/VldContext.h"
00025 #include <string>
00026 using std::string;
00027 #include <vector>
00028 #include <iosfwd>
00029 
00030 class DbiValidityRec;
00031 class DbiStatement;
00032 
00033 class DbuRunSummary;
00034 std::ostream& operator<<(std::ostream& os, const DbuRunSummary& drs);
00035 
00036 class DbuRunSummary : public DbiTableRow
00037 {
00038 
00039 public:
00040 
00041    static const std::string kNoComment;    // = "<<No Comment>>";
00042    static const std::string kNoRunPrepare; // = "<<No RunPrepare>>";
00043    static const std::string kNoAuxConfig;  // = "<<No AuxConfig>>";
00044    static const std::string kUnfilled;     // = "<<Unfilled>>";
00045 
00046 // Constructors and destructors.
00047 
00048    DbuRunSummary() :
00049      fDetector(Detector::kUnknown), fSimFlag(SimFlag::kUnknown),
00050      fRun(0), fLastSubRun(-1), fRunType(0),
00051      fStartTime((time_t)0,0), fEndTime((time_t)0,0), fTermCode(-1),
00052      fRunEndSnarls(-1), fRunEndNonSnarls(-1), fNErrs(-1), 
00053      fTimeFrames(-1), fDroppedFrames(-1),
00054      fConsistency(DbuBits::kDefaultConsistency),
00055      fRunComment(kNoComment), fRunPrepare(kNoRunPrepare),
00056      fAuxConfigText(kNoAuxConfig),
00057      fDbuDaqConfigFilesText(new DbuDaqConfigFilesText),
00058      fDbuDaqFiles()
00059      { LEA_CTOR; }
00060 
00061    virtual ~DbuRunSummary()
00062      { if (fDbuDaqConfigFilesText) delete fDbuDaqConfigFilesText; LEA_DTOR; };
00063 
00064 // State testing member functions
00065 
00066    Int_t CalcSnarls() const;      // # of snarls from sum of DbuDaqFileSummary's
00067    Int_t CalcNonSnarls() const;   // # of non-snarls from sum of DbuDaqFileSummary's
00068 
00069    virtual Int_t GetAggregateNo() const
00070 #ifdef MULTIAGRREGATE
00071       { return CalcUniqueSeqNo(fDetector,fRun,fSubRun); }
00072 #else
00073       { return -1; }
00074 #endif
00075 
00076    Bool_t IsSameRun(Detector::Detector_t det, Int_t run);
00077 
00078 //          UInt_t GetIndex(UInt_t defIndex) const;
00079 
00080    virtual DbiTableRow* CreateTableRow() const { return new DbuRunSummary; }
00081 
00082 // I/O  member functions
00083 
00084    virtual void Fill(DbiResultSet& rs,
00085                      const DbiValidityRec* vrec);
00086    virtual void Store(DbiOutRowStream& ors,
00087                       const DbiValidityRec* vrec) const;
00088 
00089    Int_t              GetSeqNo() const
00090      { return CalcUniqueSeqNo(fDetector,fRun); }
00091 
00092    void               ResetConsistencyBits(Int_t mask);
00093    void               SetConsistencyBits(Int_t mask);
00094 
00095    static Int_t       CalcUniqueSeqNo(Detector::Detector_t det, Int_t run);
00096 
00097    static const char* GetTableDescr();
00098 
00099    static void   SetFmtFlag(const UInt_t fmtflg) { fgFmtFlag = fmtflg; }
00100    static UInt_t GetFmtFlag() { return fgFmtFlag; }
00101    typedef enum EFtmFlagBits {
00102      fmt_RunComment          = 0x0001,
00103      fmt_RunPrepare          = 0x0002,
00104      fmt_AuxConfigText       = 0x0004,
00105      fmt_ConfigFilesText     = 0x0008,
00106      fmt_DaqFiles            = 0x0010
00107    } FmtFlagBits_t;
00108 
00109 private:
00110 
00111    friend class DbuDaqFileModule;  // allow this class to Commit, copy
00112 
00113 // Constructors and destructors.   (deep copies)
00114 
00115    DbuRunSummary(const DbuRunSummary& from);
00116    DbuRunSummary& operator=(const DbuRunSummary& rhs);
00117 
00118    void AddDaqFileEntry(const DbuDaqFileSummary& fs);
00119 
00120    Bool_t Commit(DbiStatement* stmt, std::string cft_md5, int cft_seqno);
00121 
00122 // Data members
00123 
00124 public: // !!!!!!! for now!
00125 
00126    Detector::Detector_t     fDetector;
00127    SimFlag::SimFlag_t       fSimFlag;
00128    Int_t                    fRun;
00129    Short_t                  fLastSubRun;
00130    Short_t                  fRunType;
00131    VldTimeStamp             fStartTime;
00132    VldTimeStamp             fEndTime;
00133    Int_t                    fTermCode;        // termination code
00134    Int_t                    fRunEndSnarls;    // # snarls from RawRunEndBlock
00135    Int_t                    fRunEndNonSnarls; // # non-snarls from RawRunEndBlock
00136    Int_t                    fNErrs;
00137    Int_t                    fTimeFrames;
00138    Int_t                    fDroppedFrames;
00139    Int_t                    fConsistency;     // flag missing parts of summary
00140 
00141    std::string              fRunComment;
00142    std::string              fRunPrepare;
00143    std::string              fAuxConfigText;   // run specific config files text
00144 
00145    DbuDaqConfigFilesText*   fDbuDaqConfigFilesText; // owned copy
00146    std::vector<DbuDaqFileSummary*> fDbuDaqFiles;    // owned copies
00147 
00148    // global formatting flag
00149    static UInt_t fgFmtFlag;
00150 
00151 ClassDef(DbuRunSummary,0)
00152 
00153 };
00154 
00155 inline void DbuRunSummary::ResetConsistencyBits(Int_t mask)
00156 { fConsistency &= ~mask; }
00157 
00158 inline void DbuRunSummary::SetConsistencyBits(Int_t mask)
00159 { fConsistency |= mask; }
00160 
00161 #endif  // DBURUNSUMMARY_H

Generated on Mon Feb 15 11:06:35 2010 for loon by  doxygen 1.3.9.1