From: Arnaud Giersch Date: Thu, 18 Apr 2019 13:41:45 +0000 (+0200) Subject: Remove a level of indirection, and custom destructors for instr/jedule. X-Git-Tag: v3.22.2~94 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/d8232f0af88b82c158f0451e3b41ef9ec85ced02 Remove a level of indirection, and custom destructors for instr/jedule. --- diff --git a/include/simgrid/jedule/jedule.hpp b/include/simgrid/jedule/jedule.hpp index a6a54ea652..d74213797f 100644 --- a/include/simgrid/jedule/jedule.hpp +++ b/include/simgrid/jedule/jedule.hpp @@ -16,12 +16,9 @@ namespace jedule{ class XBT_PUBLIC Jedule { public: - Jedule()=default; - Jedule(const Jedule&) = delete; - Jedule& operator=(const Jedule&) = delete; - ~Jedule(); - std::vector event_set_; - Container* root_container_ = nullptr; + Jedule(const std::string& name) : root_container_(name) {} + std::vector event_set_; + Container root_container_; void add_meta_info(char* key, char* value); void cleanup_output(); void write_output(FILE* file); diff --git a/include/simgrid/jedule/jedule_events.hpp b/include/simgrid/jedule/jedule_events.hpp index a3d4326598..5af7f4e576 100644 --- a/include/simgrid/jedule/jedule_events.hpp +++ b/include/simgrid/jedule/jedule_events.hpp @@ -19,23 +19,23 @@ namespace jedule{ class XBT_PUBLIC Event { public: - Event(const std::string& name, double start_time, double end_time, const std::string& type); - Event(const Event&) = delete; - Event& operator=(const Event&) = delete; - ~Event(); + Event(const std::string& name, double start_time, double end_time, const std::string& type) + : name_(name), start_time_(start_time), end_time_(end_time), type_(type) + { + } void add_characteristic(char* characteristic); - void add_resources(std::vector* host_selection); + void add_resources(const std::vector& host_selection); void add_info(char* key, char* value); - void print(FILE* file); + void print(FILE* file) const; private: std::string name_; double start_time_; double end_time_; std::string type_; - std::vector* resource_subsets_; - std::vector characteristics_list_; /* just a list of names */ - std::unordered_map info_map_; /* key/value pairs */ + std::vector resource_subsets_; + std::vector characteristics_list_; /* just a list of names */ + std::unordered_map info_map_; /* key/value pairs */ }; } } diff --git a/include/simgrid/jedule/jedule_platform.hpp b/include/simgrid/jedule/jedule_platform.hpp index aede587e15..a7f74391f4 100644 --- a/include/simgrid/jedule/jedule_platform.hpp +++ b/include/simgrid/jedule/jedule_platform.hpp @@ -18,9 +18,8 @@ namespace jedule{ class XBT_PUBLIC Container { public: explicit Container(const std::string& name); - Container(const Container&) = delete; - Container& operator=(const Container&) = delete; - virtual ~Container(); + ~Container(); + private: int last_id_; int is_lowest_ = 0; @@ -43,7 +42,6 @@ public: class XBT_PUBLIC Subset { public: Subset(int s, int n, Container* p); - virtual ~Subset()=default; int start_idx; // start idx in resource_list of container int nres; // number of resources spanning starting at start_idx Container *parent; @@ -52,7 +50,7 @@ public: } } typedef simgrid::jedule::Container * jed_container_t; -typedef simgrid::jedule::Subset * jed_subset_t; -void get_resource_selection_by_hosts(std::vector* subset_list, std::vector *host_list); +void get_resource_selection_by_hosts(std::vector& subset_list, + const std::vector& host_list); #endif /* JED_SIMGRID_PLATFORM_H_ */ diff --git a/src/instr/jedule/jedule.cpp b/src/instr/jedule/jedule.cpp index e548f74437..ddbecb0ed5 100644 --- a/src/instr/jedule/jedule.cpp +++ b/src/instr/jedule/jedule.cpp @@ -12,13 +12,6 @@ namespace simgrid{ namespace jedule { -Jedule::~Jedule() { - delete this->root_container_; - for (auto const& evt : this->event_set_) - delete evt; - this->event_set_.clear(); -} - void Jedule::add_meta_info(char* key, char* value) { xbt_assert(key != nullptr); @@ -40,12 +33,12 @@ void Jedule::write_output(FILE* file) } fprintf(file, " \n"); - this->root_container_->print(file); + this->root_container_.print(file); fprintf(file, " \n"); fprintf(file, " \n"); for (auto const& event : this->event_set_) - event->print(file); + event.print(file); fprintf(file, " \n"); fprintf(file, "\n"); diff --git a/src/instr/jedule/jedule_events.cpp b/src/instr/jedule/jedule_events.cpp index c166df4451..2744fcd87e 100644 --- a/src/instr/jedule/jedule_events.cpp +++ b/src/instr/jedule/jedule_events.cpp @@ -12,22 +12,7 @@ namespace simgrid{ namespace jedule{ -Event::Event(const std::string& name, double start_time, double end_time, const std::string& type) - : name_(name), start_time_(start_time), end_time_(end_time), type_(type) -{ - this->resource_subsets_ = new std::vector(); -} - -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* host_selection) +void Event::add_resources(const std::vector& 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, " \n"); fprintf(jed_file, " \n", this->name_.c_str()); @@ -52,12 +37,12 @@ void Event::print(FILE *jed_file) fprintf(jed_file, " \n", this->end_time_); fprintf(jed_file, " \n", this->type_.c_str()); - xbt_assert(not this->resource_subsets_->empty()); + xbt_assert(not this->resource_subsets_.empty()); fprintf(jed_file, " \n"); - for (auto const& subset : *this->resource_subsets_) { + for (auto const& subset : this->resource_subsets_) { fprintf(jed_file, "