Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
further snake_case s4u::Engine
[simgrid.git] / examples / s4u / app-bittorrent / s4u-bittorrent.cpp
1 /* Copyright (c) 2012-2018. The SimGrid Team.
2  * All rights reserved.                                                     */
3
4 /* This program is free software; you can redistribute it and/or modify it
5  * under the terms of the license (GNU LGPL) which comes with this package. */
6
7 #include "s4u-bittorrent.hpp"
8 #include "s4u-peer.hpp"
9 #include "s4u-tracker.hpp"
10
11 simgrid::xbt::Extension<simgrid::s4u::Host, HostBittorrent> HostBittorrent::EXTENSION_ID;
12
13 int main(int argc, char* argv[])
14 {
15   simgrid::s4u::Engine e(&argc, argv);
16
17   /* Check the arguments */
18   xbt_assert(argc > 2, "Usage: %s platform_file deployment_file", argv[0]);
19
20   e.load_platform(argv[1]);
21
22   /* Install our extension on all existing hosts */
23   HostBittorrent::EXTENSION_ID = simgrid::s4u::Host::extension_create<HostBittorrent>();
24   std::vector<simgrid::s4u::Host*> list = simgrid::s4u::Engine::getInstance()->get_all_hosts();
25   for (auto const& host : list)
26     host->extension_set(new HostBittorrent(host));
27
28   e.register_actor<Tracker>("tracker");
29   e.register_actor<Peer>("peer");
30   e.load_deployment(argv[2]);
31
32   e.run();
33
34   return 0;
35 }