00001 #ifndef _PG_MPI_TRAITS_
00002 #define _PG_MPI_TRAITS_
00003
00004 #include "mpi.h"
00005
00006 namespace ParGraph
00007 {
00008 template< class A >
00009 struct mpi_traits
00010 {
00011 };
00012
00013 template<>
00014 struct mpi_traits<int>
00015 {
00016 const MPI_Datatype mpi_type;
00017 mpi_traits() : mpi_type(MPI_INT) {}
00018
00019 };
00020
00021 template<>
00022 struct mpi_traits<unsigned int>
00023 {
00024 const MPI_Datatype mpi_type;
00025 mpi_traits() : mpi_type(MPI_UNSIGNED) {}
00026
00027 };
00028
00029 template<>
00030 struct mpi_traits<const unsigned int>
00031 {
00032 const MPI_Datatype mpi_type;
00033 mpi_traits() : mpi_type(MPI_UNSIGNED) {}
00034
00035 };
00036
00037 template<>
00038 struct mpi_traits<short int>
00039 {
00040 const MPI_Datatype mpi_type;
00041 mpi_traits() : mpi_type(MPI_SHORT) {}
00042
00043 };
00044
00045 template<>
00046 struct mpi_traits<char>
00047 {
00048 const MPI_Datatype mpi_type;
00049 mpi_traits() : mpi_type(MPI_CHAR) {}
00050
00051 };
00052
00053 }
00054 #endif