Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
move the routing logic to its own directory
[simgrid.git] / src / surf / sg_platf.cpp
index 036b9ca..8796ae5 100644 (file)
 #include "src/surf/network_interface.hpp"
 #include "surf/surf_routing.h" // FIXME: brain dead public header
 
-#include "src/surf/AsImpl.hpp"
-#include "src/surf/AsCluster.hpp"
-#include "src/surf/AsClusterTorus.hpp"
-#include "src/surf/AsClusterFatTree.hpp"
-#include "src/surf/AsClusterDragonfly.hpp"
-#include "src/surf/AsDijkstra.hpp"
-#include "src/surf/AsFloyd.hpp"
-#include "src/surf/AsFull.hpp"
-#include "src/surf/AsNone.hpp"
-#include "src/surf/AsVivaldi.hpp"
+#include "src/routing/AsImpl.hpp"
+#include "src/routing/AsCluster.hpp"
+#include "src/routing/AsClusterTorus.hpp"
+#include "src/routing/AsClusterFatTree.hpp"
+#include "src/routing/AsClusterDragonfly.hpp"
+#include "src/routing/AsDijkstra.hpp"
+#include "src/routing/AsFloyd.hpp"
+#include "src/routing/AsFull.hpp"
+#include "src/routing/AsNone.hpp"
+#include "src/routing/AsVivaldi.hpp"
 
 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_parse);
 
@@ -570,14 +570,15 @@ void sg_platf_new_process(sg_platf_process_cbarg_t process)
     msg->data[msg->used-3]='\0';
     xbt_die("%s", msg->data);
   }
-  xbt_main_func_t parse_code = SIMIX_get_registered_function(process->function);
-  xbt_assert(parse_code, "Function '%s' unknown", process->function);
+  simgrid::simix::ActorCodeFactory& factory = SIMIX_get_actor_code_factory(process->function);
+  xbt_assert(factory, "Function '%s' unknown", process->function);
 
   double start_time = process->start_time;
   double kill_time  = process->kill_time;
   int auto_restart = process->on_failure == SURF_PROCESS_ON_FAILURE_DIE ? 0 : 1;
 
-  std::function<void()> code = simgrid::xbt::wrapMain(parse_code, process->argc, process->argv);
+  std::vector<std::string> args(process->argv, process->argv + process->argc);
+  std::function<void()> code = factory(std::move(args));
 
   smx_process_arg_t arg = nullptr;
   smx_process_t process_created = nullptr;