/search.css" rel="stylesheet" type="text/css"/> /search.js">
00001 #ifndef DBILOGENTRY_H 00002 #define DBILOGENTRY_H 00003 00025 #include <string> 00026 using std::string; 00027 #include <iosfwd> 00028 00029 #include "TObject.h" 00030 00031 #include "Conventions/Site.h" 00032 #include "Conventions/SimFlag.h" 00033 #include "DatabaseInterface/DbiTableRow.h" 00034 #include "DatabaseInterface/Dbi.h" 00035 #include "Context/TimeStamp.h" 00036 00037 00038 class DbiLogEntry; 00039 class DbiOutRowStream; 00040 class DbiResultSet; 00041 class DbiTableProxy; 00042 class DbiValidityRec; 00043 00044 std::ostream& operator<<(std::ostream& s, const DbiLogEntry& logEntry); 00045 00046 class DbiLogEntry : public DbiTableRow 00047 { 00048 00049 public: 00050 00051 //using TObject::Write; 00052 00053 // Constructors and destructors. 00054 DbiLogEntry(const string& tableName = "", 00055 const string& reason = "", 00056 Int_t siteMask = Site::FullMask(), 00057 Int_t simMask = SimFlag::FullMask(), 00058 Dbi::SubSite subsite = 0, 00059 Dbi::Task task = 0, 00060 Int_t logSeqNoMin = 0, 00061 Int_t logSeqNoMax = 0, 00062 Int_t logNumSeqNo = 0); 00063 virtual ~DbiLogEntry(); 00064 00065 // State testing member functions. 00066 00067 // Inherited responsibilities. 00068 virtual DbiTableRow* CreateTableRow() const { 00069 return new DbiLogEntry; } 00070 Int_t GetAggregateNo() const { return -1; } 00071 00072 // New member functions. 00073 const string& GetLogTableName() const { return fLogTableName; } 00074 Int_t GetSiteMask() const { return fLogSiteMask; } 00075 Int_t GetLogSeqNoMin() const { return fLogSeqNoMin; } 00076 Int_t GetLogSeqNoMax() const { return fLogSeqNoMax; } 00077 Int_t GetLogNumSeqNo() const { return fLogNumSeqNo; } 00078 Int_t GetSimMask() const { return fLogSimMask; } 00079 Dbi::SubSite GetSubSite() const { return fLogSubSite; } 00080 Dbi::Task GetTask() const { return fLogTask; } 00081 const string& GetUserName() const { return fUserName; } 00082 const string& GetProcessName() const { return fProcessName; } 00083 const string& GetHostName() const { return fHostName; } 00084 const string& GetServerName() const { return fServerName; } 00085 const string& GetReason() const { return fReason; } 00086 TimeStamp GetUpdateTime() const { return fUpdateTime; } 00087 00088 Bool_t HasReason() const { return fReason.size() > 0; } 00089 00090 00091 // override virtual 00092 string GetDatabaseLayout(); 00093 00094 // State changing member functions 00095 void SetReason(const string& reason); 00096 void SetSiteMask(Int_t siteMask) { fLogSiteMask = siteMask; } 00097 void SetSimMask(Int_t simMask) { fLogSimMask = simMask; } 00098 void SetTask(Dbi::Task task) { fLogTask = task; } 00099 void SetSubSite(Dbi::SubSite subsite) { fLogSubSite = subsite; } 00100 void SetUpdateTime(const TimeStamp& updateTime) { 00101 fUpdateTime = updateTime; } 00102 void Recreate (const string& tableName = "", 00103 const string& reason = "", 00104 Int_t siteMask = Site::FullMask(), 00105 Int_t simMask = SimFlag::FullMask(), 00106 Dbi::SubSite subsite = 0, 00107 Dbi::Task task = 0, 00108 Int_t logSeqNoMin = 0, 00109 Int_t logSeqNoMax = 0, 00110 Int_t logNumSeqNo = 0); 00111 00112 // I/O member functions 00113 virtual void Fill(DbiResultSet& rs, 00114 const DbiValidityRec* vrec); 00115 virtual void Store(DbiOutRowStream& ors, 00116 const DbiValidityRec* vrec) const; 00117 Bool_t Write(UInt_t dbNo,Int_t logSeqNo=0); 00118 00119 private: 00120 // Constructors and destructors. 00121 DbiLogEntry(const DbiLogEntry& from); // No! 00122 00123 void SetServerName(); 00124 00125 // Data members 00126 00128 UInt_t fDbNo; 00129 00131 Int_t fSeqNo; 00132 00134 string fLogTableName; 00135 00137 Int_t fLogSiteMask; 00138 00140 Int_t fLogSimMask; 00141 00143 Dbi::SubSite fLogSubSite; 00144 00146 Dbi::Task fLogTask; 00147 00149 Int_t fLogSeqNoMin; 00150 00152 Int_t fLogSeqNoMax; 00153 00155 Int_t fLogNumSeqNo; 00156 00158 TimeStamp fUpdateTime; 00159 00161 string fUserName; 00162 00164 string fProcessName; 00165 00167 string fHostName; 00168 00170 string fServerName; 00171 00173 string fReason; 00174 00175 00176 // Note: fLogDetMask,fLogSimMask,fLogSubSite,fLogTask,fUpdateTime are used to construct the DbiValidityRec 00177 // of the update; they are not store in main table. 00178 00179 // Removed: ClassDef(DbiLogEntry,0) // Configuration data. 00180 00181 }; 00182 00183 00184 #endif // DBILOGENTRY_H