X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/121e1dc6ee0462b6f6f1f1570b0f48c61ee4ff9a..07eb08dd092e89871ab3ed9fcf41ad0219598e3b:/src/surf/network_interface.hpp diff --git a/src/surf/network_interface.hpp b/src/surf/network_interface.hpp index 2e6d67b55b..082dc35f07 100644 --- a/src/surf/network_interface.hpp +++ b/src/surf/network_interface.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2004-2017. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2004-2018. 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. */ @@ -7,6 +7,7 @@ #define SURF_NETWORK_INTERFACE_HPP_ #include "simgrid/s4u/Link.hpp" +#include "src/kernel/lmm/maxmin.hpp" #include "src/surf/PropertyHolder.hpp" #include "src/surf/surf_interface.hpp" #include "xbt/base.h" @@ -43,7 +44,7 @@ public: * @param latency The initial latency of the Link in seconds * @param policy The sharing policy of the Link */ - virtual LinkImpl* createLink(const char* name, double bandwidth, double latency, + virtual LinkImpl* createLink(const std::string& name, double bandwidth, double latency, e_surf_link_sharing_policy_t policy) = 0; /** @@ -64,7 +65,7 @@ public: * * @param system The lmm_system_t to solve */ - void (*f_networkSolve)(lmm_system_t) = lmm_solve; + void (*f_networkSolve)(lmm_system_t) = simgrid::kernel::lmm::lmm_solve; /** * @brief Get the right multiplicative factor for the latency. @@ -112,9 +113,9 @@ public: * @brief SURF network link interface class * @details A Link represents the link between two [hosts](\ref simgrid::surf::HostImpl) */ -class LinkImpl : public simgrid::surf::Resource, public simgrid::surf::PropertyHolder { +class LinkImpl : public simgrid::kernel::model::Resource, public simgrid::surf::PropertyHolder { protected: - LinkImpl(simgrid::surf::NetworkModel* model, const char* name, lmm_constraint_t constraint); + LinkImpl(simgrid::surf::NetworkModel* model, const std::string& name, kernel::lmm::Constraint* constraint); ~LinkImpl() override; public: @@ -139,7 +140,7 @@ public: virtual void setLatency(double value) = 0; /** @brief The sharing policy is a @{link e_surf_link_sharing_policy_t::EType} (0: FATPIPE, 1: SHARED, 2: - * FULLDUPLEX) */ + * SPLITDUPLEX) */ virtual int sharingPolicy(); /** @brief Check if the Link is used */ @@ -157,7 +158,7 @@ public: tmgr_trace_t trace); /*< setup the trace file with latency events (peak latency changes due to external load). Trace must contain absolute values */ - tmgr_trace_iterator_t stateEvent_ = nullptr; + tmgr_trace_event_t stateEvent_ = nullptr; s_surf_metric_t latency_ = {1.0, 0, nullptr}; s_surf_metric_t bandwidth_ = {1.0, 0, nullptr}; @@ -171,9 +172,10 @@ private: static std::unordered_map* links; public: - static LinkImpl* byName(const char* name); + static LinkImpl* byName(std::string name); static int linksCount(); static LinkImpl** linksList(); + static void linksList(std::vector* linkList); static void linksExit(); }; @@ -202,16 +204,16 @@ public: * @param failed [description] * @param var The lmm variable associated to this Action if it is part of a LMM component */ - NetworkAction(simgrid::surf::Model* model, double cost, bool failed, lmm_variable_t var) + NetworkAction(simgrid::surf::Model* model, double cost, bool failed, kernel::lmm::Variable* var) : simgrid::surf::Action(model, cost, failed, var){}; void setState(simgrid::surf::Action::State state) override; - std::list links(); + virtual std::list links(); - double latency_; - double latCurrent_; - double weight_; - double rate_; + double latency_ = {}; + double latCurrent_ = {}; + double weight_ = {}; + double rate_ = {}; }; } }