ESyS-Particle
4.0.1
|
00001 00002 // // 00003 // Copyright (c) 2003-2011 by The University of Queensland // 00004 // Earth Systems Science Computational Centre (ESSCC) // 00005 // http://www.uq.edu.au/esscc // 00006 // // 00007 // Primary Business: Brisbane, Queensland, Australia // 00008 // Licensed under the Open Software License version 3.0 // 00009 // http://www.opensource.org/licenses/osl-3.0.php // 00010 // // 00012 00013 00014 #ifndef ESYS_LSMCHECKPOINTINFO_H 00015 #define ESYS_LSMCHECKPOINTINFO_H 00016 00017 #include <vector> 00018 #include <iostream> 00019 00020 namespace esys 00021 { 00022 namespace lsm 00023 { 00024 class GeometryInfo; 00025 typedef std::vector<std::string> StringVector; 00029 class CheckPointInfo 00030 { 00031 public: 00032 CheckPointInfo(); 00033 00034 ~CheckPointInfo(); 00035 00036 bool operator==(const CheckPointInfo &cpInfo) const; 00037 00038 const GeometryInfo &getGeometryInfo() const; 00039 void setGeometryInfo(const GeometryInfo &geoInfo); 00040 00041 const StringVector &getLatticeDataFiles() const; 00042 void setLatticeDataFiles(const StringVector &fileNames); 00043 00044 int getNumTimeSteps() const; 00045 void setNumTimeSteps(int numTimeSteps); 00046 00047 int getTimeStep() const; 00048 void setTimeStep(int timeStep); 00049 00050 double getTimeStepSize() const; 00051 void setTimeStepSize(double timeStepSize); 00052 00053 void read(std::istream &iStream); 00054 void write(std::ostream &oStream) const; 00055 00056 protected: 00057 CheckPointInfo(const CheckPointInfo &cpInfo); 00058 CheckPointInfo &operator=(const CheckPointInfo &cpInfo); 00059 00060 private: 00061 class Impl; 00062 Impl *m_pImpl; 00063 }; 00064 }; 00065 }; 00066 00067 #endif