X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/32dfd65da61704d4f0f7c5e5c91978489c046f33..575da6eb0c35cfee471dcdce960cc4b30440532d:/include/simgrid/s4u/Engine.hpp diff --git a/include/simgrid/s4u/Engine.hpp b/include/simgrid/s4u/Engine.hpp index 25f87a0a99..1519dd9a86 100644 --- a/include/simgrid/s4u/Engine.hpp +++ b/include/simgrid/s4u/Engine.hpp @@ -27,6 +27,8 @@ class XBT_PUBLIC Engine { friend simgrid::kernel::EngineImpl; public: + /** Constructor, taking only the name of your main function */ + explicit Engine(std::string name); /** Constructor, taking the command line parameters of your main function */ explicit Engine(int* argc, char** argv); /* Currently, only one instance is allowed to exist. This is why you can't copy or move it */ @@ -85,6 +87,7 @@ public: protected: #ifndef DOXYGEN + friend surf::HostImpl; friend Host; friend Link; friend Disk; @@ -118,12 +121,21 @@ public: Link* link_by_name(const std::string& name) const; Link* link_by_name_or_null(const std::string& name) const; + Mailbox* mailbox_by_name_or_create(const std::string& name) const; + size_t get_actor_count() const; std::vector get_all_actors() const; std::vector get_filtered_actors(const std::function& filter) const; std::vector get_all_netpoints() const; kernel::routing::NetPoint* netpoint_by_name_or_null(const std::string& name) const; + /** + * @brief Get netpoint by its name + * + * @param name Netpoint name + * @throw std::invalid_argument if netpoint doesn't exist + */ + kernel::routing::NetPoint* netpoint_by_name(const std::string& name) const; NetZone* get_netzone_root() const; void set_netzone_root(const NetZone* netzone); @@ -137,7 +149,7 @@ public: * @param list List of dependencies for this model (optional) */ void add_model(std::shared_ptr model, - std::vector&& dependencies = {}); + const std::vector& dependencies = {}); /** @brief Get list of all models managed by this engine */ const std::vector& get_all_models() const; @@ -191,6 +203,7 @@ public: private: kernel::EngineImpl* const pimpl; static Engine* instance_; + void initialize(int* argc, char** argv); }; #ifndef DOXYGEN /* Internal use only, no need to expose it */