cmpicomm.h

00001 //=========================================================================
00002 //  CMPICOMM.H - part of
00003 //
00004 //                  OMNeT++/OMNEST
00005 //           Discrete System Simulation in C++
00006 //
00007 //   Written by:  Andras Varga, 2003
00008 //
00009 //=========================================================================
00010 
00011 /*--------------------------------------------------------------*
00012   Copyright (C) 2003-2005 Andras Varga
00013   Monash University, Dept. of Electrical and Computer Systems Eng.
00014   Melbourne, Australia
00015 
00016   This file is distributed WITHOUT ANY WARRANTY. See the file
00017   `license' for details on this and other legal matters.
00018 *--------------------------------------------------------------*/
00019 
00020 #ifndef __CMPICOMM_H__
00021 #define __CMPICOMM_H__
00022 
00023 #include "cparsimcomm.h"
00024 
00025 class cMPICommBuffer;
00026 
00032 class cMPICommunications : public cParsimCommunications
00033 {
00034   protected:
00035     cMPICommBuffer *recycledBuffer;
00036     int numPartitions;
00037     int myRank;
00038 
00039   protected:
00043     virtual cMPICommBuffer *doCreateCommBuffer();
00044 
00045   public:
00049     cMPICommunications();
00050 
00054     virtual ~cMPICommunications();
00055 
00061     virtual void init();
00062 
00066     virtual void shutdown();
00067 
00071     virtual int getNumPartitions();
00072 
00076     virtual int getProcId();
00077 
00081     virtual cCommBuffer *createCommBuffer();
00082 
00086     virtual void recycleCommBuffer(cCommBuffer *buffer);
00087 
00091     virtual void send(cCommBuffer *buffer, int tag, int destination);
00092 
00096     virtual void broadcast(cCommBuffer *buffer, int tag);
00097 
00102     virtual bool receiveBlocking(int filtTag, cCommBuffer *buffer, int& receivedTag, int& sourceProcId);
00103 
00109     virtual bool receiveNonblocking(int filtTag, cCommBuffer *buffer,  int& receivedTag, int& sourceProcId);
00111 };
00112 
00113 #endif
00114 
00115 

Generated on Sat Oct 21 17:48:01 2006 for OMNeT++ Parallel Simulation Support by  doxygen 1.4.6