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 96db16e..2744fcd 100644 (file)
 namespace simgrid{
 namespace jedule{
 
-Event::Event(std::string name, double start_time, double end_time, std::string type)
-    : name_(name), start_time_(start_time), end_time_(end_time), type_(type)
-{
-  this->resource_subsets_ = new std::vector<jed_subset_t>();
-}
-
-Event::~Event()
-{
-  if (not this->resource_subsets_->empty()) {
-    for (auto const& subset : *this->resource_subsets_)
-      delete subset;
-    delete this->resource_subsets_;
-  }
-}
-
-void Event::add_resources(std::vector<sg_host_t>* host_selection)
+void Event::add_resources(const std::vector<sg_host_t>& host_selection)
 {
   get_resource_selection_by_hosts(this->resource_subsets_, host_selection);
 }
@@ -44,7 +29,7 @@ void Event::add_info(char* key, char* 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());
@@ -52,12 +37,12 @@ void Event::print(FILE *jed_file)
   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(not this->resource_subsets_->empty());
+  xbt_assert(not this->resource_subsets_.empty());
   fprintf(jed_file, "      <res_util>\n");
-  for (auto const& subset : *this->resource_subsets_) {
+  for (auto const& subset : this->resource_subsets_) {
     fprintf(jed_file, "        <select resources=\"");
-    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, "%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");
@@ -65,14 +50,14 @@ void Event::print(FILE *jed_file)
   if (not this->characteristics_list_.empty()) {
     fprintf(jed_file, "      <characteristics>\n");
     for (auto const& ch : this->characteristics_list_)
-      fprintf(jed_file, "          <characteristic name=\"%s\" />\n", ch);
+      fprintf(jed_file, "          <characteristic name=\"%s\" />\n", ch.c_str());
     fprintf(jed_file, "      </characteristics>\n");
   }
 
   if (not this->info_map_.empty()) {
     fprintf(jed_file, "      <info>\n");
     for (auto const& elm : this->info_map_)
-      fprintf(jed_file, "        <prop key=\"%s\" value=\"%s\" />\n",elm.first,elm.second);
+      fprintf(jed_file, "        <prop key=\"%s\" value=\"%s\" />\n", elm.first.c_str(), elm.second.c_str());
     fprintf(jed_file, "      </info>\n");
   }