Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Misc Sonar issues.
[simgrid.git] / src / simgrid / module.hpp
index 148daf1e230e029ca0634edce650f51908f73274..9a1d7bc00ae7e700f32acf99a2f9f846d26f4112 100644 (file)
@@ -19,7 +19,7 @@ struct Module {
   const char* description_;
   std::function<void()> init;
   Module(const char* id, const char* desc, std::function<void()> init_fun)
-      : name_(id), description_(desc), init(init_fun)
+      : name_(id), description_(desc), init(std::move(init_fun))
   {
   }
 };
@@ -27,16 +27,19 @@ struct Module {
 class ModuleGroup {
   std::vector<Module> table_;
   const std::string kind_; // either 'plugin' or 'CPU model' or whatever. Used in error messages only
+  std::string opt_name_;
+
 public:
-  ModuleGroup(const std::string& kind) : kind_(kind) {}
+  explicit ModuleGroup(const std::string& kind) : kind_(kind) {}
 
   ModuleGroup& add(const char* id, const char* desc, std::function<void()> init);
   Module const& by_name(const std::string& name) const;
   void help() const;
-  const std::string get_kind() const { return kind_; }
+  const std::string& get_kind() const { return kind_; }
   std::string existing_values() const;
   void create_flag(const std::string& opt_name, const std::string& descr, const std::string& default_value,
                    bool init_now);
+  void init_from_flag_value() const;
 };
 
 }; // namespace simgrid