X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/1bf033cc925aa31693ef5163ea056fde5b75ff1e..b9625f82f86db0674e911887addce45dca31b57f:/include/simgrid/jedule/jedule_platform.hpp diff --git a/include/simgrid/jedule/jedule_platform.hpp b/include/simgrid/jedule/jedule_platform.hpp index d2911092c1..8097776b16 100644 --- a/include/simgrid/jedule/jedule_platform.hpp +++ b/include/simgrid/jedule/jedule_platform.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2010-2018. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2010-2020. 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. */ @@ -7,73 +7,54 @@ #define JED_SIMGRID_PLATFORM_H_ #include -#include +#include +#include #include #include -#include namespace simgrid { namespace jedule{ class XBT_PUBLIC Container { -public: - explicit Container(std::string name); - virtual ~Container(); -private: - int last_id_; - int is_lowest_ = 0; - -public: + int last_id_ = 0; std::string name; std::unordered_map name2id; - Container *parent = nullptr; - std::vector children; + Container* parent_ = nullptr; + std::vector> children_; std::vector resource_list; + +public: + explicit Container(const std::string& name); + Container(const Container&) = delete; + Container& operator=(const Container&) = delete; + + const char* get_cname() const { return name.c_str(); } + void set_parent(Container* parent) { parent_ = parent; } + bool has_children() const { return not children_.empty(); } + int get_child_position(const Container* child) const; + unsigned int get_id_by_name(const char* name) const { return name2id.at(name); } + void add_child(Container* child); void add_resources(std::vector hosts); - void create_hierarchy(sg_netzone_t from_as); + void create_hierarchy(const_sg_netzone_t from_as); std::vector get_hierarchy(); std::string get_hierarchy_as_string(); void print(FILE *file); void print_resources(FILE* file); - - // deprecated - XBT_ATTRIB_DEPRECATED_v323("Please use Container::add_child()") void addChild(Container* child) { add_child(child); } - XBT_ATTRIB_DEPRECATED_v323("Please use Container::add_resources()") void addResources(std::vector hosts) - { - add_resources(hosts); - } - XBT_ATTRIB_DEPRECATED_v323("Please use Container::create_hierarchy()") void createHierarchy(sg_netzone_t from_as) - { - create_hierarchy(from_as); - } - XBT_ATTRIB_DEPRECATED_v323("Please use Container::get_hierarchy()") std::vector getHierarchy() - { - return get_hierarchy(); - } - XBT_ATTRIB_DEPRECATED_v323("Please use Container::get_hierarchy_as_string()") std::string getHierarchyAsString() - { - return get_hierarchy_as_string(); - } - XBT_ATTRIB_DEPRECATED_v323("Please use Container::print_resources()") void printResources(FILE* file) - { - print_resources(file); - } }; 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; }; -} -} +} // namespace jedule +} // namespace simgrid 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_ */