00001 // ===================================================================== 00028 // ===================================================================== 00029 #ifndef CLDAQ__TMACROFILEPARSER_HH 00030 #define CLDAQ__TMACROFILEPARSER_HH 00031 00032 #include "Tglobals.h" 00033 00034 00054 class TMacroFileParser 00055 { 00056 00057 private: 00058 Tstring theMacroFileName; 00059 TstringList theCommentStringList; 00060 Tifstream theMacroFileStream; 00061 00062 public: 00063 TMacroFileParser(); 00064 TMacroFileParser( const Tstring& input ); 00065 TMacroFileParser( const Tstring& input, const TstringList& comment ); 00066 TMacroFileParser( const TMacroFileParser& right ); 00067 ~TMacroFileParser(); 00068 00069 public: 00070 Tvoid Open(); 00071 Tvoid Open( const Tstring& filename ); 00072 Tbool IsOpen(); 00073 Tbool IsGood() const; 00074 Tbool IsFail() const; 00075 Tbool IsEndOfFile() const; 00076 Tbool IsSuccess(); 00077 Tvoid Close(); 00078 TstringList ReadLine(); 00079 Tbool IsExecutable( const TstringList& readbuf ) const; 00080 Tstring GetCommand( const TstringList& readbuf ) const; 00081 TstringList GetArguments( const TstringList& readbuf ) const; 00082 00083 public: 00084 const Tstring& GetMacroFileName() const; 00085 Tvoid SetMacroFileName( const Tstring& filename ); 00086 const TstringList& GetCommentStringList() const; 00087 TstringList GetCommentStringList(); 00088 Tvoid SetCommentStringList( const TstringList& list ); 00089 Tifstream& GetMacroFileStream(); 00090 00091 private: 00092 Tvoid checkFileStream(); 00093 TstringList divideLine( Tstring& readline ) const; 00094 const Tstring& eraseComment( Tstring& readline ) const; 00095 00096 #ifdef __CLDAQ_ROOT_DLL 00097 ClassDef(TMacroFileParser,0) 00098 #endif 00099 00100 }; 00101 00102 inline const Tstring& TMacroFileParser::GetMacroFileName() const 00103 { 00104 return theMacroFileName; 00105 } 00106 00107 inline Tvoid TMacroFileParser::SetMacroFileName( const Tstring& filename ) 00108 { 00109 theMacroFileName = filename; 00110 return; 00111 } 00112 00113 inline const TstringList& TMacroFileParser::GetCommentStringList() const 00114 { 00115 return theCommentStringList; 00116 } 00117 00118 inline TstringList TMacroFileParser::GetCommentStringList() 00119 { 00120 return theCommentStringList; 00121 } 00122 00123 inline Tvoid TMacroFileParser::SetCommentStringList( const TstringList& list ) 00124 { 00125 theCommentStringList = list; 00126 return; 00127 } 00128 00129 inline Tifstream& TMacroFileParser::GetMacroFileStream() 00130 { 00131 return theMacroFileStream; 00132 } 00133 00134 00135 #endif