Bridge++  Version 1.5.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
parameterManager.cpp
Go to the documentation of this file.
1 
14 #include "parameterManager_YAML.h"
15 
16 #ifdef USE_XML
17 #include "parameterManager_XML.h"
18 #endif
19 
20 const std::string ParameterManager::class_name = "ParameterManager";
21 
22 //====================================================================
23 Parameters ParameterManager::read(const std::string& params_file)
24 {
25  Parameters params;
26 
27  read(params_file, params);
28  return params;
29 }
30 
31 
32 //====================================================================
33 void ParameterManager::read(const std::string& params_file, Parameters& params)
34 {
35  if (params_file.size() == 0) return;
36 
37  std::string ext = params_file.substr(params_file.find_last_of('.'));
38 
39  vout.paranoiac("ext = %s\n", ext.c_str());
40 
41  if (ext == ".yaml") {
42  return ParameterManager_YAML().read_params(params_file, params);
43 #ifdef USE_XML
44  } else if (ext == ".xml") {
45  return ParameterManager_XML().read_params(params_file, params);
46 #endif
47  } else {
48  vout.crucial("Error at %s: unrecognized file type: %s\n", class_name.c_str(), params_file.c_str());
49  exit(EXIT_FAILURE);
50  }
51 }
52 
53 
54 //====================================================================
55 //============================================================END=====
BridgeIO vout
Definition: bridgeIO.cpp:503
Class for parameters.
Definition: parameters.h:46
static const std::string class_name
void paranoiac(const char *format,...)
Definition: bridgeIO.cpp:235
void crucial(const char *format,...)
Definition: bridgeIO.cpp:178
void read_params(const std::string &params_file, Parameters &params)
read parameters from file.
static void read(const std::string &params_file, Parameters &params)
Parameter manager with YAML parser.