inefficiency fixed
[charm.git] / src / conv-com / de.h
1 /*****************************************************************************
2  * $Source$
3  * $Author$
4  * $Date$
5  * $Revision$
6  *****************************************************************************/
7
8 #ifndef _DE_H
9 #define _DE_H
10 #include <converse.h>
11 #include "comlib.h"
12 #include "petable.h"
13
14 //Dimensional Exchange (Hypercube) based router
15 class DimexRouter : public Router
16 {
17   private:
18         PeTable *PeHcube, *PeHcube1;
19         int *buffer;
20         int* msgnum, InitCounter;
21         int *penum,*gpes;
22         int **next;
23         int Dim, stage, MyPe, NumPes, numDirectSteps, two_pow_ndirect;
24         int procMsgCount;
25         void InitVars();
26         void CreateStageTable(int, int *);
27         void LocalProcMsg(comID id);
28   public:
29         
30         DimexRouter(int, int, int ndirect = 0);
31         ~DimexRouter();
32         void NumDeposits(comID, int);
33         void EachToAllMulticast(comID , int , void *, int);
34         void EachToManyMulticast(comID , int , void *, int, int *, int);
35         void ProcMsg(int, msgstruct **) {;}
36         void RecvManyMsg(comID, char *);
37         void ProcManyMsg(comID, char *);
38         void DummyEP(comID id, int);
39         void SetMap(int *);
40
41         //FIX this, some initialization done here
42         void SetID(comID id);
43 };
44 #endif