X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/149c63f36e15b8500b1e826bda5138318ff7ba2b..b60c8af597ab1859e4b804954e6e6df37e8cff06:/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..38cad52ca8 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 @@ -53,7 +52,7 @@ static void receiver(std::vector args) void* res = mailbox->get(); xbt_free(res); } else { - void** data= new void*[flow_amount]; + auto* data = new void*[flow_amount]; // Start all comms in parallel, and wait for their completion in one shot std::vector comms; @@ -84,30 +83,22 @@ int main(int argc, char* argv[]) std::vector argSender; std::vector argReceiver; if (argc > 2) { - argSender.push_back(argv[2]); // Take the amount of flows from the command line - argReceiver.push_back(argv[2]); + argSender.emplace_back(argv[2]); // Take the amount of flows from the command line + argReceiver.emplace_back(argv[2]); } else { - argSender.push_back("1"); // Default value - argReceiver.push_back("1"); + argSender.emplace_back("1"); // Default value + argReceiver.emplace_back("1"); } 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 + argSender.emplace_back(argv[3]); // Take the datasize from the command line } } else { // No parameter at all? Then use the default value - argSender.push_back("25000"); + argSender.emplace_back("25000"); } simgrid::s4u::Actor::create("sender", simgrid::s4u::Host::by_name("MyHost1"), sender, argSender); simgrid::s4u::Actor::create("receiver", simgrid::s4u::Host::by_name("MyHost2"), receiver, argReceiver);