Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Remove a level of indirection, and custom destructors for instr/jedule.
[simgrid.git] / src / instr / jedule / jedule_events.cpp
index 93f494c..2744fcd 100644 (file)
@@ -1,82 +1,63 @@
-/* Copyright (c) 2010-2014. The SimGrid Team.
+/* Copyright (c) 2010-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/jedule/jedule_events.hpp"
-#include "simgrid/jedule/jedule_output.hpp"
-#include <stdio.h>
-#include <stdlib.h>
-#include <string>
-
+#include "simgrid/jedule/jedule.hpp"
+#include "simgrid/s4u/NetZone.hpp"
 #include "xbt/asserts.h"
 
-#if HAVE_JEDULE
+#if SIMGRID_HAVE_JEDULE
 namespace simgrid{
 namespace jedule{
 
-void Event::deleteEvent(){
-  while (!this->resource_subsets.empty()){
-    xbt_free(this->resource_subsets.back());
-    this->resource_subsets.pop_back();
-  }
-  delete this;
-}
-
-void Event::addResources(std::vector<sg_host_t> *host_selection) {
-  xbt_dynar_t resource_subset_list;
-  jed_res_subset_t res_set;
-  unsigned int i;
-
-  resource_subset_list = xbt_dynar_new(sizeof(jed_res_subset_t), nullptr);
-
-  jed_simgrid_get_resource_selection_by_hosts(resource_subset_list, host_selection);
-  xbt_dynar_foreach(resource_subset_list, i, res_set)  {
-    this->resource_subsets.push_back(res_set);
-  }
-
-  xbt_dynar_free_container(&resource_subset_list);
+void Event::add_resources(const std::vector<sg_host_t>& host_selection)
+{
+  get_resource_selection_by_hosts(this->resource_subsets_, host_selection);
 }
 
-void Event::addCharacteristic(char *characteristic) {
+void Event::add_characteristic(char* characteristic)
+{
   xbt_assert( characteristic != nullptr );
-  this->characteristics_list.push_back(characteristic);
+  this->characteristics_list_.push_back(characteristic);
 }
 
-void Event::addInfo(char* key, char *value) {
+void Event::add_info(char* key, char* value)
+{
   xbt_assert((key != nullptr) && value != nullptr);
-  this->info_map.insert({key, value});
+  this->info_map_.insert({key, value});
 }
 
-void Event::print(FILE *jed_file){
+void Event::print(FILE* jed_file) const
+{
   fprintf(jed_file, "    <event>\n");
-  fprintf(jed_file, "      <prop key=\"name\" value=\"%s\" />\n", this->name.c_str());
-  fprintf(jed_file, "      <prop key=\"start\" value=\"%g\" />\n", this->start_time);
-  fprintf(jed_file, "      <prop key=\"end\" value=\"%g\" />\n", this->end_time);
-  fprintf(jed_file, "      <prop key=\"type\" value=\"%s\" />\n", this->type.c_str());
+  fprintf(jed_file, "      <prop key=\"name\" value=\"%s\" />\n", this->name_.c_str());
+  fprintf(jed_file, "      <prop key=\"start\" value=\"%g\" />\n", this->start_time_);
+  fprintf(jed_file, "      <prop key=\"end\" value=\"%g\" />\n", this->end_time_);
+  fprintf(jed_file, "      <prop key=\"type\" value=\"%s\" />\n", this->type_.c_str());
 
-  xbt_assert(!this->resource_subsets.empty());
+  xbt_assert(not this->resource_subsets_.empty());
   fprintf(jed_file, "      <res_util>\n");
-  for (auto subset: this->resource_subsets) {
+  for (auto const& subset : this->resource_subsets_) {
     fprintf(jed_file, "        <select resources=\"");
-    fprintf(jed_file, "%s", subset->parent->getHierarchyAsString().c_str());
-    fprintf(jed_file, ".[%d-%d]", subset->start_idx, subset->start_idx + subset->nres - 1);
+    fprintf(jed_file, "%s", subset.parent->get_hierarchy_as_string().c_str());
+    fprintf(jed_file, ".[%d-%d]", subset.start_idx, subset.start_idx + subset.nres - 1);
     fprintf(jed_file, "\" />\n");
   }
   fprintf(jed_file, "      </res_util>\n");
 
-  if (!this->characteristics_list.empty()){
+  if (not this->characteristics_list_.empty()) {
     fprintf(jed_file, "      <characteristics>\n");
-    for (auto ch: this->characteristics_list)
-      fprintf(jed_file, "          <characteristic name=\"%s\" />\n", ch);
+    for (auto const& ch : this->characteristics_list_)
+      fprintf(jed_file, "          <characteristic name=\"%s\" />\n", ch.c_str());
     fprintf(jed_file, "      </characteristics>\n");
   }
 
-  if (!this->info_map.empty()){
+  if (not this->info_map_.empty()) {
     fprintf(jed_file, "      <info>\n");
-    for (auto elm: this->info_map)
-      fprintf(jed_file, "        <prop key=\"%s\" value=\"%s\" />\n",elm.first,elm.second);
+    for (auto const& elm : this->info_map_)
+      fprintf(jed_file, "        <prop key=\"%s\" value=\"%s\" />\n", elm.first.c_str(), elm.second.c_str());
     fprintf(jed_file, "      </info>\n");
   }