X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/71980d9754a6693a769dce2f1e55d92103b46b5e..7fb4337fa68b21ac48b0160cc9461c5a87199598:/src/surf/surf_interface.hpp diff --git a/src/surf/surf_interface.hpp b/src/surf/surf_interface.hpp index 937297032b..c397b6bb51 100644 --- a/src/surf/surf_interface.hpp +++ b/src/surf/surf_interface.hpp @@ -6,6 +6,8 @@ #ifndef SURF_MODEL_H_ #define SURF_MODEL_H_ +#include + #include #include #include @@ -38,6 +40,11 @@ extern XBT_PRIVATE xbt_dynar_t surf_path; extern "C" { XBT_PUBLIC(double) surf_get_clock(void); } +/** \ingroup SURF_simulation + * \brief List of hosts that have just restarted and whose autorestart process should be restarted. + */ +XBT_PUBLIC_DATA(std::vector) host_that_restart; + extern XBT_PRIVATE double sg_sender_gap; @@ -78,7 +85,10 @@ XBT_PUBLIC_DATA(xbt_dict_t) traces_set_list; XBT_PRIVATE void surf_action_lmm_update_index_heap(void *action, int i); -XBT_PUBLIC_DATA(xbt_dynar_t) all_existing_models; +/** \ingroup SURF_models + * \brief List of initialized models + */ +XBT_PUBLIC_DATA(std::vector*) all_existing_models; namespace simgrid { namespace surf { @@ -109,7 +119,7 @@ private: * @brief Common initializations for the constructors */ void initialize(simgrid::surf::Model *model, double cost, bool failed, - lmm_variable_t var = NULL); + lmm_variable_t var = nullptr); public: /** @@ -217,7 +227,7 @@ public: /** @brief Get the state set in which the action is */ ActionList* getStateSet() {return stateSet_;}; - s_xbt_swag_hookup_t stateHookup_ = {NULL,NULL}; + s_xbt_swag_hookup_t stateHookup_ = {nullptr,nullptr}; simgrid::surf::Model *getModel() {return model_;} @@ -231,11 +241,11 @@ protected: private: double start_; /**< start time */ - char *category_ = NULL; /**< tracing category for categorized resource utilization monitoring */ + char *category_ = nullptr; /**< tracing category for categorized resource utilization monitoring */ double cost_; simgrid::surf::Model *model_; - void *data_ = NULL; /**< for your convenience */ + void *data_ = nullptr; /**< for your convenience */ /* LMM */ public: @@ -267,6 +277,13 @@ typedef boost::intrusive::member_hook< typedef boost::intrusive::list ActionLmmList; typedef ActionLmmList* ActionLmmListPtr; +/******************** + * Helper functions * + ********************/ + +double shareResourcesMaxMin(ActionList* runningActions, lmm_system_t sys, void (*solve) (lmm_system_t)); + + /********* * Model * *********/ @@ -316,8 +333,6 @@ public: virtual double next_occuring_event(double now); virtual double next_occuring_event_lazy(double now); virtual double next_occuring_event_full(double now); - double shareResourcesMaxMin(ActionList* running_actions, - lmm_system_t sys, void (*solve) (lmm_system_t)); /** * @brief Update action to the current time