00001 #ifndef _DE_H
00002 #define _DE_H
00003 #include <converse.h>
00004 #include "convcomlib.h"
00005 #include "petable.h"
00006
00007
00008 class DimexRouter : public Router
00009 {
00010 private:
00011 PeTable *PeHcube, *PeHcube1;
00012 int *buffer;
00013 int* msgnum, InitCounter;
00014 int *penum,*gpes;
00015 int **next;
00016 int Dim, stage, MyPe, NumPes, numDirectSteps, two_pow_ndirect;
00017 int procMsgCount;
00018 void InitVars();
00019 void CreateStageTable(int, int *);
00020 void LocalProcMsg(comID id);
00021 void start_hcube(comID id);
00022
00023 public:
00024
00025 DimexRouter(int, int, int ndirect = 0);
00026 ~DimexRouter();
00027 void NumDeposits(comID, int);
00028 void EachToAllMulticast(comID , int , void *, int);
00029 void EachToManyMulticast(comID , int , void *, int, int *, int);
00030 void EachToManyMulticastQ(comID id, CkQ<MessageHolder *> &msgq);
00031
00032 void ProcMsg(int, msgstruct **) {;}
00033 void RecvManyMsg(comID, char *);
00034 void ProcManyMsg(comID, char *);
00035 void DummyEP(comID id, int);
00036 void SetMap(int *);
00037
00038
00039 void SetID(comID id);
00040 };
00041 #endif