00001 // ===================================================================== 00028 // ===================================================================== 00029 #ifndef CLDAQ__TOUTPUTHTMLFILESTREAM_HH 00030 #define CLDAQ__TOUTPUTHTMLFILESTREAM_HH 00031 00032 #include "Tglobals.h" 00033 00034 00054 class TOutputHtmlFileStream 00055 : public Tofstream 00056 { 00057 00058 public: 00059 enum { 00060 fopen = 0x01, 00061 fclose = 0x02, 00062 otable = 0x04, 00063 ctable = 0x08, 00064 wheader = 0x10, 00065 wfooter = 0x20, 00066 title = 0x40 00067 }; 00068 00069 protected: 00070 Tint theStatus; 00071 Tstring theTitle; 00072 Tstring theFileName; 00073 00074 public: 00075 TOutputHtmlFileStream(); 00076 TOutputHtmlFileStream( const Tstring& filename ); 00077 TOutputHtmlFileStream( const Tstring& filename, const Tstring& title ); 00078 ~TOutputHtmlFileStream(); 00079 00080 public: 00081 virtual TOutputHtmlFileStream& WriteHeader(); 00082 virtual TOutputHtmlFileStream& WriteFooter(); 00083 virtual TOutputHtmlFileStream& OpenTable(); 00084 virtual TOutputHtmlFileStream& CloseTable(); 00085 00086 public: 00087 Tbool IsOpen() const; 00088 Tbool IsClose() const; 00089 Tbool IsOpenTable() const; 00090 Tbool IsCloseTable() const; 00091 Tbool IsWrittenHeader() const; 00092 Tbool IsWrittenFooter() const; 00093 Tbool HasTitle() const; 00094 00095 public: 00096 const Tstring& GetTitle() const; 00097 Tint GetStatus() const; 00098 const Tstring& GetFileName() const; 00099 Tvoid SetTitle( const Tstring& title ); 00100 Tvoid SetStatus( Tint status ); 00101 00102 public: 00103 Tvoid Open( const Tstring& filename ); 00104 Tvoid Open( const Tstring& filename, const Tstring& title ); 00105 Tvoid Close(); 00106 00107 protected: 00108 Tint setStatusBit( Tint status ); 00109 Tint clearStatusBit( Tint status ); 00110 00111 #ifdef __CLDAQ_ROOT_DLL 00112 ClassDef(TOutputHtmlFileStream,0) 00113 #endif 00114 00115 }; 00116 00117 inline const Tstring& TOutputHtmlFileStream::GetTitle() const 00118 { 00119 return theTitle; 00120 } 00121 00122 inline Tint TOutputHtmlFileStream::GetStatus() const 00123 { 00124 return theStatus; 00125 } 00126 00127 inline const Tstring& TOutputHtmlFileStream::GetFileName() const 00128 { 00129 return theFileName; 00130 } 00131 00132 inline Tvoid TOutputHtmlFileStream::SetTitle( const Tstring& title ) 00133 { 00134 theTitle = title; 00135 setStatusBit( TOutputHtmlFileStream::title ); 00136 return; 00137 } 00138 00139 inline Tvoid TOutputHtmlFileStream::SetStatus( Tint status ) 00140 { 00141 theStatus = status; 00142 return; 00143 } 00144 00145 inline Tint TOutputHtmlFileStream::setStatusBit( Tint status ) 00146 { 00147 return theStatus |= status; 00148 } 00149 00150 inline Tint TOutputHtmlFileStream::clearStatusBit( Tint status ) 00151 { 00152 return theStatus &= ~status; 00153 } 00154 00155 inline Tbool TOutputHtmlFileStream::IsOpen() const 00156 { 00157 return (Tbool)( theStatus & TOutputHtmlFileStream::fopen ); 00158 } 00159 00160 inline Tbool TOutputHtmlFileStream::IsClose() const 00161 { 00162 return (Tbool)( theStatus & TOutputHtmlFileStream::fclose ); 00163 } 00164 00165 inline Tbool TOutputHtmlFileStream::IsOpenTable() const 00166 { 00167 return (Tbool)( theStatus & TOutputHtmlFileStream::otable ); 00168 } 00169 00170 inline Tbool TOutputHtmlFileStream::IsCloseTable() const 00171 { 00172 return (Tbool)( theStatus & TOutputHtmlFileStream::ctable ); 00173 } 00174 00175 inline Tbool TOutputHtmlFileStream::IsWrittenHeader() const 00176 { 00177 return (Tbool)( theStatus & TOutputHtmlFileStream::wheader ); 00178 } 00179 00180 inline Tbool TOutputHtmlFileStream::IsWrittenFooter() const 00181 { 00182 return (Tbool)( theStatus & TOutputHtmlFileStream::wfooter ); 00183 } 00184 00185 inline Tbool TOutputHtmlFileStream::HasTitle() const 00186 { 00187 return (Tbool)( theStatus & TOutputHtmlFileStream::title ); 00188 } 00189 00190 #endif