X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/04cb8833befbe07b6b94ff0cae98bc17b78724e3..82fd162ad0b5fc51a715b6e6e6df55bb52a18b44:/src/surf/surf_interface.hpp diff --git a/src/surf/surf_interface.hpp b/src/surf/surf_interface.hpp index f544d2f4c9..0d3c6fd9f1 100644 --- a/src/surf/surf_interface.hpp +++ b/src/surf/surf_interface.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2004-2016. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2004-2017. 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. */ @@ -13,7 +13,9 @@ #include "xbt/str.h" #include +#include #include +#include #define NO_MAX_DURATION -1.0 @@ -23,12 +25,13 @@ /* user-visible parameters */ extern XBT_PRIVATE double sg_tcp_gamma; -extern XBT_PRIVATE double sg_sender_gap; extern XBT_PRIVATE double sg_latency_factor; extern XBT_PRIVATE double sg_bandwidth_factor; extern XBT_PRIVATE double sg_weight_S_parameter; extern XBT_PRIVATE int sg_network_crosstraffic; extern XBT_PRIVATE std::vector surf_path; +extern XBT_PRIVATE std::unordered_map traces_set_list; +extern XBT_PRIVATE std::set watched_hosts; extern "C" { XBT_PUBLIC(double) surf_get_clock(); @@ -38,9 +41,6 @@ XBT_PUBLIC(double) surf_get_clock(); */ XBT_PUBLIC_DATA(std::vector) host_that_restart; - -extern XBT_PRIVATE double sg_sender_gap; - namespace simgrid { namespace surf { @@ -61,12 +61,6 @@ enum heap_action_type{ NOTSET }; -/********* - * Trace * - *********/ -/* For the trace and trace:connect tag (store their content till the end of the parsing) */ -XBT_PUBLIC_DATA(xbt_dict_t) traces_set_list; - /********** * Action * **********/ @@ -124,8 +118,12 @@ public: /** @brief Destructor */ virtual ~Action(); - /** @brief Mark that the action is now finished */ - void finish(); + /** + * @brief Mark that the action is now finished + * + * @param state the new [state](\ref simgrid::surf::Action::State) of the current Action + */ + void finish(Action::State state); /** @brief Get the [state](\ref simgrid::surf::Action::State) of the current Action */ Action::State getState(); /**< get the state*/ @@ -200,9 +198,9 @@ public: void setCategory(const char *category); /** @brief Get the priority of the current Action */ - double getPriority() {return priority_;}; + double getPriority() { return sharingWeight_; }; /** @brief Set the priority of the current Action */ - virtual void setPriority(double priority); + virtual void setSharingWeight(double priority); /** @brief Get the state set in which the action is */ ActionList* getStateSet() {return stateSet_;}; @@ -213,7 +211,7 @@ public: protected: ActionList* stateSet_; - double priority_ = 1.0; /**< priority (1.0 by default) */ + double sharingWeight_ = 1.0; /**< priority (1.0 by default) */ int refcount_ = 1; double remains_; /**< How much of that cost remains to be done in the currently running task */ double maxDuration_ = NO_MAX_DURATION; /*< max_duration (may fluctuate until the task is completed) */ @@ -233,13 +231,12 @@ public: void heapInsert(xbt_heap_t heap, double key, enum heap_action_type hat); void heapRemove(xbt_heap_t heap); void heapUpdate(xbt_heap_t heap, double key, enum heap_action_type hat); - void updateIndexHeap(int i); + virtual void updateIndexHeap(int i); lmm_variable_t getVariable() {return variable_;} double getLastUpdate() {return lastUpdate_;} void refreshLastUpdate() {lastUpdate_ = surf_get_clock();} enum heap_action_type getHat() {return hat_;} bool is_linked() {return action_lmm_hook.is_linked();} - void gapRemove(); protected: lmm_variable_t variable_ = nullptr; @@ -370,7 +367,7 @@ public: * @param name The name of the Resource * @param constraint The lmm constraint associated to this Resource if it is part of a LMM component */ - Resource(Model *model, const char *name, lmm_constraint_t constraint); + Resource(Model * model, const std::string& name, lmm_constraint_t constraint); virtual ~Resource(); @@ -419,13 +416,9 @@ protected: } namespace std { - template <> - struct hash - { - std::size_t operator()(const simgrid::surf::Resource& r) const - { - return (std::size_t) xbt_str_hash(r.cname()); - } +template <> class hash { +public: + std::size_t operator()(const simgrid::surf::Resource& r) const { return (std::size_t)xbt_str_hash(r.cname()); } }; }