24 #ifndef ASLPARAMETERSMANAGER_H 25 #define ASLPARAMETERSMANAGER_H 28 #include <boost/program_options.hpp> 44 template <
typename T>
class Parameter
60 const char* description_,
61 const char* units_ =
"");
77 const char* description_,
78 const char* units_ =
"");
79 inline const T &
v()
const;
85 const std::string key;
86 const std::string description;
87 const std::string units;
95 class ParametersManager
103 template <
typename T>
void add(UValue<T> parameter,
105 const char* description,
108 template <
typename T>
void add(UValue<std::map<std::string, T>> parameter,
110 const char* description,
113 template <
typename T>
void add(UValue<T> parameter,
116 const char* description,
120 template <
typename T>
121 void addPrefix(
const std::string prefix,
125 void load(std::string paramFile);
130 std::string getDir();
132 static ParametersManager * current;
135 boost::program_options::options_description parametersOptions;
136 std::string parametersFileDirectory;
139 std::vector<std::shared_ptr<PrefixStore>> prefixes;
141 void populateMaps(boost::program_options::variables_map & vm);
144 void writeParametersFile(
const std::string fileName);
146 std::string parametersFileStr;
156 class ApplicationParametersManager:
public ParametersManager
159 ApplicationParametersManager(
const char* applicationName_,
160 const char* applicationVersion_);
164 void load(
int argc,
char* argv[]);
167 UValue<std::string> platform;
168 UValue<std::string> device;
169 std::string applicationName;
170 std::string applicationVersion;
179 return parameter.v();
185 return parameter.v();
194 #endif // ASLPARAMETERSMANAGER_H Advanced Simulation Library.
Parameter(const char *key_, const char *description_, const char *units_="")