X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/519c15dce45cd4b71ff97abe918e8aa1541ab391..04cb8833befbe07b6b94ff0cae98bc17b78724e3:/src/smpi/smpi_group.hpp diff --git a/src/smpi/smpi_group.hpp b/src/smpi/smpi_group.hpp index f016df30c8..9c40f5e530 100644 --- a/src/smpi/smpi_group.hpp +++ b/src/smpi/smpi_group.hpp @@ -1,34 +1,35 @@ -/* Copyright (c) 2010, 2013-2015. The SimGrid Team. +/* Copyright (c) 2010, 2013-2017. 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 "private.h" +#ifndef SMPI_GROUP_HPP_INCLUDED +#define SMPI_GROUP_HPP_INCLUDED + +#include "src/smpi/smpi_f2c.hpp" 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); + explicit Group(); + explicit Group(int size); + explicit 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