Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update copyright lines for 2023.
[simgrid.git] / teshsuite / s4u / storage_client_server / storage_client_server.cpp
index 39b0195..9439fc2 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2013-2020. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2013-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. */
@@ -17,8 +17,8 @@ static void display_disk_properties(const simgrid::s4u::Disk* disk)
   if (not props->empty()) {
     XBT_INFO("  Properties of disk: %s", disk->get_cname());
 
-    for (auto const& elm : *props) {
-      XBT_INFO("    %s->%s", elm.first.c_str(), elm.second.c_str());
+    for (auto const& [key, value] : *props) {
+      XBT_INFO("    %s->%s", key.c_str(), value.c_str());
     }
   } else {
     XBT_INFO("  No property attached.");
@@ -27,19 +27,21 @@ static void display_disk_properties(const simgrid::s4u::Disk* disk)
 
 static sg_size_t write_local_file(const std::string& dest, sg_size_t file_size)
 {
-  simgrid::s4u::File file(dest, nullptr);
-  sg_size_t written = file.write(file_size);
+  auto* file        = simgrid::s4u::File::open(dest, nullptr);
+  sg_size_t written = file->write(file_size);
   XBT_INFO("%llu bytes on %llu bytes have been written by %s on /sd1", written, file_size,
            simgrid::s4u::Actor::self()->get_cname());
+  file->close();
   return written;
 }
 
 static sg_size_t read_local_file(const std::string& src)
 {
-  simgrid::s4u::File file(src, nullptr);
-  sg_size_t file_size = file.size();
-  sg_size_t read      = file.read(file_size);
+  auto* file          = simgrid::s4u::File::open(src, nullptr);
+  sg_size_t file_size = file->size();
+  sg_size_t read      = file->read(file_size);
   XBT_INFO("%s has read %llu on %s", simgrid::s4u::Actor::self()->get_cname(), read, src.c_str());
+  file->close();
   return read;
 }
 
@@ -63,8 +65,8 @@ static void display_disk_content(const simgrid::s4u::Disk* disk)
   XBT_INFO("Print the content of the disk: %s", disk->get_cname());
   const auto* content = disk->extension<simgrid::s4u::FileSystemDiskExt>()->get_content();
   if (not content->empty()) {
-    for (auto const& entry : *content)
-      XBT_INFO("  %s size: %llu bytes", entry.first.c_str(), entry.second);
+    for (auto const& [name, size] : *content)
+      XBT_INFO("  %s size: %llu bytes", name.c_str(), size);
   } else {
     XBT_INFO("  No content.");
   }
@@ -74,10 +76,10 @@ static void get_set_disk_data(simgrid::s4u::Disk* disk)
 {
   XBT_INFO("*** GET/SET DATA for disk: %s ***", disk->get_cname());
 
-  const std::string* data = static_cast<std::string*>(disk->get_data());
+  const std::string* data = disk->get_data<std::string>();
   XBT_INFO("Get data: '%s'", data ? data->c_str() : "No User Data");
   disk->set_data(new std::string("Some data"));
-  data = static_cast<std::string*>(disk->get_data());
+  data = disk->get_data<std::string>();
   XBT_INFO("  Set and get data: '%s'", data->c_str());
   delete data;
 }
@@ -127,16 +129,14 @@ static void server()
 
   XBT_INFO("Server waiting for transfers ...");
   while (true) {
-    const std::string* msg = static_cast<std::string*>(mailbox->get());
+    auto msg = mailbox->get_unique<std::string>();
     if (*msg == "finalize") { // Shutdown ...
-      delete msg;
       break;
     } else { // Receive file to save
       size_t pos              = msg->find(' ');
       std::string dest        = msg->substr(0, pos);
       sg_size_t size_to_write = std::stoull(msg->substr(pos + 1));
       write_local_file(dest, size_to_write);
-      delete msg;
     }
   }
 
@@ -151,11 +151,11 @@ int main(int argc, char* argv[])
   xbt_assert(argc == 2, "Usage: %s platform_file\n", argv[0]);
   e.load_platform(argv[1]);
 
-  simgrid::s4u::Actor::create("server", simgrid::s4u::Host::by_name("alice"), server);
-  simgrid::s4u::Actor::create("client", simgrid::s4u::Host::by_name("bob"), client);
+  simgrid::s4u::Actor::create("server", e.host_by_name("alice"), server);
+  simgrid::s4u::Actor::create("client", e.host_by_name("bob"), client);
 
   e.run();
 
-  XBT_INFO("Simulated time: %g", e.get_clock());
+  XBT_INFO("Simulated time: %g", simgrid::s4u::Engine::get_clock());
   return 0;
 }