X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/217ab9d5146bf370bbb20065fd357a5c099c78ee..39c935d6d5ee86d153f6f7e6a10d723ae7c57f6f:/src/smpi/include/smpi_group.hpp diff --git a/src/smpi/include/smpi_group.hpp b/src/smpi/include/smpi_group.hpp index cdbf4b8346..83a531f895 100644 --- a/src/smpi/include/smpi_group.hpp +++ b/src/smpi/include/smpi_group.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2010-2019. The SimGrid Team. +/* Copyright (c) 2010-2021. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -20,26 +20,27 @@ class Group : public F2C{ /* This is actually a map from int to int. We could use std::map here, but looking up a value there costs O(log(n)). * For a vector, this costs O(1). We hence go with the vector. */ - std::vector rank_to_actor_map_; - std::map actor_to_rank_map_; + std::vector rank_to_actor_map_; + std::map actor_to_rank_map_; std::vector index_to_rank_map_; int refcount_ = 1; /* refcount_: start > 0 so that this group never gets freed */ + public: Group() = default; explicit Group(int size) : size_(size), rank_to_actor_map_(size, nullptr), index_to_rank_map_(size, MPI_UNDEFINED) {} - explicit Group(Group* origin); + explicit Group(const Group* origin); - void set_mapping(s4u::ActorPtr actor, int rank); + void set_mapping(s4u::Actor* actor, int rank); int rank(int index); - s4u::ActorPtr actor(int rank); - int rank(const s4u::ActorPtr process); + s4u::Actor* actor(int rank); + int rank(s4u::Actor* process); void ref(); static void unref(MPI_Group group); - int size() { return size_; } + int size() const { return size_; } int compare(MPI_Group group2); - int incl(int n, int* ranks, MPI_Group* newgroup); - int excl(int n, int* ranks, MPI_Group* newgroup); + int incl(int n, const int* ranks, MPI_Group* newgroup); + int excl(int n, const int* ranks, MPI_Group* newgroup); int group_union(MPI_Group group2, MPI_Group* newgroup); int intersection(MPI_Group group2, MPI_Group* newgroup); int difference(MPI_Group group2, MPI_Group* newgroup);