Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
MC: complete workaround in the error msg seen on modern systems
[simgrid.git] / examples / s4u / replay-storage / s4u-replay-storage.cpp
index 3d69a72..a20bd42 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2017-2018. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2017-2019. 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. */
@@ -29,9 +29,9 @@ static void log_action(simgrid::xbt::ReplayAction& action, double date)
   }
 }
 
-static simgrid::s4u::File* get_file_descriptor(std::string file_name)
+static simgrid::s4u::File* get_file_descriptor(const std::string& file_name)
 {
-  std::string full_name = simgrid::s4u::this_actor::getName() + ":" + file_name;
+  std::string full_name = simgrid::s4u::this_actor::get_name() + ":" + file_name;
 
   return opened_files.at(full_name);
 }
@@ -40,16 +40,8 @@ class Replayer {
 public:
   explicit Replayer(std::vector<std::string> args)
   {
-    int argc;
-    char* argv[2];
-    argv[0] = &args.at(0)[0];
-    if (args.size() == 1) {
-      argc = 1;
-    } else {
-      argc    = 2;
-      argv[1] = &args.at(1)[0];
-    }
-    simgrid::xbt::replay_runner(argc, argv);
+    const char* actor_name = args[0].c_str();
+    simgrid::xbt::replay_runner(actor_name, nullptr);
   }
 
   void operator()()
@@ -61,42 +53,42 @@ public:
   static void open(simgrid::xbt::ReplayAction& action)
   {
     std::string file_name = action[2];
-    double clock          = simgrid::s4u::Engine::getClock();
-    std::string full_name = simgrid::s4u::this_actor::getName() + ":" + file_name;
+    double clock          = simgrid::s4u::Engine::get_clock();
+    std::string full_name = simgrid::s4u::this_actor::get_name() + ":" + file_name;
 
     ACT_DEBUG("Entering Open: %s (filename: %s)", NAME.c_str(), file_name.c_str());
     simgrid::s4u::File* file = new simgrid::s4u::File(file_name, NULL);
 
     opened_files.insert({full_name, file});
 
-    log_action(action, simgrid::s4u::Engine::getClock() - clock);
+    log_action(action, simgrid::s4u::Engine::get_clock() - clock);
   }
 
   static void read(simgrid::xbt::ReplayAction& action)
   {
     std::string file_name = action[2];
     sg_size_t size        = std::stoul(action[3]);
-    double clock          = simgrid::s4u::Engine::getClock();
+    double clock          = simgrid::s4u::Engine::get_clock();
 
     simgrid::s4u::File* file = get_file_descriptor(file_name);
 
     ACT_DEBUG("Entering Read: %s (size: %llu)", NAME.c_str(), size);
     file->read(size);
 
-    log_action(action, simgrid::s4u::Engine::getClock() - clock);
+    log_action(action, simgrid::s4u::Engine::get_clock() - clock);
   }
 
   static void close(simgrid::xbt::ReplayAction& action)
   {
     std::string file_name = action[2];
-    double clock          = simgrid::s4u::Engine::getClock();
+    double clock          = simgrid::s4u::Engine::get_clock();
 
     simgrid::s4u::File* file = get_file_descriptor(file_name);
 
     ACT_DEBUG("Entering Close: %s (filename: %s)", NAME.c_str(), file_name.c_str());
     delete file;
 
-    log_action(action, simgrid::s4u::Engine::getClock() - clock);
+    log_action(action, simgrid::s4u::Engine::get_clock() - clock);
   }
 };
 
@@ -111,10 +103,9 @@ int main(int argc, char* argv[])
                        "\texample: %s platform.xml deployment.xml",
              argv[0], argv[0], argv[0]);
 
-  e.loadPlatform(argv[1]);
-  e.registerDefault(&simgrid::xbt::replay_runner);
-  e.registerFunction<Replayer>("p0");
-  e.loadDeployment(argv[2]);
+  e.load_platform(argv[1]);
+  e.register_actor<Replayer>("p0");
+  e.load_deployment(argv[2]);
 
   /*   Action registration */
   xbt_replay_action_register("open", Replayer::open);
@@ -132,7 +123,7 @@ int main(int argc, char* argv[])
     simgrid::xbt::action_fs = nullptr;
   }
 
-  XBT_INFO("Simulation time %g", e.getClock());
+  XBT_INFO("Simulation time %g", e.get_clock());
 
   return 0;
 }