X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/149c63f36e15b8500b1e826bda5138318ff7ba2b..b9625f82f86db0674e911887addce45dca31b57f:/examples/s4u/energy-link/s4u-energy-link.cpp diff --git a/examples/s4u/energy-link/s4u-energy-link.cpp b/examples/s4u/energy-link/s4u-energy-link.cpp index eb7d36ad71..a44c445040 100644 --- a/examples/s4u/energy-link/s4u-energy-link.cpp +++ b/examples/s4u/energy-link/s4u-energy-link.cpp @@ -5,22 +5,21 @@ #include "simgrid/plugins/energy.h" #include "xbt/log.h" +#include "xbt/random.hpp" #include -#include - /* Parameters of the random generation of the flow size */ -static const unsigned long int min_size = 1e6; -static const unsigned long int max_size = 1e9; +static const int min_size = 1e6; +static const int max_size = 1e9; XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_app_energyconsumption, "Messages specific for this s4u example"); static void sender(std::vector args) { xbt_assert(args.size() == 2, "The master function expects 2 arguments."); - int flow_amount = std::stoi(args.at(0)); - double comm_size = std::stod(args.at(1)); - XBT_INFO("Send %.0f bytes, in %d flows", comm_size, flow_amount); + int flow_amount = std::stoi(args.at(0)); + long comm_size = std::stol(args.at(1)); + XBT_INFO("Send %ld bytes, in %d flows", comm_size, flow_amount); simgrid::s4u::Mailbox* mailbox = simgrid::s4u::Mailbox::by_name(std::string("message")); @@ -29,7 +28,7 @@ static void sender(std::vector args) if (flow_amount == 1) { /* - Send the task to the @ref worker */ - char* payload = bprintf("%f", comm_size); + char* payload = bprintf("%ld", comm_size); mailbox->put(payload, comm_size); } else { // Start all comms in parallel, and wait for all completions in one shot @@ -93,16 +92,8 @@ int main(int argc, char* argv[]) if (argc > 3) { if (strcmp(argv[3], "random") == 0) { // We're asked to get a random size - /* Initialize the random number generator */ - std::random_device rd; - std::default_random_engine generator(rd()); - - /* Distribution on which to apply the generator */ - std::uniform_int_distribution distribution(min_size, max_size); - - char* size = bprintf("%lu", distribution(generator)); - argSender.push_back(std::string(size)); - xbt_free(size); + std::string size = std::to_string(simgrid::xbt::random::uniform_int(min_size, max_size)); + argSender.push_back(size); } else { // Not "random" ? Then it should be the size to use argSender.push_back(argv[3]); // Take the datasize from the command line }