00001 // ===================================================================== 00028 // ===================================================================== 00029 #ifndef CLDAQ__TRUNINFORMATIONTABLE_HH 00030 #define CLDAQ__TRUNINFORMATIONTABLE_HH 00031 00032 #include "Tglobals.h" 00033 #include "TRunInformationList.hh" 00034 00035 class TOutputHtmlFileStream; 00036 00037 00057 class TRunInformationTable 00058 { 00059 00060 public: 00061 enum { tNotFound = -1 }; 00062 00063 private: 00064 TRunInformationList theRunInformationList; 00065 00066 public: 00067 TRunInformationTable(); 00068 TRunInformationTable( const TRunInformationList& infolist ); 00069 TRunInformationTable( const TRunInformationTable& right ); 00070 ~TRunInformationTable(); 00071 00072 public: 00073 const TRunInformationTable& operator=( const TRunInformationTable& right ); 00074 Tbool operator==( const TRunInformationTable& right ) const; 00075 Tbool operator!=( const TRunInformationTable& right ) const; 00076 friend Tostream& operator<<( Tostream& tos, const TRunInformationTable& right ); 00077 friend TOutputHtmlFileStream& operator<<( TOutputHtmlFileStream& html, const TRunInformationTable& right ); 00078 friend TRunInformationTable operator+( const TRunInformationList& left, const TRunInformationTable& right ); 00079 friend TRunInformationTable operator+( const TRunInformation& left, const TRunInformationTable& right ); 00080 00081 public: 00082 TRunInformationTable operator+( const TRunInformationTable& right ) const; 00083 TRunInformationTable operator+( const TRunInformationList& right ) const; 00084 TRunInformationTable operator+( const TRunInformation& right ) const; 00085 TRunInformationTable& operator+=( const TRunInformationTable& right ); 00086 TRunInformationTable& operator+=( const TRunInformationList& right ); 00087 TRunInformationTable& operator+=( const TRunInformation& right ); 00088 00089 public: 00090 const TRunInformationList& GetRunInformationList() const; 00091 TRunInformationList& GetRunInformationList(); 00092 Tvoid SetRunInformationList( const TRunInformationList& infolist ); 00093 00094 public: 00095 Tint GetNumberOfRows() const; 00096 Tvoid SetRunInformation( const Tstring& item ); 00097 Tvoid SetRunInformation( const Tstring& item, const Tstring& value ); 00098 Tvoid SetRunInformation( const TRunInformation& runinfo ); 00099 Tvoid SetRunInformation(); 00100 Tvoid AddRunInformation( const Tstring& item ); 00101 Tvoid AddRunInformation( const Tstring& item, const Tstring& value ); 00102 Tvoid AddRunInformation( const TRunInformation& runinfo ); 00103 Tvoid AddRunInformation(); 00104 Tstring GetItem( const Tstring& value ) const; 00105 Tstring GetItem( Tint nrow ) const; 00106 Tstring GetValue( const Tstring& item ) const; 00107 Tstring GetValue( Tint nrow ) const; 00108 Tint FindItem( const Tstring& item ) const; 00109 Tint FindValue( const Tstring& value ) const; 00110 Tint FindRunInformation( const TRunInformation& runinfo ) const; 00111 Tbool HasItem( const Tstring& item ) const; 00112 Tbool HasRunInformation( const TRunInformation& runinfo ) const; 00113 Tvoid Remove( const Tstring& item ); 00114 Tvoid Remove( const TRunInformation& runinfo ); 00115 Tvoid Clear(); 00116 00117 #ifdef __CLDAQ_ROOT_DLL 00118 ClassDef(TRunInformationTable,0) 00119 #endif 00120 00121 }; 00122 00123 inline const TRunInformationList& TRunInformationTable::GetRunInformationList() const 00124 { 00125 return theRunInformationList; 00126 } 00127 00128 inline TRunInformationList& TRunInformationTable::GetRunInformationList() 00129 { 00130 return theRunInformationList; 00131 } 00132 00133 inline Tvoid TRunInformationTable::SetRunInformationList( const TRunInformationList& infolist ) 00134 { 00135 theRunInformationList = infolist; 00136 return; 00137 } 00138 00139 #endif