ESyS-Particle  4.0.1
CheckPointInfo.h
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