00001 #ifndef MPITRAITS_H
00002 #define MPITRAITS_H
00003
00004 #include "MPIComm.h"
00005
00006 namespace Sundance
00007 {
00008 using std::string;
00009
00010
00011
00012
00013 template <class T> class MPITraits
00014 {
00015 public:
00016
00017 static int type();
00018 };
00019
00020
00021
00022
00023 template <> class MPITraits<int>
00024 {
00025 public:
00026
00027 static int type() {return MPIComm::INT;}
00028 };
00029
00030
00031
00032
00033 template <> class MPITraits<float>
00034 {
00035 public:
00036
00037 static int type() {return MPIComm::FLOAT;}
00038 };
00039
00040
00041
00042
00043 template <> class MPITraits<double>
00044 {
00045 public:
00046
00047 static int type() {return MPIComm::DOUBLE;}
00048 };
00049
00050
00051
00052
00053 template <> class MPITraits<char>
00054 {
00055 public:
00056
00057 static int type() {return MPIComm::CHAR;}
00058 };
00059
00060 }
00061
00062 #endif