Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid
[simgrid.git] / include / simgrid / s4u / Host.hpp
index 09c55ec..a959c5c 100644 (file)
@@ -13,7 +13,6 @@
 #include "xbt/Extendable.hpp"
 #include "xbt/signal.hpp"
 #include "xbt/string.hpp"
-#include "xbt/swag.h"
 
 #include "simgrid/forward.h"
 #include "simgrid/s4u/forward.hpp"
@@ -62,11 +61,15 @@ public:
   /** Retrieves an host from its name, or return nullptr */
   static Host* by_name_or_null(std::string name);
   /** Retrieves an host from its name, or die */
+  static s4u::Host* by_name(const char* name);
+  /** Retrieves an host from its name, or die */
   static s4u::Host* by_name(std::string name);
   /** Retrieves the host on which the current actor is running */
   static s4u::Host* current();
 
+  /** Retrieves the name of that host as a C++ string */
   simgrid::xbt::string const& getName() const { return name_; }
+  /** Retrieves the name of that host as a C string */
   const char* getCname() const { return name_.c_str(); }
 
   void actorList(std::vector<ActorPtr> * whereto);
@@ -102,8 +105,8 @@ public:
    */
   std::unordered_map<std::string, Storage*> const& getMountedStorages();
 
-  void routeTo(Host * dest, std::vector<Link*> * links, double* latency);
-  void routeTo(Host * dest, std::vector<surf::LinkImpl*> * links, double* latency);
+  void routeTo(Host* dest, std::vector<Link*>& links, double* latency);
+  void routeTo(Host* dest, std::vector<surf::LinkImpl*>& links, double* latency);
 
   /** Block the calling actor on an execution located on the called host
    *
@@ -112,8 +115,11 @@ public:
    */
   void execute(double flops);
 
+  /** @brief Returns the current computation load (in flops per second) */
+  double getLoad();
+
 private:
-  simgrid::xbt::string name_ = "noname";
+  simgrid::xbt::string name_{"noname"};
   std::unordered_map<std::string, Storage*>* mounts = nullptr; // caching
 
 public: