X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/07e23d67fa051a2507972338c09151e69c1ad2d4..b8df87e176f27b25534f27d7e240defa32ca35bc:/examples/s4u/replay-storage/s4u-replay-storage.cpp diff --git a/examples/s4u/replay-storage/s4u-replay-storage.cpp b/examples/s4u/replay-storage/s4u-replay-storage.cpp index 4300098097..2f85ad6ebd 100644 --- a/examples/s4u/replay-storage/s4u-replay-storage.cpp +++ b/examples/s4u/replay-storage/s4u-replay-storage.cpp @@ -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. */ @@ -16,24 +16,22 @@ static std::unordered_map opened_files; #define ACT_DEBUG(...) \ if (XBT_LOG_ISENABLED(replay_storage, xbt_log_priority_verbose)) { \ - char* NAME = xbt_str_join_array(action, " "); \ + std::string NAME = boost::algorithm::join(action, " "); \ XBT_DEBUG(__VA_ARGS__); \ - xbt_free(NAME); \ } else \ ((void)0) -static void log_action(const char* const* action, double date) +static void log_action(simgrid::xbt::ReplayAction& action, double date) { if (XBT_LOG_ISENABLED(replay_storage, xbt_log_priority_verbose)) { - char* name = xbt_str_join_array(action, " "); - XBT_VERB("%s %f", name, date); - xbt_free(name); + std::string s = boost::algorithm::join(action, " "); + XBT_VERB("%s %f", s.c_str(), date); } } static simgrid::s4u::File* get_file_descriptor(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); } @@ -42,16 +40,8 @@ class Replayer { public: explicit Replayer(std::vector 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()() @@ -60,45 +50,45 @@ public: } /* My actions */ - static void open(const char* const* action) + 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, file_name.c_str()); + 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(const char* const* action) + 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, size); + 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(const char* const* action) + 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, file_name.c_str()); + 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); } }; @@ -113,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("p0"); - e.loadDeployment(argv[2]); + e.load_platform(argv[1]); + e.register_actor("p0"); + e.load_deployment(argv[2]); /* Action registration */ xbt_replay_action_register("open", Replayer::open); @@ -134,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; }