X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a119bf80e0223355fb2b6addb71abd562f36c1d7..6157f90cc9d3cce63b341338c15e91af8ccd6347:/examples/s4u/replay-comm/s4u-replay-comm.cpp diff --git a/examples/s4u/replay-comm/s4u-replay-comm.cpp b/examples/s4u/replay-comm/s4u-replay-comm.cpp index 4c5db1efdc..c9ee2550c6 100644 --- a/examples/s4u/replay-comm/s4u-replay-comm.cpp +++ b/examples/s4u/replay-comm/s4u-replay-comm.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2009-2017. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2009-2018. 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. */ @@ -6,24 +6,23 @@ #include "simgrid/s4u.hpp" #include "xbt/replay.hpp" #include "xbt/str.h" +#include #include XBT_LOG_NEW_DEFAULT_CATEGORY(replay_comm, "Messages specific for this msg example"); #define ACT_DEBUG(...) \ - if (XBT_LOG_ISENABLED(replay_comm, xbt_log_priority_verbose)) { \ - char* NAME = xbt_str_join_array(action, " "); \ + if (XBT_LOG_ISENABLED(replay_comm, xbt_log_priority_verbose)) { \ + 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_comm, 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); } } @@ -49,36 +48,37 @@ public: } /* My actions */ - static void compute(const char* const* action) + static void compute(simgrid::xbt::ReplayAction& action) { double amount = std::stod(action[2]); double clock = simgrid::s4u::Engine::getClock(); - ACT_DEBUG("Entering %s", NAME); + ACT_DEBUG("Entering %s", NAME.c_str()); simgrid::s4u::this_actor::execute(amount); log_action(action, simgrid::s4u::Engine::getClock() - clock); } - static void send(const char* const* action) + static void send(simgrid::xbt::ReplayAction& action) { double size = std::stod(action[3]); std::string* payload = new std::string(action[3]); double clock = simgrid::s4u::Engine::getClock(); - simgrid::s4u::MailboxPtr to = simgrid::s4u::Mailbox::byName(simgrid::s4u::this_actor::getName() + "_" + action[2]); - ACT_DEBUG("Entering Send: %s (size: %g) -- Actor %s on mailbox %s", NAME, size, - simgrid::s4u::this_actor::getCname(), to->getCname()); + simgrid::s4u::MailboxPtr to = simgrid::s4u::Mailbox::byName(simgrid::s4u::this_actor::get_name() + "_" + action[2]); + ACT_DEBUG("Entering Send: %s (size: %g) -- Actor %s on mailbox %s", NAME.c_str(), size, + simgrid::s4u::this_actor::get_cname(), to->get_cname()); to->put(payload, size); delete payload; log_action(action, simgrid::s4u::Engine::getClock() - clock); } - static void recv(const char* const* action) + static void recv(simgrid::xbt::ReplayAction& action) { double clock = simgrid::s4u::Engine::getClock(); simgrid::s4u::MailboxPtr from = - simgrid::s4u::Mailbox::byName(std::string(action[2]) + "_" + simgrid::s4u::this_actor::getName()); + simgrid::s4u::Mailbox::byName(std::string(action[2]) + "_" + simgrid::s4u::this_actor::get_name()); - ACT_DEBUG("Receiving: %s -- Actor %s on mailbox %s", NAME, simgrid::s4u::this_actor::getCname(), from->getCname()); + ACT_DEBUG("Receiving: %s -- Actor %s on mailbox %s", NAME.c_str(), simgrid::s4u::this_actor::get_cname(), + from->get_cname()); from->get(); log_action(action, simgrid::s4u::Engine::getClock() - clock); }