00001
00008 #ifndef TREEROUTER_H
00009 #define TREEROUTER_H
00010 #include "petable.h"
00011
00012 class TreeRouter : public Router
00013 {
00014 private:
00015 PeTable *PeTree;
00016 int numExpect, *gpes;
00017 int *totarray;
00018 int MyPe, NumPes, numChildren, recvCount, recvExpected;
00019 void InitVars();
00020 void DownStreamMsg(comID id);
00021 void LocalProcMsg(comID);
00022 #if CMK_COMLIB_USE_VECTORIZE
00023 PTvectorlist SortBufferUp(comID, int);
00024 PTvectorlist SortBufferDown(comID, int, int);
00025 #else
00026 char * SortBufferUp(comID, int, int *);
00027 char * SortBufferDown(comID, int, int *, int);
00028 #endif
00029 public:
00030 TreeRouter(int, int, Strategy*);
00031 ~TreeRouter();
00032 void NumDeposits(comID, int);
00033 void EachToAllMulticast(comID, int , void *, int);
00034 void EachToManyMulticast(comID, int , void *, int, int *, int);
00035 void RecvManyMsg(comID, char *);
00036 void ProcManyMsg(comID, char *);
00037 void DummyEP(comID, int );
00038 void SetMap(int *);
00039 };
00040
00041 #endif
00042