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 }