X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/29cd844b650d06df6a7ad935e502db350fb4f8c7..0abff6931a0872390fe17485f39d5538c41353c5:/src/surf/network_wifi.hpp diff --git a/src/surf/network_wifi.hpp b/src/surf/network_wifi.hpp new file mode 100644 index 0000000000..33e672d932 --- /dev/null +++ b/src/surf/network_wifi.hpp @@ -0,0 +1,42 @@ +/* Copyright (c) 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. */ + +#ifndef SURF_NETWORK_WIFI_HPP_ +#define SURF_NETWORK_WIFI_HPP_ + +#include + +#include "network_cm02.hpp" +#include "xbt/string.hpp" + +/*********** + * Classes * + ***********/ + +namespace simgrid { +namespace kernel { +namespace resource { + +class NetworkWifiLink : public NetworkCm02Link { + /** @brief Hold every rates association between host and links (host name, rates id) */ + std::map host_rates_; + + /** @brief A link can have several bandwith attach to it (mostly use by wifi model) */ + std::vector bandwidths_; + +public: + NetworkWifiLink(NetworkCm02Model* model, const std::string& name, std::vector bandwidths, + s4u::Link::SharingPolicy policy, lmm::System* system); + + void set_host_rate(s4u::Host* host, int rate_level); + /** @brief Get the AP rate associated to the host (or -1 if not associated to the AP) */ + double get_host_rate(s4u::Host* host); + s4u::Link::SharingPolicy get_sharing_policy() override; +}; + +} // namespace resource +} // namespace kernel +} // namespace simgrid +#endif /* SURF_NETWORK_WIFI_HPP_ */