Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix build with graphviz >= 3.
[simgrid.git] / src / dag / loaders.cpp
index 071e446..72ca8aa 100644 (file)
@@ -72,8 +72,7 @@ static bool check_for_cycle(const std::vector<simgrid::s4u::ActivityPtr>& dag)
 
 static YY_BUFFER_STATE input_buffer;
 
-namespace simgrid {
-namespace s4u {
+namespace simgrid::s4u {
 
 static std::vector<ActivityPtr> result;
 static std::map<std::string, ExecPtr, std::less<>> jobs;
@@ -110,10 +109,8 @@ std::vector<ActivityPtr> create_DAG_from_DAX(const std::string& filename)
    * Files not produced in the system are said to be produced by root task (top of DAG).
    * Files not consumed in the system are said to be consumed by end task (bottom of DAG).
    */
-  CommPtr file;
-
-  for (auto const& elm : files) {
-    file = elm.second;
+  for (auto const& [_, elm] : files) {
+    CommPtr file = elm;
     CommPtr newfile;
     if (file->dependencies_solved()) {
       for (auto const& it : file->get_successors()) {
@@ -185,7 +182,7 @@ std::vector<ActivityPtr> create_DAG_from_dot(const std::string& filename)
   FILE* in_file = fopen(filename.c_str(), "r");
   xbt_assert(in_file != nullptr, "Failed to open file: %s", filename.c_str());
 
-  Agraph_t* dag_dot = agread(in_file, NIL(Agdisc_t*));
+  Agraph_t* dag_dot = agread(in_file, NULL);
 
   std::unordered_map<std::string, ActivityPtr> activities;
   std::vector<ActivityPtr> dag;
@@ -202,7 +199,7 @@ std::vector<ActivityPtr> create_DAG_from_dot(const std::string& filename)
     if (activities.find(name) == activities.end()) {
       XBT_DEBUG("See <Exec id = %s amount = %.0f>", name.c_str(), amount);
       act = Exec::init()->set_name(name)->set_flops_amount(amount)->vetoable_start();
-      activities.insert({name, act});
+      activities.try_emplace(name, act);
       if (name != "root" && name != "end")
         dag.push_back(act);
     } else {
@@ -244,7 +241,7 @@ std::vector<ActivityPtr> create_DAG_from_dot(const std::string& filename)
           act = Comm::sendto_init()->set_name(name)->set_payload_size(size)->vetoable_start();
           src->add_successor(act);
           act->add_successor(dst);
-          activities.insert({name, act});
+          activities.try_emplace(name, act);
           dag.push_back(act);
         } else {
           XBT_WARN("Comm '%s' is defined more than once", name.c_str());
@@ -293,8 +290,7 @@ std::vector<ActivityPtr> create_DAG_from_dot(const std::string& filename)
           "Please install graphviz, graphviz-dev, and libgraphviz-dev (and erase CMakeCache.txt) before recompiling.");
 }
 #endif
-} // namespace s4u
-} // namespace simgrid
+} // namespace simgrid::s4u
 
 void STag_dax__adag()
 {
@@ -315,7 +311,7 @@ void STag_dax__job()
     runtime *= 4200000000.; /* Assume that timings were done on a 4.2GFlops machine. I mean, why not? */
     XBT_DEBUG("See <job id=%s runtime=%s %.0f>", A_dax__job_id, A_dax__job_runtime, runtime);
     simgrid::s4u::current_job = simgrid::s4u::Exec::init()->set_name(name)->set_flops_amount(runtime)->vetoable_start();
-    simgrid::s4u::jobs.insert({A_dax__job_id, simgrid::s4u::current_job});
+    simgrid::s4u::jobs.try_emplace(A_dax__job_id, simgrid::s4u::current_job);
     simgrid::s4u::result.push_back(simgrid::s4u::current_job);
   } catch (const std::invalid_argument&) {
     throw std::invalid_argument(std::string("Parse error: ") + A_dax__job_runtime + " is not a double");