change Ckpv to Cpv in conv-com
[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 "convcomlib.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     void start_hcube(comID id);
29     
30  public:
31     
32     DimexRouter(int, int, int ndirect = 0);
33     ~DimexRouter();
34     void NumDeposits(comID, int);
35     void EachToAllMulticast(comID , int , void *, int);
36     void EachToManyMulticast(comID , int , void *, int, int *, int);
37     void EachToManyMulticastQ(comID id, CkQ<MessageHolder *> &msgq);
38     
39     void ProcMsg(int, msgstruct **) {;}
40     void RecvManyMsg(comID, char *);
41     void ProcManyMsg(comID, char *);
42     void DummyEP(comID id, int);
43     void SetMap(int *);
44     
45     //FIX this, some initialization done here
46     void SetID(comID id);
47 };
48 #endif