Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
API improvement in s4u
[simgrid.git] / src / s4u / s4u_netzone.cpp
index 6aa572d..f539136 100644 (file)
@@ -1,12 +1,12 @@
-/* Copyright (c) 2006-2016. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2006-2017. The SimGrid Team. All rights reserved.          */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include "xbt/log.h"
 
+#include "simgrid/s4u/Host.hpp"
 #include "simgrid/s4u/NetZone.hpp"
-#include "simgrid/s4u/host.hpp"
 #include "simgrid/simix.hpp"
 #include "src/kernel/routing/NetPoint.hpp"
 #include "src/surf/network_interface.hpp" // Link FIXME: move to proper header
@@ -71,15 +71,13 @@ NetZone* NetZone::father()
   return father_;
 }
 
-std::vector<s4u::Host*>* NetZone::hosts()
+void NetZone::hosts(std::vector<s4u::Host*>* whereto)
 {
-  if (hosts_.empty()) // Lazy initialization
-    for (auto card : vertices_) {
-      s4u::Host* host = simgrid::s4u::Host::by_name_or_null(card->name());
-      if (host != nullptr)
-        hosts_.push_back(host);
-    }
-  return &hosts_;
+  for (auto card : vertices_) {
+    s4u::Host* host = simgrid::s4u::Host::by_name_or_null(card->name());
+    if (host != nullptr)
+      whereto->push_back(host);
+  }
 }
 
 int NetZone::addComponent(kernel::routing::NetPoint* elm)