CCAFFEINE
0.8.8
|
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 //HAVE_CLASSIC 00014 #ifdef HAVE_NEO 00015 00016 #ifdef HAVE_CLASSIC 00017 , 00018 #endif // HAVE_CLASSIC 00019 public virtual neo::cca::Port 00020 , public virtual neo::cca::ports::MPIService 00021 #endif // HAVE_NEO 00022 { 00023 private: 00024 00025 static const int cap = 10; // small enough for debugging demos. 00026 00027 bool inuse[cap]; 00028 int64_t fortranMPIComm; // ur-communicator of which all are dups. 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