00001
00009 #ifndef _D3GRIDROUTER_H
00010 #define _D3GRIDROUTER_H
00011
00012 #include <math.h>
00013 #include "petable.h"
00014
00015
00016 class D3GridRouter : public Router
00017 {
00018 private:
00019 PeTable *PeGrid;
00020 int **oneplane, *psize, *zline, *gpes;
00021 int MyPe, NumPes, COLLEN, nPlanes;
00022 int LPMsgCount, LPMsgExpected;
00023 int recvExpected[2], recvCount[2];
00024 int routerStage;
00025 void InitVars();
00026 void LocalProcMsg(comID id);
00027 int nplanes;
00028
00029 public:
00030 D3GridRouter(int, int, Strategy*);
00031 ~D3GridRouter();
00032 void NumDeposits(comID, int);
00033 void EachToAllMulticast(comID , int , void *, int);
00034 void EachToManyMulticast(comID , int , void *, int, int *, int);
00035 void RecvManyMsg(comID, char *);
00036 void ProcManyMsg(comID, char *);
00037 void DummyEP(comID id, int);
00038 void ProcMsg(int, msgstruct **) {;}
00039 void SetMap(int *);
00040 };
00041
00042 #endif
00043