X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/f2907d4c4e2bfdd55ae8a7c41711b731d106f668..7981fe568ccfcc3c517bd73ac146d2b59fa85ea2:/src/surf/network_interface.hpp diff --git a/src/surf/network_interface.hpp b/src/surf/network_interface.hpp index 59c93ccc0e..aedbde82f0 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,8 @@ #define SURF_NETWORK_INTERFACE_HPP_ #include "simgrid/s4u/Link.hpp" +#include "src/kernel/lmm/maxmin.hpp" +#include "src/kernel/model/Resource.hpp" #include "src/surf/PropertyHolder.hpp" #include "src/surf/surf_interface.hpp" #include "xbt/base.h" @@ -43,7 +45,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 +66,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 +114,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 +141,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 */ @@ -171,9 +173,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 +205,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; virtual std::list links(); - double latency_; - double latCurrent_; - double weight_; - double rate_; + double latency_ = {}; + double latCurrent_ = {}; + double weight_ = {}; + double rate_ = {}; }; } }