-/* Copyright (c) 2010-2017. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2010-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. */
XBT_INFO("Sender spec: %s", args[0].c_str());
for (unsigned int test = 1; test <= args[0].size(); test++) {
this_actor::sleep_until(test * 5 - 5);
- char* mboxName = bprintf("Test #%u", test);
- simgrid::s4u::MailboxPtr mbox = simgrid::s4u::Mailbox::byName(mboxName);
+ std::string* mboxName = new std::string("Test #" + std::to_string(test));
+ simgrid::s4u::MailboxPtr mbox = simgrid::s4u::Mailbox::byName(mboxName->c_str());
switch (args[0][test - 1]) {
case 'r':
XBT_INFO("Receiver spec: %s", args[0].c_str());
for (unsigned int test = 1; test <= args[0].size(); test++) {
this_actor::sleep_until(test * 5 - 5);
- char* mboxName = bprintf("Test #%u", test);
- simgrid::s4u::MailboxPtr mbox = simgrid::s4u::Mailbox::byName(mboxName);
+ std::string mboxName = "Test #" + std::to_string(test);
+ simgrid::s4u::MailboxPtr mbox = simgrid::s4u::Mailbox::byName(mboxName.c_str());
void* received = nullptr;
switch (args[0][test - 1]) {
default:
xbt_die("Unknown receiver spec for test %u: '%c'", test, args[0][test - 1]);
}
-
- xbt_assert(strcmp(static_cast<char*>(received), mboxName) == 0);
- xbt_free(received);
- xbt_free(mboxName);
+ std::string* receivedStr = static_cast<std::string*>(received);
+ xbt_assert(*receivedStr == mboxName);
+ delete receivedStr;
XBT_INFO("Test %u OK", test);
}
simgrid::s4u::this_actor::sleep_for(0.5);
std::vector<std::string> argSend{specSend.c_str()};
std::vector<std::string> argRecv{specRecv.c_str()};
- simgrid::s4u::Engine* e = new simgrid::s4u::Engine(&argc, argv);
+ simgrid::s4u::Engine e(&argc, argv);
if (argc < 2)
usage(argv[0], specSend.c_str(), specRecv.c_str());
- e->loadPlatform(argv[1]);
+ e.load_platform(argv[1]);
if (argc >= 3) {
argSend.clear();
}
xbt_assert(argSend.front().size() == argRecv.front().size(), "Sender and receiver spec must be of the same size");
- simgrid::s4u::Host** hosts = sg_host_list();
- simgrid::s4u::Actor::createActor("sender", hosts[0], sender, argSend);
- simgrid::s4u::Actor::createActor("recver", hosts[1], receiver, argRecv);
- xbt_free(hosts);
+ std::vector<simgrid::s4u::Host*> hosts = e.get_all_hosts();
+
+ simgrid::s4u::Actor::create("sender", hosts[0], sender, argSend);
+ simgrid::s4u::Actor::create("recver", hosts[1], receiver, argRecv);
- e->run();
- XBT_INFO("Simulation time %g", e->getClock());
+ e.run();
+ XBT_INFO("Simulation time %g", e.getClock());
- delete e;
return 0;
}