xref: /phasta/phSolver/common/Input.h (revision 595995161822a203c8467e0e4a253d7bd7d6df32)
1*59599516SKenneth E. Jansen #ifndef H_Input
2*59599516SKenneth E. Jansen #define H_Input
3*59599516SKenneth E. Jansen #include <vector>
4*59599516SKenneth E. Jansen #include <string>
5*59599516SKenneth E. Jansen #include <map>
6*59599516SKenneth E. Jansen 
7*59599516SKenneth E. Jansen #include "ValType.h"
8*59599516SKenneth E. Jansen 
9*59599516SKenneth E. Jansen using namespace std;
10*59599516SKenneth E. Jansen 
11*59599516SKenneth E. Jansen class Input {
12*59599516SKenneth E. Jansen public:
13*59599516SKenneth E. Jansen   Input(const string &, const string &default_fname = "");
14*59599516SKenneth E. Jansen   Input(const char*, const char* = "");
15*59599516SKenneth E. Jansen   ~Input();
16*59599516SKenneth E. Jansen 
17*59599516SKenneth E. Jansen   // return the entire input map
18*59599516SKenneth E. Jansen   map<string,string> InputMap() const;
19*59599516SKenneth E. Jansen 
20*59599516SKenneth E. Jansen   // returns the desired string
21*59599516SKenneth E. Jansen   //  const string &GetValue(const string &) const;
22*59599516SKenneth E. Jansen   ValType GetValue(const string &) const;
23*59599516SKenneth E. Jansen 
24*59599516SKenneth E. Jansen   // echo the entire input map
25*59599516SKenneth E. Jansen   void EchoInputMap(const ostream &ofile);
26*59599516SKenneth E. Jansen 
27*59599516SKenneth E. Jansen private:
28*59599516SKenneth E. Jansen 
29*59599516SKenneth E. Jansen   void trim_string(string *str);
30*59599516SKenneth E. Jansen 
31*59599516SKenneth E. Jansen   void get_input_lines(vector<string> *, ifstream& );
32*59599516SKenneth E. Jansen   void build_map(map<string,string> *, vector<string> *);
33*59599516SKenneth E. Jansen 
34*59599516SKenneth E. Jansen   map<string,string> *input_map;
35*59599516SKenneth E. Jansen   map<string,string> *default_map;
36*59599516SKenneth E. Jansen 
37*59599516SKenneth E. Jansen   vector<string> *input_text;
38*59599516SKenneth E. Jansen   vector<string> *default_text;
39*59599516SKenneth E. Jansen 
40*59599516SKenneth E. Jansen };
41*59599516SKenneth E. Jansen 
42*59599516SKenneth E. Jansen 
43*59599516SKenneth E. Jansen 
44*59599516SKenneth E. Jansen 
45*59599516SKenneth E. Jansen #endif
46