Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
useless private
[simgrid.git] / include / simgrid / s4u / Engine.hpp
index 6451084..93b6531 100644 (file)
@@ -27,7 +27,7 @@ namespace s4u {
 class XBT_PUBLIC Engine {
 public:
   /** Constructor, taking the command line parameters of your main function */
-  Engine(int* argc, char** argv);
+  explicit Engine(int* argc, char** argv);
   /** Currently, only one instance is allowed to exist. This is why you can't copy or move it */
   Engine(const Engine&) = delete;
   Engine(Engine&&)      = delete;
@@ -85,11 +85,15 @@ public:
 
 protected:
   friend s4u::Host;
+  friend s4u::Link;
   friend s4u::Storage;
   friend kernel::routing::NetPoint;
   friend kernel::routing::NetZoneImpl;
+  friend kernel::resource::LinkImpl;
   void host_register(std::string name, simgrid::s4u::Host* host);
   void host_unregister(std::string name);
+  void link_register(std::string name, simgrid::s4u::Link* link);
+  void link_unregister(std::string name);
   void storage_register(std::string name, simgrid::s4u::Storage* storage);
   void storage_unregister(std::string name);
   void netpoint_register(simgrid::kernel::routing::NetPoint* card);
@@ -104,6 +108,13 @@ public:
 
   size_t get_link_count();
   std::vector<Link*> get_all_links();
+  std::vector<Link*> get_filtered_links(std::function<bool(Link*)> filter);
+  simgrid::s4u::Link* link_by_name(std::string name);
+  simgrid::s4u::Link* link_by_name_or_null(std::string name);
+
+  size_t get_actor_count();
+  std::vector<ActorPtr> get_all_actors();
+  std::vector<ActorPtr> get_filtered_actors(std::function<bool(ActorPtr)> filter);
 
   size_t get_storage_count();
   std::vector<Storage*> get_all_storages();