Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Split-Duplex: new management
[simgrid.git] / examples / cpp / plugin-prodcons / s4u-plugin-prodcons.cpp
index 0faa27d..d9eb7d8 100644 (file)
@@ -17,21 +17,21 @@ static void ingester(int id, simgrid::plugin::ProducerConsumerPtr<int> pc)
 {
   sg4::this_actor::sleep_for(simgrid::xbt::random::uniform_real(0, 1));
   for (int i = 0; i < 3; i++) {
-    int* data = new int(10 * id + i);
+    auto* data = new int(10 * id + i);
     pc->put(data, 1.2125e6); // last for 0.01s
     XBT_INFO("data sucessfully put: %d", *data);
     sg4::this_actor::sleep_for((3 - i) * simgrid::xbt::random::uniform_real(0, 1));
   }
 
   for (int i = 0; i < 3; i++) {
-    int* data = new int(10 * id + i);
+    auto* data = new int(10 * id + i);
     pc->put_async(data, 1.2125e6); // last for 0.01s
     XBT_INFO("data sucessfully put: %d", *data);
     sg4::this_actor::sleep_for((i + 3) * simgrid::xbt::random::uniform_real(0, 1));
   }
 }
 
-static void retriever(int id, simgrid::plugin::ProducerConsumerPtr<int> pc)
+static void retriever(simgrid::plugin::ProducerConsumerPtr<int> pc)
 {
   sg4::this_actor::sleep_for(simgrid::xbt::random::uniform_real(0, 1));
   for (int i = 0; i < 3; i++) {
@@ -63,11 +63,10 @@ int main(int argc, char* argv[])
     const auto* host = cluster->create_host(hostname, "1Gf");
 
     std::string linkname = std::string("cluster") + "_link_" + std::to_string(i);
-    auto* link_up        = cluster->create_link(linkname + "_UP", "1Gbps");
-    auto* link_down      = cluster->create_link(linkname + "_DOWN", "1Gbps");
+    auto* link           = cluster->create_split_duplex_link(linkname, "1Gbps");
 
-    cluster->add_route(host->get_netpoint(), nullptr, nullptr, nullptr, std::vector<sg4::Link*>{link_up}, false);
-    cluster->add_route(nullptr, host->get_netpoint(), nullptr, nullptr, std::vector<sg4::Link*>{link_down}, false);
+    cluster->add_route(host->get_netpoint(), nullptr, nullptr, nullptr,
+                       std::vector<sg4::LinkInRoute>{{link, sg4::LinkInRoute::Direction::UP}}, true);
   }
 
   auto* router = cluster->create_router("cluster_router");
@@ -83,7 +82,7 @@ int main(int argc, char* argv[])
     sg4::Actor::create("ingester-" + std::to_string(i), sg4::Host::by_name(hostname), &ingester, i, pc);
 
     hostname = std::string("node-") + std::to_string(i + 3) + ".simgrid.org";
-    sg4::Actor::create("retriever-" + std::to_string(i), sg4::Host::by_name(hostname), &retriever, i, pc);
+    sg4::Actor::create("retriever-" + std::to_string(i), sg4::Host::by_name(hostname), &retriever, pc);
   }
 
   e.run();