X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7595678501d8cee18b1b6f1e203c5a2a47ba4e51..1bf033cc925aa31693ef5163ea056fde5b75ff1e:/src/instr/jedule/jedule_events.cpp diff --git a/src/instr/jedule/jedule_events.cpp b/src/instr/jedule/jedule_events.cpp index 2c63914e95..b03a59d516 100644 --- a/src/instr/jedule/jedule_events.cpp +++ b/src/instr/jedule/jedule_events.cpp @@ -1,77 +1,84 @@ -/* Copyright (c) 2010-2014. The SimGrid Team. +/* Copyright (c) 2010-2018. 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 -#include -#include - -#include "xbt/dict.h" -#include "xbt/dynar.h" +#include "simgrid/jedule/jedule.hpp" +#include "simgrid/s4u/NetZone.hpp" #include "xbt/asserts.h" -#include "simgrid/jedule/jedule_events.h" -#include "simgrid/jedule/jedule_platform.h" - -#if HAVE_JEDULE +#if SIMGRID_HAVE_JEDULE +namespace simgrid{ +namespace jedule{ -void jed_event_add_resources(jed_event_t event, xbt_dynar_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); +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_simgrid_get_resource_selection_by_hosts(resource_subset_list, host_selection); - xbt_dynar_foreach(resource_subset_list, i, res_set) { - xbt_dynar_push(event->resource_subsets, &res_set); +Event::~Event() +{ + if (not this->resource_subsets_->empty()) { + for (auto const& subset : *this->resource_subsets_) + delete subset; + delete this->resource_subsets_; } +} - xbt_dynar_free(&resource_subset_list); +void Event::add_resources(std::vector* host_selection) +{ + get_resource_selection_by_hosts(this->resource_subsets_, host_selection); } -void jed_event_add_characteristic(jed_event_t event, char *characteristic) { +void Event::add_characteristic(char* characteristic) +{ xbt_assert( characteristic != nullptr ); - xbt_dynar_push(event->characteristics_list, &characteristic); + this->characteristics_list_.push_back(characteristic); } -void jed_event_add_info(jed_event_t event, char *key, char *value) { - char *val_cp; - - xbt_assert(key != nullptr); - xbt_assert(value != nullptr); - - val_cp = strdup(value); - xbt_dict_set(event->info_hash, key, val_cp, nullptr); +void Event::add_info(char* key, char* value) +{ + xbt_assert((key != nullptr) && value != nullptr); + this->info_map_.insert({key, value}); } -void create_jed_event(jed_event_t *event, char *name, double start_time, - double end_time, const char *type) { - - *event = xbt_new0(s_jed_event_t,1); - (*event)->name = xbt_strdup(name); +void Event::print(FILE *jed_file) +{ + fprintf(jed_file, " \n"); + fprintf(jed_file, " \n", this->name_.c_str()); + fprintf(jed_file, " \n", this->start_time_); + fprintf(jed_file, " \n", this->end_time_); + fprintf(jed_file, " \n", this->type_.c_str()); + + xbt_assert(not this->resource_subsets_->empty()); + fprintf(jed_file, " \n"); + for (auto const& subset : *this->resource_subsets_) { + fprintf(jed_file, "