X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/237fd22b56db7d1c67360c37559ce3aab16a002d..40ee10e13b61bfb28374d96ade010a262b5abd44:/examples/cpp/dht-chord/s4u-dht-chord.cpp diff --git a/examples/cpp/dht-chord/s4u-dht-chord.cpp b/examples/cpp/dht-chord/s4u-dht-chord.cpp index 73f797bed5..08934aafaf 100644 --- a/examples/cpp/dht-chord/s4u-dht-chord.cpp +++ b/examples/cpp/dht-chord/s4u-dht-chord.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2010-2021. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2010-2023. 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. */ @@ -7,10 +7,6 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_chord, "Messages specific for this s4u example"); -int nb_bits = 24; -int nb_keys = 0; -int timeout = 50; - int main(int argc, char* argv[]) { simgrid::s4u::Engine e(&argc, argv); @@ -18,30 +14,31 @@ int main(int argc, char* argv[]) "Usage: %s [-nb_bits=n] [-timeout=t] platform_file deployment_file\n" "\tExample: %s ../platforms/cluster_backbone.xml ./s4u-dht-chord_d.xml\n", argv[0], argv[0]); - char** options = &argv[1]; - while (not strncmp(options[0], "-", 1)) { - unsigned int length = strlen("-nb_bits="); - if (not strncmp(options[0], "-nb_bits=", length) && strlen(options[0]) > length) { - nb_bits = static_cast(xbt_str_parse_int(options[0] + length, "Invalid nb_bits parameter")); + std::string platform_file(argv[argc - 2]); + std::string deployment_file(argv[argc - 1]); + int nb_bits = 24; + int timeout = 50; + for (const auto& option : std::vector(argv + 1, argv + argc - 2)) { + if (option.rfind("-nb_bits=", 0) == 0) { + nb_bits = std::stoi(option.substr(option.find('=') + 1)); XBT_DEBUG("Set nb_bits to %d", nb_bits); - } else { - length = strlen("-timeout="); - xbt_assert(strncmp(options[0], "-timeout=", length) == 0 && strlen(options[0]) > length, - "Invalid chord option '%s'", options[0]); - timeout = static_cast(xbt_str_parse_int(options[0] + length, "Invalid timeout parameter")); + } else if (option.rfind("-timeout=", 0) == 0) { + timeout = std::stoi(option.substr(option.find('=') + 1)); XBT_DEBUG("Set timeout to %d", timeout); + } else { + xbt_die("Invalid chord option '%s'", option.c_str()); } - options++; } + int nb_keys = 1U << nb_bits; + XBT_DEBUG("Sets nb_keys to %d", nb_keys); - e.load_platform(options[0]); + e.load_platform(platform_file); /* Global initialization of the Chord simulation. */ - nb_keys = 1U << nb_bits; - XBT_DEBUG("Sets nb_keys to %d", nb_keys); + Node::set_parameters(nb_bits, nb_keys, timeout); e.register_actor("node"); - e.load_deployment(options[1]); + e.load_deployment(deployment_file); e.run();