00001 #ifndef MESHREADER_H
00002 #define MESHREADER_H
00003
00004 #include "SundanceDefs.h"
00005
00006 #include "Mesh.h"
00007 #include "TSFSmartPtr.h"
00008 #include "TSFTimeMonitor.h"
00009
00010 namespace Sundance
00011 {
00012
00013 using namespace TSF;
00014 using std::string;
00015
00016 using std::ostream;
00017
00018
00019
00020
00021
00022
00023 class MeshReaderBase
00024 {
00025 public:
00026
00027 MeshReaderBase() : verbose_(false) {;}
00028
00029 virtual ~MeshReaderBase() {;}
00030
00031
00032 virtual Mesh getMesh() const = 0;
00033
00034 virtual Mesh gatherMesh(int numProcs) const ;
00035
00036
00037 void verboseOn() {verbose_ = true;}
00038
00039 protected:
00040 bool verbose_;
00041 };
00042
00043
00044
00045
00046
00047
00048 class MeshReader
00049 {
00050 public:
00051
00052 MeshReader() : ptr_(0){;}
00053
00054 MeshReader(MeshReaderBase* ptr);
00055
00056
00057 Mesh getMesh() const ;
00058
00059 Mesh gatherMesh(int numProcs) const ;
00060
00061
00062 void verboseOn();
00063
00064 private:
00065 TSFSmartPtr<MeshReaderBase> ptr_;
00066
00067 static TSFTimer& meshReadTimer();
00068 };
00069
00070
00071
00072
00073
00074 }
00075 #endif