#include <list>
#include <string>
+#include "smpi_errhandler.hpp"
#include "smpi_keyvals.hpp"
#include "smpi_group.hpp"
#include "smpi_topo.hpp"
namespace smpi{
class Comm : public F2C, public Keyval{
+ friend Topo;
MPI_Group group_;
SMPI_Topo_type topoType_;
MPI_Topology topo_; // to be replaced by an union
int is_uniform_;
int* non_uniform_map_; // set if smp nodes have a different number of processes allocated
int is_blocked_; // are ranks allocated on the same smp node contiguous ?
- int is_smp_comm_; // set to 0 in case this is already an intra-comm or a leader-comm to avoid recursivity
+ int is_smp_comm_; // set to 0 in case this is already an intra-comm or a leader-comm to avoid recursion
std::list<MPI_Win> rma_wins_; // attached windows for synchronization.
std::string name_;
MPI_Info info_;
int id_;
+ MPI_Errhandler errhandler_;
public:
static std::unordered_map<int, smpi_key_elem> keyvals_;
void set_name(const char* name);
MPI_Info info();
void set_info( MPI_Info info);
+ MPI_Errhandler errhandler();
+ void set_errhandler( MPI_Errhandler errhandler);
void set_leaders_comm(MPI_Comm leaders);
void set_intra_comm(MPI_Comm leaders) { intra_comm_ = leaders; };
int* get_non_uniform_map();