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