X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ceb611208adf5d508d4c111cd542337a4ac906be..0450cc3993fd6914ee4c9c47ee8261a250b58cd7:/src/simgrid/module.hpp diff --git a/src/simgrid/module.hpp b/src/simgrid/module.hpp index 148daf1e23..771fe09c92 100644 --- a/src/simgrid/module.hpp +++ b/src/simgrid/module.hpp @@ -19,7 +19,7 @@ struct Module { const char* description_; std::function init; Module(const char* id, const char* desc, std::function 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 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 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 @@ -101,4 +104,6 @@ inline auto& simgrid_host_models() // Function to avoid static initialization or return models; } +XBT_PUBLIC void simgrid_vm_model_init_HL13(); + #endif