Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[S4U] Remove the const for now
[simgrid.git] / src / s4u / s4u_host.cpp
index 5342c54..78e9b73 100644 (file)
@@ -1,25 +1,14 @@
-/* Copyright (c) 2006-2017. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2006-2018. 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 <string>
-#include <functional>
-#include <stdexcept>
-
-#include <map>
-
 #include "simgrid/kernel/routing/NetPoint.hpp"
 #include "simgrid/s4u/Engine.hpp"
-#include "simgrid/s4u/Host.hpp"
-#include "simgrid/s4u/Storage.hpp"
-#include "simgrid/simix.hpp"
-#include "src/msg/msg_private.hpp"
-#include "src/simix/ActorImpl.hpp"
-#include "src/simix/smx_private.hpp"
+#include "src/simix/smx_host_private.hpp"
 #include "src/surf/HostImpl.hpp"
-#include "src/surf/cpu_interface.hpp"
-#include "xbt/log.h"
+
+#include <string>
 
 XBT_LOG_EXTERNAL_CATEGORY(surf_route);
 
@@ -154,14 +143,14 @@ void Host::actorList(std::vector<ActorPtr>* whereto)
  */
 void Host::routeTo(Host* dest, std::vector<Link*>& links, double* latency)
 {
-  std::vector<surf::LinkImpl*> linkImpls;
+  std::vector<kernel::resource::LinkImpl*> linkImpls;
   this->routeTo(dest, linkImpls, latency);
-  for (surf::LinkImpl* const& l : linkImpls)
+  for (kernel::resource::LinkImpl* const& l : linkImpls)
     links.push_back(&l->piface_);
 }
 
 /** @brief Just like Host::routeTo, but filling an array of link implementations */
-void Host::routeTo(Host* dest, std::vector<surf::LinkImpl*>& links, double* latency)
+void Host::routeTo(Host* dest, std::vector<kernel::resource::LinkImpl*>& links, double* latency)
 {
   simgrid::kernel::routing::NetZoneImpl::get_global_route(pimpl_netpoint, dest->pimpl_netpoint, links, latency);
   if (XBT_LOG_ISENABLED(surf_route, xbt_log_priority_debug)) {
@@ -197,6 +186,13 @@ void Host::getProcesses(std::vector<ActorPtr>* list)
   }
 }
 
+/** @brief Returns how many actors have been launched on this host */
+// FIXME: Specify whether the user should expect only non-daemon actors here!
+int Host::get_actor_count()
+{
+  return this->extension<simgrid::simix::Host>()->process_list.size();
+}
+
 /** @brief Get the peak processor speed (in flops/s), at the specified pstate  */
 double Host::getPstateSpeed(int pstate_index)
 {
@@ -205,7 +201,7 @@ double Host::getPstateSpeed(int pstate_index)
   });
 }
 
-/** @brief Get the peak processor speed (in flops/s), at the current pstate */
+/** @brief Get the peak processor speed (under full load (=1.0), in flops/s), at the current pstate */
 double Host::getSpeed()
 {
   return pimpl_cpu->getSpeed(1.0);