X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/fd6c617269e2163d694c4139414c34df72fbec73..039807fd1fb02afb72365fe19a6ad620d1bbf4c7:/examples/cpp/dht-chord/s4u-dht-chord.hpp diff --git a/examples/cpp/dht-chord/s4u-dht-chord.hpp b/examples/cpp/dht-chord/s4u-dht-chord.hpp index 2f8bce5538..ab93cbff06 100644 --- a/examples/cpp/dht-chord/s4u-dht-chord.hpp +++ b/examples/cpp/dht-chord/s4u-dht-chord.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2016-2022. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2016-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. */ @@ -18,10 +18,6 @@ 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; -extern int timeout; - /* Types of tasks exchanged between nodes. */ enum class MessageType { FIND_SUCCESSOR, @@ -50,18 +46,26 @@ public: }; class Node { + inline static int nb_bits_; + inline static int nb_keys_; + inline static int timeout_; + int known_id_ = -1; double start_time_ = -1; double deadline_ = -1; - bool joined = false; + bool joined_ = false; int id_; // my id int pred_id_ = -1; // predecessor id - simgrid::xbt::random::XbtRandom random; // random number generator for this node - sg4::Mailbox* mailbox_; // my mailbox + simgrid::xbt::random::XbtRandom random_; // random number generator for this node + sg4::Mailbox* mailbox_; // my mailbox std::vector fingers_; // finger table,(fingers[0] is my successor) - int next_finger_to_fix; // index of the next finger to fix in fix_fingers() + int next_finger_to_fix_; // index of the next finger to fix in fix_fingers() + + static bool is_in_interval(int id, int start, int end); public: + static void set_parameters(int nb_bits, int nb_keys, int timeout); + explicit Node(std::vector args); Node(const Node&) = delete; Node& operator=(const Node&) = delete;