CCAFFEINE  0.8.8
DefaultMPIService.h
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