Merge branch 'charm' of charmgit:charm into charm
[charm.git] / src / conv-com / treerouter.h
1 /*****************************************************************************
2  * $Source$
3  * $Author$
4  * $Date$
5  * $Revision$
6  *****************************************************************************/
7
8 /**
9    @addtogroup ConvComlibRouter
10    @{
11    @file
12 */
13
14
15 #ifndef TREEROUTER_H
16 #define TREEROUTER_H
17 #include "petable.h"
18
19 class TreeRouter : public Router
20 {
21   private:
22         PeTable *PeTree;
23         int numExpect, *gpes;
24         int *totarray;
25         int MyPe, NumPes, numChildren, recvCount, recvExpected;
26         void InitVars();
27         void DownStreamMsg(comID id);
28         void LocalProcMsg(comID);
29 #if CMK_COMLIB_USE_VECTORIZE
30         PTvectorlist SortBufferUp(comID, int);
31         PTvectorlist SortBufferDown(comID, int, int);
32 #else
33         char * SortBufferUp(comID, int, int *);
34         char * SortBufferDown(comID, int, int *, int);
35 #endif
36   public:
37         TreeRouter(int, int, Strategy*);
38         ~TreeRouter();
39         void NumDeposits(comID, int);
40         void EachToAllMulticast(comID, int , void *, int);
41         void EachToManyMulticast(comID, int , void *, int, int *, int);
42         void RecvManyMsg(comID, char *);
43         void ProcManyMsg(comID, char *);
44         void DummyEP(comID, int );
45         void SetMap(int *);
46 };
47
48 #endif
49         
50 /*@}*/