/*! \file \version $Id: TAGconfigFile.cxx,v 1.1 2003/06/15 18:22:01 mueller Exp $ \brief Implementation of TATOFconfigFile. */ #include "TSystem.h" #include "TString.h" #include "TATOFconfigFile.h" /*! \class TATOFconfigFile TATOFconfigFile.h "TATOFconfigFile.h" \brief Configuration file reader. ** */ ClassImp(TATOFconfigFile); //------------------------------------------+----------------------------------- //! Constructor. TATOFconfigFile::TATOFconfigFile() : TATOFnamed("TATOFmbsIStream","") {} //------------------------------------------+----------------------------------- //! Destructor. TATOFconfigFile::~TATOFconfigFile() {} //------------------------------------------+----------------------------------- //! Open file with name \a name . Bool_t TATOFconfigFile::Open(const TString& name) { Close(); TString name_exp = name; gSystem->ExpandPathName(name_exp); fStream.open(name_exp.Data()); if (!fStream) { Error("Open()", "failed to open file '%s'", name_exp.Data()); return kTRUE; } fLine = ""; SetName(name_exp); return kFALSE; } //------------------------------------------+----------------------------------- //! Close file. void TATOFconfigFile::Close() { fStream.close(); fLine = ""; SetName(""); return; } //------------------------------------------+----------------------------------- //! Read next line. // !!! check and improve handling when last line has no final \n !!! Bool_t TATOFconfigFile::NextLine() { if (!fStream.good()) return kFALSE; TString line; while(1) { line.ReadLine(fStream, kFALSE); if (!fStream.fail()) { fLine = line; } else { fLine = ""; } if (fStream.fail()) break; if (fLine.Length() > 0 && ! fLine.BeginsWith("#")) break; } return !fStream.fail(); } //------------------------------------------+----------------------------------- //! ostream insertion. void TATOFconfigFile::ToStream(ostream& os, Option_t* option) const { os << "TATOFconfigFile " << GetName() << endl; return; }