X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0bfafcab47ae9cd7856bd8d129404c33079d6afe..f5f38e5b9cdacbf1ba1705bb7ed592b59f8e8712:/examples/cpp/comm-wait/s4u-comm-wait.cpp diff --git a/examples/cpp/comm-wait/s4u-comm-wait.cpp b/examples/cpp/comm-wait/s4u-comm-wait.cpp index d34d916337..4f882f2474 100644 --- a/examples/cpp/comm-wait/s4u-comm-wait.cpp +++ b/examples/cpp/comm-wait/s4u-comm-wait.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. */ @@ -15,35 +15,33 @@ #include #include #include +namespace sg4 = simgrid::s4u; XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_comm_wait, "Messages specific for this s4u example"); -static void sender(int argc, char** argv) +static void sender(int messages_count, size_t payload_size) { - xbt_assert(argc == 3, "Expecting 2 parameters from the XML deployment file but got %d", argc); - long messages_count = std::stol(argv[1]); /* - number of messages */ - long msg_size = std::stol(argv[2]); /* - message size in bytes */ double sleep_start_time = 5.0; double sleep_test_time = 0; - simgrid::s4u::Mailbox* mbox = simgrid::s4u::Mailbox::by_name("receiver"); + sg4::Mailbox* mbox = sg4::Mailbox::by_name("receiver"); XBT_INFO("sleep_start_time : %f , sleep_test_time : %f", sleep_start_time, sleep_test_time); - simgrid::s4u::this_actor::sleep_for(sleep_start_time); + sg4::this_actor::sleep_for(sleep_start_time); for (int i = 0; i < messages_count; i++) { - std::string msg_content = std::string("Message ") + std::to_string(i); + std::string msg_content = "Message " + std::to_string(i); // Copy the data we send: the 'msg_content' variable is not a stable storage location. // It will be destroyed when this actor leaves the loop, ie before the receiver gets the data auto* payload = new std::string(msg_content); /* Create a communication representing the ongoing communication and then */ - simgrid::s4u::CommPtr comm = mbox->put_async(payload, msg_size); + sg4::CommPtr comm = mbox->put_async(payload, payload_size); XBT_INFO("Send '%s' to '%s'", msg_content.c_str(), mbox->get_cname()); if (sleep_test_time > 0) { /* - "test_time" is set to 0, wait */ while (not comm->test()) { /* - Call test() every "sleep_test_time" otherwise */ - simgrid::s4u::this_actor::sleep_for(sleep_test_time); + sg4::this_actor::sleep_for(sleep_test_time); } } else { comm->wait(); @@ -56,24 +54,24 @@ static void sender(int argc, char** argv) } /* Receiver actor expects 1 argument: its ID */ -static void receiver(int, char**) +static void receiver() { double sleep_start_time = 1.0; double sleep_test_time = 0.1; - simgrid::s4u::Mailbox* mbox = simgrid::s4u::Mailbox::by_name("receiver"); + sg4::Mailbox* mbox = sg4::Mailbox::by_name("receiver"); XBT_INFO("sleep_start_time : %f , sleep_test_time : %f", sleep_start_time, sleep_test_time); - simgrid::s4u::this_actor::sleep_for(sleep_start_time); + sg4::this_actor::sleep_for(sleep_start_time); XBT_INFO("Wait for my first message"); for (bool cont = true; cont;) { std::string* received; - simgrid::s4u::CommPtr comm = mbox->get_async(&received); + sg4::CommPtr comm = mbox->get_async(&received); if (sleep_test_time > 0) { /* - "test_time" is set to 0, wait */ while (not comm->test()) { /* - Call test() every "sleep_test_time" otherwise */ - simgrid::s4u::this_actor::sleep_for(sleep_test_time); + sg4::this_actor::sleep_for(sleep_test_time); } } else { comm->wait(); @@ -88,14 +86,13 @@ static void receiver(int, char**) int main(int argc, char* argv[]) { - xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n", argv[0]); - - simgrid::s4u::Engine e(&argc, argv); - e.register_function("sender", &sender); - e.register_function("receiver", &receiver); + sg4::Engine e(&argc, argv); e.load_platform(argv[1]); - e.load_deployment(argv[2]); + + sg4::Actor::create("sender", e.host_by_name("Tremblay"), sender, 3, 482117300); + sg4::Actor::create("receiver", e.host_by_name("Ruby"), receiver); + e.run(); return 0;