X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/519c15dce45cd4b71ff97abe918e8aa1541ab391..3ddf78e973c05931c1af14dee2d70b86df36f994:/src/smpi/smpi_group.hpp diff --git a/src/smpi/smpi_group.hpp b/src/smpi/smpi_group.hpp index f016df30c8..6e1a45d97a 100644 --- a/src/smpi/smpi_group.hpp +++ b/src/smpi/smpi_group.hpp @@ -4,31 +4,32 @@ /* 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. */ +#ifndef SMPI_GROUP_HPP_INCLUDED +#define SMPI_GROUP_HPP_INCLUDED + #include "private.h" namespace simgrid{ -namespace SMPI{ +namespace smpi{ -class Group { +class Group : public F2C{ private: - int m_size; - int *m_rank_to_index_map; - xbt_dict_t m_index_to_rank_map; - int m_refcount; + int size_; + int *rank_to_index_map_; + xbt_dict_t index_to_rank_map_; + int refcount_; public: - Group(); Group(int size); Group(Group* origin); ~Group(); - void destroy(); void set_mapping(int index, int rank); int index(int rank); int rank(int index); - int use(); - int unuse(); - int getsize(); + void ref(); + static void unref(MPI_Group group); + int size(); int compare(MPI_Group group2); int incl(int n, int* ranks, MPI_Group* newgroup); int excl(int n, int *ranks, MPI_Group * newgroup); @@ -37,6 +38,11 @@ class Group { int difference(MPI_Group group2, MPI_Group* newgroup); int range_incl(int n, int ranges[][3], MPI_Group * newgroup); int range_excl(int n, int ranges[][3], MPI_Group * newgroup); + + static Group* f2c(int id); + }; } } + +#endif