00001 #ifndef artdaq_Application_MPI2_MPISentry_hh
00002 #define artdaq_Application_MPI2_MPISentry_hh
00003
00004 #include "artdaq/Application/TaskType.hh"
00005 #include "artdaq-mpich-plugin/Utilities/quiet_mpi.hh"
00006
00007 namespace artdaq
00008 {
00009 class MPISentry;
00010 }
00011
00015 class artdaq::MPISentry
00016 {
00017 public:
00023 MPISentry(int* argc_ptr, char*** argv_ptr);
00024
00031 MPISentry(int* argc_ptr,
00032 char*** argv_ptr,
00033 int threading_level);
00034
00043 MPISentry(int* argc_ptr,
00044 char*** argv_ptr,
00045 int threading_level, artdaq::TaskType type,
00046 MPI_Comm& local_group_comm);
00047
00051 ~MPISentry();
00052
00057 int threading_level() const;
00058
00063 int rank() const;
00064
00069 int procs() const;
00070
00071 private:
00072 void initialize_();
00073
00074 int threading_level_;
00075 int rank_;
00076 int procs_;
00077 };
00078
00079
00080 #endif