X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/8ccebd8729f00d1125f343c9dce5b093f40f8cc7..ebc355d0c96552d0bc2aa301d90723490337bca3:/src/surf/network_interface.hpp diff --git a/src/surf/network_interface.hpp b/src/surf/network_interface.hpp index fc01cae905..de80df17ee 100644 --- a/src/surf/network_interface.hpp +++ b/src/surf/network_interface.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2004-2018. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2004-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. */ @@ -10,8 +10,8 @@ #include "simgrid/kernel/resource/Resource.hpp" #include "simgrid/s4u/Link.hpp" #include "src/kernel/lmm/maxmin.hpp" +#include "src/kernel/resource/profile/trace_mgr.hpp" #include "src/surf/PropertyHolder.hpp" -#include "src/surf/trace_mgr.hpp" #include #include @@ -37,6 +37,8 @@ public: static simgrid::config::Flag cfg_crosstraffic; explicit NetworkModel(Model::UpdateAlgo algo) : Model(algo) {} + NetworkModel(const NetworkModel&) = delete; + NetworkModel& operator=(const NetworkModel&) = delete; ~NetworkModel() override; /** @@ -47,8 +49,8 @@ public: * @param latency The initial latency of the Link in seconds * @param policy The sharing policy of the Link */ - virtual LinkImpl* createLink(const std::string& name, double bandwidth, double latency, - s4u::Link::SharingPolicy policy) = 0; + virtual LinkImpl* create_link(const std::string& name, double bandwidth, double latency, + s4u::Link::SharingPolicy policy) = 0; /** * @brief Create a communication between two hosts. @@ -74,7 +76,7 @@ public: * @param size The size of the message. * @return The latency factor. */ - virtual double latencyFactor(double size); + virtual double get_latency_factor(double size); /** * @brief Get the right multiplicative factor for the bandwidth. @@ -86,7 +88,7 @@ public: * @param size The size of the message. * @return The bandwidth factor. */ - virtual double bandwidthFactor(double size); + virtual double get_bandwidth_factor(double size); /** * @brief Get definitive bandwidth. @@ -97,7 +99,7 @@ public: * @param size The size of the message. * @return The new bandwidth. */ - virtual double bandwidthConstraint(double rate, double bound, double size); + virtual double get_bandwidth_constraint(double rate, double bound, double size); double next_occuring_event_full(double now) override; LinkImpl* loopback_ = nullptr; @@ -108,36 +110,38 @@ public: ************/ /** @ingroup SURF_network_interface * @brief SURF network link interface class - * @details A Link represents the link between two [hosts](\ref simgrid::surf::HostImpl) + * @details A Link represents the link between two [hosts](@ref simgrid::surf::HostImpl) */ class LinkImpl : public Resource, public simgrid::surf::PropertyHolder { protected: LinkImpl(NetworkModel* model, const std::string& name, lmm::Constraint* constraint); + LinkImpl(const LinkImpl&) = delete; + LinkImpl& operator=(const LinkImpl&) = delete; ~LinkImpl() override; public: void destroy(); // Must be called instead of the destructor private: - bool currentlyDestroying_ = false; + bool currently_destroying_ = false; public: /** @brief Public interface */ s4u::Link piface_; /** @brief Get the bandwidth in bytes per second of current Link */ - virtual double bandwidth(); + virtual double get_bandwidth(); /** @brief Update the bandwidth in bytes per second of current Link */ - virtual void setBandwidth(double value) = 0; + virtual void set_bandwidth(double value) = 0; /** @brief Get the latency in seconds of current Link */ - virtual double latency(); + virtual double get_latency(); /** @brief Update the latency in seconds of current Link */ - virtual void setLatency(double value) = 0; + virtual void set_latency(double value) = 0; /** @brief The sharing policy */ - virtual s4u::Link::SharingPolicy sharingPolicy(); + virtual s4u::Link::SharingPolicy get_sharing_policy(); /** @brief Check if the Link is used */ bool is_used() override; @@ -147,34 +151,23 @@ public: void on_bandwidth_change(); - virtual void setStateTrace(tmgr_trace_t trace); /*< setup the trace file with states events (ON or OFF). - Trace must contain boolean values. */ - virtual void setBandwidthTrace( - tmgr_trace_t trace); /*< setup the trace file with bandwidth events (peak speed changes due to external load). - Trace must contain percentages (value between 0 and 1). */ - virtual void setLatencyTrace( - tmgr_trace_t trace); /*< setup the trace file with latency events (peak latency changes due to external load). - Trace must contain absolute values */ + virtual void + set_bandwidth_profile(kernel::profile::Profile* profile); /*< setup the profile file with bandwidth events + (peak speed changes due to external load). Trace must + contain percentages (value between 0 and 1). */ + virtual void + set_latency_profile(kernel::profile::Profile* profile); /*< setup the trace file with latency events (peak + latency changes due to external load). Trace must contain + absolute values */ - tmgr_trace_event_t stateEvent_ = nullptr; Metric latency_ = {1.0, 0, nullptr}; Metric bandwidth_ = {1.0, 0, nullptr}; /* User data */ - void* getData() { return userData; } - void setData(void* d) { userData = d; } + void* get_data() { return userdata_; } + void set_data(void* d) { userdata_ = d; } private: - void* userData = nullptr; - - /* List of all links. FIXME: should move to the Engine */ - static std::unordered_map* links; - -public: - static LinkImpl* byName(std::string name); - static int linksCount(); - static LinkImpl** linksList(); - static void linksList(std::vector* linkList); - static void linksExit(); + void* userdata_ = nullptr; }; /********** @@ -182,7 +175,7 @@ public: **********/ /** @ingroup SURF_network_interface * @brief SURF network action interface class - * @details A NetworkAction represents a communication between two [hosts](\ref HostImpl) + * @details A NetworkAction represents a communication between two [hosts](@ref simgrid::surf::HostImpl) */ class NetworkAction : public Action { public: @@ -215,8 +208,8 @@ public: } } } // namespace simgrid -/** \ingroup SURF_models - * \brief The network model +/** @ingroup SURF_models + * @brief The network model */ XBT_PUBLIC_DATA simgrid::kernel::resource::NetworkModel* surf_network_model;