]> AND Public Git Repository - simgrid.git/blobdiff - src/s4u/s4u_engine.cpp
Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
rename the class objects and C types for the As -> NetZone transition
[simgrid.git] / src / s4u / s4u_engine.cpp
index 3df3b92d57acd5d53e76dd583817dcd82a73ca72..ca018c86ab94b9f0c69f5f02ec7be1c01626cf71 100644 (file)
@@ -5,15 +5,20 @@
 /* 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 "simgrid/simix.h"
+#include "instr/instr_interface.h"
 #include "mc/mc.h"
-#include "simgrid/s4u/As.hpp"
+#include "simgrid/s4u/Mailbox.hpp"
+#include "simgrid/s4u/NetZone.hpp"
 #include "simgrid/s4u/engine.hpp"
-#include "simgrid/s4u/mailbox.hpp"
+#include "simgrid/s4u/host.hpp"
 #include "simgrid/s4u/storage.hpp"
+#include "simgrid/simix.h"
+#include "src/kernel/EngineImpl.hpp"
+#include "src/kernel/routing/NetZoneImpl.hpp"
 
-#include "surf/surf.h"               // routing_platf. FIXME:KILLME. SOON
+#include "src/surf/network_interface.hpp"
 #include "src/surf/surf_routing.hpp" // routing_platf. FIXME:KILLME. SOON
+#include "surf/surf.h"               // routing_platf. FIXME:KILLME. SOON
 
 XBT_LOG_NEW_CATEGORY(s4u,"Log channels of the S4U (Simgrid for you) interface");
 
@@ -26,10 +31,17 @@ Engine *Engine::instance_ = nullptr; /* That singleton is awful, but I don't see
 Engine::Engine(int *argc, char **argv) {
   xbt_assert(s4u::Engine::instance_ == nullptr, "It is currently forbidden to create more than one instance of s4u::Engine");
   s4u::Engine::instance_ = this;
+  pimpl                  = new kernel::EngineImpl();
 
+  TRACE_global_init(argc, argv);
   SIMIX_global_init(argc, argv);
 }
 
+Engine::~Engine()
+{
+  delete pimpl;
+}
+
 Engine *Engine::instance() {
   if (s4u::Engine::instance_ == nullptr)
     new Engine(0,nullptr);
@@ -73,21 +85,21 @@ void Engine::run() {
   }
 }
 
-s4u::As *Engine::rootAs()
+s4u::NetZone* Engine::rootAs()
 {
-  return routing_platf->root_; // FIXME: get the root into the Engine directly (and kill the platf)
+  return pimpl->rootAs_;
 }
 
-static s4u::As *asByNameRecursive(s4u::As *current, const char *name)
+static s4u::NetZone* asByNameRecursive(s4u::NetZone* current, const char* name)
 {
   if(!strcmp(current->name(), name))
     return current;
 
   xbt_dict_cursor_t cursor = nullptr;
   char *key;
-  AS_t elem;
+  NetZone_t elem;
   xbt_dict_foreach(current->children(), cursor, key, elem) {
-    simgrid::s4u::As *tmp = asByNameRecursive(elem, name);
+    simgrid::s4u::NetZone* tmp = asByNameRecursive(elem, name);
     if (tmp != nullptr )
         return tmp;
   }
@@ -95,7 +107,8 @@ static s4u::As *asByNameRecursive(s4u::As *current, const char *name)
 }
 
 /** @brief Retrieve the AS of the given name (or nullptr if not found) */
-As *Engine::asByNameOrNull(const char *name) {
+NetZone* Engine::asByNameOrNull(const char* name)
+{
   return asByNameRecursive(rootAs(),name);
 }