ORCA: Optimization-based framework for Robotic Control Applications
Config.h
Go to the documentation of this file.
1 #pragma once
2 #include <orca/utils/Utils.h>
5 
6 namespace orca
7 {
8  namespace common
9  {
14  class Config : public OrcaObject
15  {
16  public:
17  using Ptr = std::shared_ptr<Config>;
18  using ParamMap = std::map<std::string, ParameterBase* >;
19 
20  Config(const std::string& config_name);
21  virtual ~Config();
27  void addParameter(const std::string& param_name,ParameterBase* param
28  , ParamPolicy policy = ParamPolicy::Required
29  , std::function<void()> on_loading_success = 0);
30 
31  template<class T>
32  void addParameter(const std::string& param_name,T& param
33  , ParamPolicy policy = ParamPolicy::Required
34  , std::function<void()> on_loading_success = 0)
35  {
36  parameters_to_delete_.push_back(new Parameter<T>(param));
37  this->addParameter(param_name,parameters_to_delete_.back(),policy,on_loading_success);
38  }
39 
46  ParameterBase* getParameter(const std::string& param_name);
50  void print() const;
56  bool loadFromFile(const std::string& yaml_url);
62  bool loadFromString(const std::string& yaml_str);
63 
64  bool areAllRequiredParametersSet() const;
65 
66  const ParamMap& getAllParameters() const;
67 
68  void onSuccess(std::function<void()> f);
69  private:
70  std::string fileToString(const std::string& yaml_url);
71  ParamMap parameters_;
72  std::list<ParameterBase*> parameters_to_delete_;
73  std::function<void()> on_success_;
74  bool config_loaded_ = false;
75  };
76  } // namespace common
77 } // namespace orca
const ParamMap & getAllParameters() const
Definition: Config.cc:247
std::shared_ptr< Config > Ptr
Definition: Config.h:17
Definition: OrcaObject.h:45
virtual ~Config()
Definition: Config.cc:10
Represents a set of parameters that can be loaded from a YAML file.
Definition: Config.h:14
ParameterBase * getParameter(const std::string &param_name)
Returns a param via its name.
Definition: Config.cc:42
std::map< std::string, ParameterBase * > ParamMap
Definition: Config.h:18
void addParameter(const std::string &param_name, T &param, ParamPolicy policy=ParamPolicy::Required, std::function< void()> on_loading_success=0)
Definition: Config.h:32
bool loadFromFile(const std::string &yaml_url)
Configure the task from YAML/JSON file. It must contain all the required parameters.
Definition: Config.cc:85
void addParameter(const std::string &param_name, ParameterBase *param, ParamPolicy policy=ParamPolicy::Required, std::function< void()> on_loading_success=0)
Returns true if all params added with have been set.
Definition: Config.cc:20
void print() const
Print all parameters to std::cout.
Definition: Config.cc:52
Definition: CartesianAccelerationPID.h:44
Config(const std::string &config_name)
Definition: Config.cc:6
void onSuccess(std::function< void()> f)
Definition: Config.cc:90
bool areAllRequiredParametersSet() const
Definition: Config.cc:234
This class holds the conversion from a string (YAML string) to the data type.
Definition: Parameter.h:73
bool loadFromString(const std::string &yaml_str)
Configure the task from YAML/JSON string. It must contain all the required parameters.
Definition: Config.cc:95