Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
mv examples/s4u examples/cpp
[simgrid.git] / examples / s4u / app-bittorrent / s4u-tracker.cpp
diff --git a/examples/s4u/app-bittorrent/s4u-tracker.cpp b/examples/s4u/app-bittorrent/s4u-tracker.cpp
deleted file mode 100644 (file)
index 8f36504..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Copyright (c) 2012-2021. 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. */
-
-#include "s4u-tracker.hpp"
-#include <algorithm>
-
-XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_bt_tracker, "Messages specific for the tracker");
-
-Tracker::Tracker(std::vector<std::string> args)
-{
-  // Checking arguments
-  xbt_assert(args.size() == 2, "Wrong number of arguments for the tracker.");
-  // Retrieving end time
-  try {
-    deadline = std::stod(args[1]);
-  } catch (const std::invalid_argument&) {
-    throw std::invalid_argument("Invalid deadline:" + args[1]);
-  }
-  xbt_assert(deadline > 0, "Wrong deadline supplied");
-
-  mailbox = simgrid::s4u::Mailbox::by_name(TRACKER_MAILBOX);
-
-  XBT_INFO("Tracker launched.");
-}
-
-void Tracker::operator()()
-{
-  simgrid::s4u::CommPtr comm = nullptr;
-  TrackerQuery* query        = nullptr;
-  while (simgrid::s4u::Engine::get_clock() < deadline) {
-    if (comm == nullptr)
-      comm = mailbox->get_async<TrackerQuery>(&query);
-    if (comm->test()) {
-      // Retrieve the data sent by the peer.
-      xbt_assert(query != nullptr);
-
-      // Add the peer to our peer list, if not already known.
-      known_peers.emplace(query->getPeerId());
-
-      // Sending back peers to the requesting peer
-      auto* answer = new TrackerAnswer(TRACKER_QUERY_INTERVAL);
-      std::set<int>::iterator next_peer;
-      int nb_known_peers = static_cast<int>(known_peers.size());
-      int max_tries      = std::min(MAXIMUM_PEERS, nb_known_peers);
-      int tried          = 0;
-      while (tried < max_tries) {
-        do {
-          next_peer = known_peers.begin();
-          std::advance(next_peer, random.uniform_int(0, nb_known_peers - 1));
-        } while (answer->getPeers().find(*next_peer) != answer->getPeers().end());
-        answer->addPeer(*next_peer);
-        tried++;
-      }
-      query->getReturnMailbox()->put_init(answer, TRACKER_COMM_SIZE)->detach();
-
-      delete query;
-      comm = nullptr;
-    } else {
-      simgrid::s4u::this_actor::sleep_for(1);
-    }
-  }
-  XBT_INFO("Tracker is leaving");
-}