Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Ensure field is initialized.
[simgrid.git] / examples / s4u / dht-chord / s4u-dht-chord.hpp
index ea6e86b..ba0ac1f 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2016-2018. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2016-2019. 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. */
@@ -8,15 +8,14 @@
 #include "simgrid/s4u.hpp"
 #include <string>
 #include <xbt/RngStream.h>
-#include <xbt/ex.hpp>
 #include <xbt/str.h>
 
-#define MAX_SIMULATION_TIME 1000
-#define PERIODIC_STABILIZE_DELAY 20
-#define PERIODIC_FIX_FINGERS_DELAY 120
-#define PERIODIC_CHECK_PREDECESSOR_DELAY 120
-#define PERIODIC_LOOKUP_DELAY 10
-#define SLEEP_DELAY 4.9999
+constexpr double MAX_SIMULATION_TIME              = 1000;
+constexpr double PERIODIC_STABILIZE_DELAY         = 20;
+constexpr double PERIODIC_FIX_FINGERS_DELAY       = 120;
+constexpr double PERIODIC_CHECK_PREDECESSOR_DELAY = 120;
+constexpr double PERIODIC_LOOKUP_DELAY            = 10;
+constexpr double SLEEP_DELAY                      = 4.9999;
 
 extern int nb_bits;
 extern int nb_keys;
@@ -34,6 +33,8 @@ public:
     std::string descr = std::string("RngSream<") + host->get_cname() + ">";
     stream_           = RngStream_CreateStream(descr.c_str());
   }
+  HostChord(const HostChord&) = delete;
+  HostChord& operator=(const HostChord&) = delete;
 
   ~HostChord() { RngStream_DeleteStream(&stream_); };
 
@@ -60,7 +61,7 @@ public:
   int request_id     = -1;            // id (used by some types of messages)
   int request_finger = 1;             // finger parameter (used by some types of messages)
   int answer_id      = -1;            // answer (used by some types of messages)
-  simgrid::s4u::MailboxPtr answer_to; // mailbox to send an answer to (if any)
+  simgrid::s4u::Mailbox* answer_to = nullptr;       // mailbox to send an answer to (if any)
 
   explicit ChordMessage(e_message_type_t type)
       : type(type), issuer_host_name(simgrid::s4u::this_actor::get_host()->get_name())
@@ -79,7 +80,7 @@ class Node {
   bool joined        = false;
   int id_;                           // my id
   int pred_id_ = -1;                 // predecessor id
-  simgrid::s4u::MailboxPtr mailbox_; // my mailbox
+  simgrid::s4u::Mailbox* mailbox_;   // my mailbox
   int* fingers_;                     // finger table,(fingers[0] is my successor)
   int next_finger_to_fix;            // index of the next finger to fix in fix_fingers()
   RngStream stream;