Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
clang-format
[simgrid.git] / examples / cpp / operation-switch-host / s4u-operation-switch-host.cpp
index 5803181..72d52dc 100644 (file)
@@ -4,76 +4,74 @@
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 /* This example demonstrates how to dynamically modify a graph of operations.
- * 
- * Assuming we have two instances of a service placed on different hosts, 
+ *
+ * Assuming we have two instances of a service placed on different hosts,
  * we want to send data alternatively to thoses instances.
  *
  * We consider the following graph:
- * 
+ *
  * comm0 -> exec1 -> comm1
- *     ↳-> exec2 ->comm2 
- * 
+ *     ↳-> exec2 ->comm2
+ *
  * With exec1 and exec2 on different hosts.
  */
 
-#include "simgrid/s4u.hpp"
 #include "simgrid/plugins/operation.hpp"
+#include "simgrid/s4u.hpp"
 
 XBT_LOG_NEW_DEFAULT_CATEGORY(operation_switch_host, "Messages specific for this operation example");
 
 int main(int argc, char* argv[])
 {
-    simgrid::s4u::Engine e(&argc, argv);
-    e.load_platform(argv[1]);
-    simgrid::plugins::Operation::init();
-
-    // Retrieve hosts
-    auto tremblay = e.host_by_name("Tremblay");
-    auto jupiter = e.host_by_name("Jupiter");
-    auto fafard = e.host_by_name("Fafard");
+  simgrid::s4u::Engine e(&argc, argv);
+  e.load_platform(argv[1]);
+  simgrid::plugins::Operation::init();
 
-    // Create operations
-    auto comm0 = simgrid::plugins::CommOp::create("comm0",1e7,tremblay,jupiter);
-    auto exec1 = simgrid::plugins::ExecOp::create("exec1",1e9,jupiter);
-    auto exec2 = simgrid::plugins::ExecOp::create("exec2",1e9,fafard);
-    auto comm1 = simgrid::plugins::CommOp::create("comm1",1e7,jupiter,tremblay);
-    auto comm2 = simgrid::plugins::CommOp::create("comm2",1e7,fafard,tremblay);
+  // Retrieve hosts
+  auto tremblay = e.host_by_name("Tremblay");
+  auto jupiter  = e.host_by_name("Jupiter");
+  auto fafard   = e.host_by_name("Fafard");
 
-    // Create the initial graph by defining dependencies between operations
-    comm0->add_successor(exec2);
-    exec1->add_successor(comm1);
-    exec2->add_successor(comm2);
+  // Create operations
+  auto comm0 = simgrid::plugins::CommOp::create("comm0", 1e7, tremblay, jupiter);
+  auto exec1 = simgrid::plugins::ExecOp::create("exec1", 1e9, jupiter);
+  auto exec2 = simgrid::plugins::ExecOp::create("exec2", 1e9, fafard);
+  auto comm1 = simgrid::plugins::CommOp::create("comm1", 1e7, jupiter, tremblay);
+  auto comm2 = simgrid::plugins::CommOp::create("comm2", 1e7, fafard, tremblay);
 
-    // Add a function to be called when operations end for log purpose
-    std::vector<simgrid::plugins::OperationPtr> v = 
-        {comm0,exec1,exec2,comm1,comm2};
-    for (auto op : v)
-        op->on_end([](simgrid::plugins::Operation* op) {
-            XBT_INFO("Operation %s finished (%d)",op->get_name().c_str(), op->get_count());
-        });
+  // Create the initial graph by defining dependencies between operations
+  comm0->add_successor(exec2);
+  exec1->add_successor(comm1);
+  exec2->add_successor(comm2);
 
-    // Add a function to be called before each executions of comm0
-    // This function modifies the graph of operations by adding or removing
-    // successors to comm0
-    int count = 0;
-    comm0->on_start([&](simgrid::plugins::Operation* op) {
-        if (count % 2 == 0) {
-            comm0->set_destination(jupiter);
-            comm0->add_successor(exec1);
-            comm0->remove_successor(exec2);
-        }
-        else {
-            comm0->set_destination(fafard);
-            comm0->add_successor(exec2);
-            comm0->remove_successor(exec1);
-        }
-        count++;
+  // Add a function to be called when operations end for log purpose
+  std::vector<simgrid::plugins::OperationPtr> v = {comm0, exec1, exec2, comm1, comm2};
+  for (auto op : v)
+    op->on_end([](simgrid::plugins::Operation* op) {
+      XBT_INFO("Operation %s finished (%d)", op->get_name().c_str(), op->get_count());
     });
 
-    // Enqueue four executions for operation comm0
-    comm0->enqueue_execs(4);
+  // Add a function to be called before each executions of comm0
+  // This function modifies the graph of operations by adding or removing
+  // successors to comm0
+  int count = 0;
+  comm0->on_start([&](simgrid::plugins::Operation* op) {
+    if (count % 2 == 0) {
+      comm0->set_destination(jupiter);
+      comm0->add_successor(exec1);
+      comm0->remove_successor(exec2);
+    } else {
+      comm0->set_destination(fafard);
+      comm0->add_successor(exec2);
+      comm0->remove_successor(exec1);
+    }
+    count++;
+  });
+
+  // Enqueue four executions for operation comm0
+  comm0->enqueue_execs(4);
 
-    // Start the simulation
-    e.run();
-    return 0;
+  // Start the simulation
+  e.run();
+  return 0;
 }