00001 #ifndef EPETRAEXT_XMLREADER_H
00002 #define EPETRAEXT_XMLREADER_H
00003
00004 #include "EpetraExt_ConfigDefs.h"
00005 #include "Teuchos_RefCountPtr.hpp"
00006 #include <fstream>
00007
00008 class Epetra_Map;
00009 class Epetra_Comm;
00010 class Epetra_MultiVector;
00011 class Epetra_CrsGraph;
00012 class Epetra_CrsMatrix;
00013 namespace Teuchos {
00014 class FileXML;
00015 class XMLObject;
00016 class ParameterList;
00017 }
00018
00019 namespace EpetraExt
00020 {
00068 class XMLReader
00069 {
00070 public:
00071
00073 XMLReader(const Epetra_Comm& Comm, const string& FileName);
00074
00076 ~XMLReader() {}
00077
00078
00079
00080
00082 void Read(const string& Label, Epetra_Map*& Map);
00083
00085 void Read(const string& Label, Epetra_CrsGraph*& Graph);
00086
00088 void Read(const string& Label, Epetra_CrsMatrix*& Matrix);
00089
00091 void Read(const string& Label, Epetra_MultiVector*& MultiVector);
00092
00094 void Read(const string& Label, vector<string>& Content);
00095
00097 void Read(const string& Label, Teuchos::ParameterList& List);
00098
00099
00100 private:
00102 bool IsOpen_;
00104 const Epetra_Comm& Comm_;
00106 Teuchos::RefCountPtr<Teuchos::XMLObject> fileXML_;
00107 };
00108
00109 }
00110
00111 #endif