MercuryDPM  Alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
FilesAndRunNumber.h
Go to the documentation of this file.
1 //Copyright (c) 2013-2014, The MercuryDPM Developers Team. All rights reserved.
2 //For the list of developers, see <http://www.MercuryDPM.org/Team>.
3 //
4 //Redistribution and use in source and binary forms, with or without
5 //modification, are permitted provided that the following conditions are met:
6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above copyright
9 // notice, this list of conditions and the following disclaimer in the
10 // documentation and/or other materials provided with the distribution.
11 // * Neither the name MercuryDPM nor the
12 // names of its contributors may be used to endorse or promote products
13 // derived from this software without specific prior written permission.
14 //
15 //THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16 //ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17 //WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18 //DISCLAIMED. IN NO EVENT SHALL THE MERCURYDPM DEVELOPERS TEAM BE LIABLE FOR ANY
19 //DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20 //(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21 //LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 //ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 //(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24 //SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 
26 #ifndef STD_SAVE_H
27 #define STD_SAVE_H
28 
29 #include "Files.h"
30 #include <vector>
31 
32 #ifdef HIGH_PRECISION
33 typedef long double Mdouble;
34 #else
35 typedef double Mdouble;
36 #endif
37 
49  // All my codes do this so I expect this routines will be used often.
50  //So this saves my coping the same routine over and over again
51 
52 class FilesAndRunNumber : public Files
53 {
54 public:
55 
60 
65 
69  virtual ~FilesAndRunNumber();
70 
74  void constructor();
75 
81 
86 
91  void autoNumber();
92 
97  std::vector<int> get2DParametersFromRunNumber(int size_x, int size_y);
98 
102  int launchNewRun(const char* name, bool quick = false);
103 
104  //setters and getters
105 
109  void setRunNumber(int runNumber);
110 
114  int getRunNumber() const;
115 
119  void read(std::istream& is);
120 
124  void write(std::ostream& os) const;
125 
126 private:
127 
132 };
133 
134 #endif
Every simulation requires data files to store all the information necessary for visualisation and ana...
Definition: Files.h:42
int readRunNumberFromFile()
Read the run number or the counter from the counter file (COUNTER_DONOTDEL)
double Mdouble
virtual ~FilesAndRunNumber()
Constructor.
void write(std::ostream &os) const
Accepts an output stream read function, which accepts an input stream std::ostream.
void setRunNumber(int runNumber)
This sets the counter/Run number, overriding the defaults.
void constructor()
a function called by the FilesAndRunNumber() (constructor)
int runNumber_
This stores the run number for saving.
void read(std::istream &is)
Accepts an input stream std::istream.
FilesAndRunNumber()
Constructor.
void autoNumber()
The autoNumber() function is the trigger. It calls three functions. setRunNumber(), readRunNumberFromFile() and incrementRunNumberInFile().
std::vector< int > get2DParametersFromRunNumber(int size_x, int size_y)
This turns a counter into two indices which is an amazing feature for doing two dimensional parameter...
It is publicly inherited from class Files. It defines an awesome feature that is ideal when doing a p...
void incrementRunNumberInFile()
Increment the run Number (counter value) stored in the file_counter (COUNTER_DONOTDEL) by 1 and store...
int launchNewRun(const char *name, bool quick=false)
This launches a code from within this code. Please pass the name of the code to run.
int getRunNumber() const
This returns the current value of the counter (runNumber_)