00001 #ifdef _CCAMPI
00002 #ifndef DefaultMPIService_h_seen
00003 #define DefaultMPIService_h_seen
00004 #include "util/noSeekMPI.h"
00005 #include <mpi.h>
00006 #include "dc/export/config.hh"
00007 class DefaultMPIService
00008 #if (defined(HAVE_CLASSIC)||defined(HAVE_NEO))
00009 :
00010 #endif
00011 #ifdef HAVE_CLASSIC
00012 public virtual classic::gov::cca::MPIService
00013 #endif
00014 #ifdef HAVE_NEO
00016 #ifdef HAVE_CLASSIC
00017 ,
00018 #endif
00019 public virtual neo::cca::Port
00020 , public virtual neo::cca::ports::MPIService
00021 #endif
00022 {
00023 private:
00024
00025 static const int cap = 10;
00026
00027 bool inuse[cap];
00028 int64_t fortranMPIComm;
00029
00030 MPI_Comm comm[cap];
00031
00032 public:
00033
00037 DefaultMPIService(int64_t fComm);
00038
00039 virtual ~DefaultMPIService();
00040
00041 virtual MPI_Comm getComm();
00042
00043 virtual void releaseComm(MPI_Comm m);
00044
00045 };
00046 #endif //DefaultMPIService_h_seen
00047 #endif // _CCAMPI