removing one level of virtual functions. May make code run faster
[charm.git] / src / conv-com / 3dgridrouter.h
1 /*****************************************************************************
2  * $Source$
3  * $Author$
4  * $Date$
5  * $Revision$
6  *****************************************************************************/
7
8 #ifndef _D3GRIDROUTER_H
9 #define _D3GRIDROUTER_H
10
11 #include <math.h>
12 #include <converse.h>
13 #include "comlib.h"
14 #include "petable.h"
15
16 //3DGrid based router
17 class D3GridRouter : public Router
18 {
19   private:
20         PeTable *PeGrid;
21         int *oneplane, *zline, *gpes;
22         int MyPe, NumPes, COLLEN, nPlanes;
23         int LPMsgCount, LPMsgExpected;
24         int recvExpected[2], recvCount[2];
25         int routerStage;
26         void InitVars();
27         void LocalProcMsg(comID id);
28   public:
29         D3GridRouter(int, int);
30         ~D3GridRouter();
31         void NumDeposits(comID, int);
32         void EachToAllMulticast(comID , int , void *, int);
33         void EachToManyMulticast(comID , int , void *, int, int *, int);
34         void RecvManyMsg(comID, char *);
35         void ProcManyMsg(comID, char *);
36         void DummyEP(comID id, int);
37         void ProcMsg(int, msgstruct **) {;}
38         void SetMap(int *);
39 };
40
41 #endif