00001 #include "MPIAllToAllCommunicatorFactory.h"
00002
00003 MPIAllToAllCommunicatorFactory::MPIAllToAllCommunicatorFactory(MPIAllToAllCommunicatorFactory::CommunicatorType commType) :
00004 communicator_type(commType)
00005 {}
00006
00007 MPIAllToAllCommunicatorFactory::~MPIAllToAllCommunicatorFactory()
00008 {}
00009
00010
00011 MPIAllToAllCommunicator *
00012 MPIAllToAllCommunicatorFactory::getCommunicator(MPIInputBufferVector & mpiInputBuffers,
00013 MPIOutputBufferVector & mpiOutputBuffers,
00014 MPI::Intracomm & comm,
00015 vector<bool> &incomingConnections,
00016 vector<bool> &outgoingConnections)
00017 {
00018 if (communicator_type == Default)
00019 return new MPIDefaultAllToAllCommunicator(mpiInputBuffers, mpiOutputBuffers, comm,
00020 incomingConnections, outgoingConnections);
00021 else if (communicator_type == SynchronuousShuffle )
00022 return new MPISynchroShuffleAllToAllComm(mpiInputBuffers, mpiOutputBuffers, comm,
00023 incomingConnections, outgoingConnections);
00024 else
00025 return NULL;
00026 }