ESyS-Particle  4.0.1
CheckPointInfo.h
1 
2 // //
3 // Copyright (c) 2003-2011 by The University of Queensland //
4 // Earth Systems Science Computational Centre (ESSCC) //
5 // http://www.uq.edu.au/esscc //
6 // //
7 // Primary Business: Brisbane, Queensland, Australia //
8 // Licensed under the Open Software License version 3.0 //
9 // http://www.opensource.org/licenses/osl-3.0.php //
10 // //
12 
13 
14 #ifndef ESYS_LSMCHECKPOINTINFO_H
15 #define ESYS_LSMCHECKPOINTINFO_H
16 
17 #include <vector>
18 #include <iostream>
19 
20 namespace esys
21 {
22  namespace lsm
23  {
24  class GeometryInfo;
25  typedef std::vector<std::string> StringVector;
30  {
31  public:
33 
34  ~CheckPointInfo();
35 
36  bool operator==(const CheckPointInfo &cpInfo) const;
37 
38  const GeometryInfo &getGeometryInfo() const;
39  void setGeometryInfo(const GeometryInfo &geoInfo);
40 
41  const StringVector &getLatticeDataFiles() const;
42  void setLatticeDataFiles(const StringVector &fileNames);
43 
44  int getNumTimeSteps() const;
45  void setNumTimeSteps(int numTimeSteps);
46 
47  int getTimeStep() const;
48  void setTimeStep(int timeStep);
49 
50  double getTimeStepSize() const;
51  void setTimeStepSize(double timeStepSize);
52 
53  void read(std::istream &iStream);
54  void write(std::ostream &oStream) const;
55 
56  protected:
57  CheckPointInfo(const CheckPointInfo &cpInfo);
58  CheckPointInfo &operator=(const CheckPointInfo &cpInfo);
59 
60  private:
61  class Impl;
62  Impl *m_pImpl;
63  };
64  };
65 };
66 
67 #endif