xref: /phasta/phSolver/common/Input.h (revision 7acde132a6def0fe2daaec0d1a712dff0e5c6636)
159599516SKenneth E. Jansen #ifndef H_Input
259599516SKenneth E. Jansen #define H_Input
359599516SKenneth E. Jansen #include <vector>
459599516SKenneth E. Jansen #include <string>
559599516SKenneth E. Jansen #include <map>
659599516SKenneth E. Jansen 
759599516SKenneth E. Jansen #include "ValType.h"
859599516SKenneth E. Jansen 
959599516SKenneth E. Jansen using namespace std;
1059599516SKenneth E. Jansen 
11*9ae91bddSCameron Smith namespace phSolver{
1259599516SKenneth E. Jansen class Input {
1359599516SKenneth E. Jansen public:
1459599516SKenneth E. Jansen   Input(const string &, const string &default_fname = "");
1559599516SKenneth E. Jansen   ~Input();
1659599516SKenneth E. Jansen 
1759599516SKenneth E. Jansen   // return the entire input map
1859599516SKenneth E. Jansen   map<string,string> InputMap() const;
1959599516SKenneth E. Jansen 
2059599516SKenneth E. Jansen   // returns the desired string
2159599516SKenneth E. Jansen   //  const string &GetValue(const string &) const;
2259599516SKenneth E. Jansen   ValType GetValue(const string &) const;
2359599516SKenneth E. Jansen 
2459599516SKenneth E. Jansen   // echo the entire input map
2559599516SKenneth E. Jansen   void EchoInputMap(const ostream &ofile);
2659599516SKenneth E. Jansen 
27*9ae91bddSCameron Smith   const char* GetUserFileName();
28*9ae91bddSCameron Smith   const char* GetDefaultFileName();
2959599516SKenneth E. Jansen private:
3059599516SKenneth E. Jansen 
3159599516SKenneth E. Jansen   void trim_string(string *str);
3259599516SKenneth E. Jansen 
3359599516SKenneth E. Jansen   void get_input_lines(vector<string> *, ifstream& );
3459599516SKenneth E. Jansen   void build_map(map<string,string> *, vector<string> *);
3559599516SKenneth E. Jansen 
3659599516SKenneth E. Jansen   map<string,string> *input_map;
3759599516SKenneth E. Jansen   map<string,string> *default_map;
3859599516SKenneth E. Jansen 
3959599516SKenneth E. Jansen   vector<string> *input_text;
4059599516SKenneth E. Jansen   vector<string> *default_text;
4159599516SKenneth E. Jansen 
42*9ae91bddSCameron Smith   string userConfFileName;
43*9ae91bddSCameron Smith   string defaultConfFileName;
44*9ae91bddSCameron Smith 
4559599516SKenneth E. Jansen };
46*9ae91bddSCameron Smith } //end phSolver namespace
4759599516SKenneth E. Jansen 
4859599516SKenneth E. Jansen #endif
49