X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/23141ea49d9f51ecda69abe8cd02736b92254726..a5f17092ece4ade9cfce4dfc07fc6ce43b8bc349:/src/simdag/simdag_private.hpp diff --git a/src/simdag/simdag_private.hpp b/src/simdag/simdag_private.hpp index 0795a55575..7565424636 100644 --- a/src/simdag/simdag_private.hpp +++ b/src/simdag/simdag_private.hpp @@ -1,18 +1,17 @@ -/* Copyright (c) 2006-2015. The SimGrid Team. - * All rights reserved. */ +/* Copyright (c) 2006-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. */ +#include "simgrid/simdag.h" +#include "surf/surf.hpp" #include #include #include -#include "simgrid/simdag.h" -#include "surf/surf.h" #ifndef SIMDAG_PRIVATE_HPP #define SIMDAG_PRIVATE_HPP -#if HAVE_JEDULE +#if SIMGRID_HAVE_JEDULE #include "simgrid/jedule/jedule_sd_binding.h" #endif @@ -21,6 +20,8 @@ namespace sd{ class Global { public: explicit Global(); + Global(const Global&) = delete; + Global& operator=(const Global&) = delete; ~Global(); bool watch_point_reached; /* has a task just reached a watch point? */ std::set *initial_tasks; @@ -33,25 +34,24 @@ std::set* simulate (double how_long); } } -SG_BEGIN_DECL() extern XBT_PRIVATE simgrid::sd::Global *sd_global; /* Task */ -typedef struct SD_task { +struct s_SD_task_t { e_SD_task_state_t state; void *data; /* user data */ - std::string name; + char *name; e_SD_task_kind_t kind; double amount; double alpha; /* used by typed parallel tasks */ double start_time; double finish_time; - surf_action_t surf_action; + simgrid::kernel::resource::Action* surf_action; unsigned short watch_points; /* bit field xor()ed with masks */ - int marked; /* used to check if the task DAG has some cycle*/ + bool marked = false; /* used to check if the task DAG has some cycle*/ - /* dependencies */ + /* dependencies -- cannot be embedded in the struct since it's not handled as a real C++ class */ std::set *inputs; std::set *outputs; std::set *predecessors; @@ -62,12 +62,12 @@ typedef struct SD_task { double *flops_amount; double *bytes_amount; double rate; -} s_SD_task_t; +}; /* SimDag private functions */ XBT_PRIVATE void SD_task_set_state(SD_task_t task, e_SD_task_state_t new_state); XBT_PRIVATE void SD_task_run(SD_task_t task); XBT_PRIVATE bool acyclic_graph_detail(xbt_dynar_t dag); +XBT_PRIVATE void uniq_transfer_task_name(SD_task_t task); XBT_PRIVATE const char *__get_state_name(e_SD_task_state_t state); -SG_END_DECL() #endif