Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Use C++ types instead of c-style arrays.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Thu, 8 Oct 2020 14:25:21 +0000 (16:25 +0200)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Thu, 8 Oct 2020 14:26:49 +0000 (16:26 +0200)
examples/s4u/app-bittorrent/s4u-peer.cpp
examples/s4u/network-wifi/s4u-network-wifi.cpp
examples/smpi/smpi_s4u_masterworker/masterworker_mailbox_smpi.cpp

index 1b34b49..2fa42dc 100644 (file)
@@ -4,6 +4,7 @@
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include <algorithm>
+#include <array>
 #include <climits>
 
 #include "s4u-peer.hpp"
@@ -114,7 +115,8 @@ void Peer::sendHandshakeToAllPeers()
 
 void Peer::sendMessage(simgrid::s4u::Mailbox* mailbox, e_message_type type, uint64_t size)
 {
-  const char* type_names[6] = {"HANDSHAKE", "CHOKE", "UNCHOKE", "INTERESTED", "NOTINTERESTED", "CANCEL"};
+  constexpr std::array<const char*, 6> type_names{
+      {"HANDSHAKE", "CHOKE", "UNCHOKE", "INTERESTED", "NOTINTERESTED", "CANCEL"}};
   XBT_DEBUG("Sending %s to %s", type_names[type], mailbox->get_cname());
   mailbox->put_init(new Message(type, id, bitfield_, mailbox_), size)->detach();
 }
@@ -283,8 +285,8 @@ void Peer::updateActivePeersSet(Connection* remote_peer)
 
 void Peer::handleMessage()
 {
-  const char* type_names[10] = {"HANDSHAKE", "CHOKE",    "UNCHOKE", "INTERESTED", "NOTINTERESTED",
-                                "HAVE",      "BITFIELD", "REQUEST", "PIECE",      "CANCEL"};
+  constexpr std::array<const char*, 10> type_names{{"HANDSHAKE", "CHOKE", "UNCHOKE", "INTERESTED", "NOTINTERESTED",
+                                                    "HAVE", "BITFIELD", "REQUEST", "PIECE", "CANCEL"}};
 
   XBT_DEBUG("Received a %s message from %s", type_names[message->type], message->return_mailbox->get_cname());
 
index a4ac300..d8c406c 100644 (file)
@@ -14,8 +14,8 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_network_wifi, "Messages specific for this s4u e
 static void sender(simgrid::s4u::Mailbox* mailbox, int data_size)
 {
   XBT_INFO("Send a message to the other station.");
-  static char message[] = "message";
-  mailbox->put(message, data_size);
+  static std::string message = "message";
+  mailbox->put(&message, data_size);
   XBT_INFO("Done.");
 }
 static void receiver(simgrid::s4u::Mailbox* mailbox)
index 76afde3..c81e697 100644 (file)
@@ -6,6 +6,7 @@
 #include "mpi.h"
 #include "simgrid/s4u.hpp"
 
+#include <array>
 #include <cstdio> /* snprintf */
 
 XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test, "Messages specific for this msg example");
@@ -68,11 +69,11 @@ static void master_mpi(int argc, char* argv[])
   int rank;
   MPI_Comm_rank(MPI_COMM_WORLD, &rank);
   XBT_INFO("here for rank %d", rank);
-  int test[1000] = {rank};
+  std::array<int, 1000> test{{rank}};
   if (rank == 0)
-    MPI_Send(&test, 1000, MPI_INT, 1, 1, MPI_COMM_WORLD);
+    MPI_Send(test.data(), 1000, MPI_INT, 1, 1, MPI_COMM_WORLD);
   else
-    MPI_Recv(&test, 1000, MPI_INT, 0, 1, MPI_COMM_WORLD, MPI_STATUSES_IGNORE);
+    MPI_Recv(test.data(), 1000, MPI_INT, 0, 1, MPI_COMM_WORLD, MPI_STATUSES_IGNORE);
 
   XBT_INFO("After comm %d", rank);
   MPI_Finalize();