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