X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a4b0c4ab9d54f75705f6d8b6c14b2f52a1245ea2..c97c73bdc69512d26f4e807c1e6f417d3b1db874:/src/simdag/sd_daxloader.cpp diff --git a/src/simdag/sd_daxloader.cpp b/src/simdag/sd_daxloader.cpp index 4a7b40552c..4131660a6e 100644 --- a/src/simdag/sd_daxloader.cpp +++ b/src/simdag/sd_daxloader.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2009-2018. The SimGrid Team. +/* Copyright (c) 2009-2020. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -11,17 +11,18 @@ #include "xbt/misc.h" #include #include - -XBT_LOG_NEW_DEFAULT_SUBCATEGORY(sd_daxparse, sd, "Parsing DAX files"); +#include #include "dax_dtd.h" #include "dax_dtd.c" +XBT_LOG_NEW_DEFAULT_SUBCATEGORY(sd_daxparse, sd, "Parsing DAX files"); + /* Ensure that transfer tasks have unique names even though a file is used several times */ void uniq_transfer_task_name(SD_task_t task) { - SD_task_t child = *(task->successors->begin()); - SD_task_t parent = *(task->predecessors->begin()); + const_SD_task_t child = *(task->successors->begin()); + const_SD_task_t parent = *(task->predecessors->begin()); std::string new_name = std::string(SD_task_get_name(parent)) + "_" + SD_task_get_name(task) + "_" + SD_task_get_name(child); @@ -29,20 +30,23 @@ void uniq_transfer_task_name(SD_task_t task) SD_task_set_name(task, new_name.c_str()); } -static bool children_are_marked(SD_task_t task){ +static bool children_are_marked(const_SD_task_t task) +{ return std::none_of(task->successors->begin(), task->successors->end(), [](const SD_task_t& elm) { return not elm->marked; }) && std::none_of(task->outputs->begin(), task->outputs->end(), [](const SD_task_t& elm) { return not elm->marked; }); } -static bool parents_are_marked(SD_task_t task){ +static bool parents_are_marked(const_SD_task_t task) +{ return std::none_of(task->predecessors->begin(), task->predecessors->end(), [](const SD_task_t& elm) { return not elm->marked; }) && std::none_of(task->inputs->begin(), task->inputs->end(), [](const SD_task_t& elm) { return not elm->marked; }); } -bool acyclic_graph_detail(xbt_dynar_t dag){ +bool acyclic_graph_detail(const_xbt_dynar_t dag) +{ unsigned int count; bool all_marked = true; SD_task_t task = nullptr; @@ -237,7 +241,7 @@ void STag_dax__adag() try { double version = std::stod(std::string(A_dax__adag_version)); xbt_assert(version == 2.1, "Expected version 2.1 in tag, got %f. Fix the parser or your file", version); - } catch (std::invalid_argument& ia) { + } catch (const std::invalid_argument&) { throw std::invalid_argument(std::string("Parse error: ") + A_dax__adag_version + " is not a double"); } } @@ -253,7 +257,7 @@ void STag_dax__job() current_job = SD_task_create_comp_seq(name.c_str(), nullptr, runtime); jobs.insert({A_dax__job_id, current_job}); xbt_dynar_push(result, ¤t_job); - } catch (std::invalid_argument& ia) { + } catch (const std::invalid_argument&) { throw std::invalid_argument(std::string("Parse error: ") + A_dax__job_runtime + " is not a double"); } } @@ -263,7 +267,7 @@ void STag_dax__uses() double size; try { size = std::stod(std::string(A_dax__uses_size)); - } catch (std::invalid_argument& ia) { + } catch (const std::invalid_argument&) { throw std::invalid_argument(std::string("Parse error: ") + A_dax__uses_size + " is not a double"); } bool is_input = (A_dax__uses_link == A_dax__uses_link_input); @@ -273,7 +277,7 @@ void STag_dax__uses() SD_task_t file; if (it == files.end()) { file = SD_task_create_comm_e2e(A_dax__uses_file, nullptr, size); - sd_global->initial_tasks->erase(file); + sd_global->initial_tasks.erase(file); files[A_dax__uses_file] = file; } else { file = it->second;