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>
125 void load(std::string paramFile);
139 std::vector<std::shared_ptr<PrefixStore>>
prefixes;
141 void populateMaps(boost::program_options::variables_map & vm);
156 class ApplicationParametersManager:
public ParametersManager
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
ApplicationParametersManager(const char *applicationName_, const char *applicationVersion_)
void enable()
Enables parameter loader.
Advanced Simulation Library.
void populateMaps(boost::program_options::variables_map &vm)
std::string parametersFileDirectory
boost::program_options::options_description parametersOptions
void addPrefix(const std::string prefix, std::shared_ptr< std::map< std::string, T >> destinationMap)
void writeParametersFile(const std::string fileName)
Parameter(const char *key_, const char *description_, const char *units_="")
void load(std::string paramFile)
std::string parametersFileStr
Content of the parameters file.
std::vector< std::shared_ptr< PrefixStore > > prefixes
void load(int argc, char *argv[])
static ParametersManager * current
void add(UValue< T > parameter, const char *key, const char *description, const char *units)
Adds a Parameter to ParametersManager.