Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
kill a stupid function. Let's do regular C++
[simgrid.git] / src / s4u / s4u_host.cpp
index 66a13a9..3181507 100644 (file)
@@ -20,7 +20,7 @@
 #include "simgrid/s4u/host.hpp"
 #include "simgrid/s4u/storage.hpp"
 
-xbt_dict_t host_list = nullptr; // FIXME: make it a static field of Host
+xbt_dict_t host_list = nullptr; // FIXME: move it to Engine
 
 int MSG_HOST_LEVEL = -1;
 int USER_HOST_LEVEL = -1;
@@ -40,6 +40,8 @@ simgrid::xbt::signal<void(Host&)> Host::onStateChange;
 Host::Host(const char* name)
   : name_(name)
 {
+  xbt_assert(sg_host_by_name(name) == nullptr, "Refusing to create a second host named '%s'.", name);
+  xbt_dict_set(host_list, name, this, nullptr);
 }
 
 Host::~Host() {
@@ -65,15 +67,6 @@ Host* Host::by_name_or_null(const char* name)
     });
   return (Host*) xbt_dict_get_or_null(host_list, name);
 }
-Host* Host::by_name_or_create(const char* name)
-{
-  Host* host = by_name_or_null(name);
-  if (host == nullptr) {
-    host = new Host(name);
-    xbt_dict_set(host_list, name, host, nullptr);
-  }
-  return host;
-}
 
 Host *Host::current(){
   smx_actor_t smx_proc = SIMIX_process_self();