change Ckpv to Cpv in conv-com
[charm.git] / src / conv-com / prefixrouter.h
1 /**
2    @addtogroup ConvComlibRouter
3    @{
4    @file 
5    @brief A prefix router strategy that avoids contention on m,n-tree networks. 
6 */
7
8 #ifndef PREFIX_ROUTER_H
9 #define PREFIX_ROUTER_H
10
11 #include <math.h>
12 #include <converse.h>
13 #include "router.h"
14
15 /// Prefix router to avoid contention on m,n-tree networks
16 class PrefixRouter : public Router {
17     int *gpes;
18     int *prefix_pelist;
19     int npes, MyPe;
20
21  public:
22     PrefixRouter(int _npes, int me, Strategy *parent) : Router(parent), npes(_npes), MyPe(me) {};
23     virtual ~PrefixRouter() {};
24     
25     virtual void EachToManyMulticastQ(comID id, CkQ<MessageHolder *> &msgq);
26
27     //communication operation
28     virtual void SetMap(int *pelist) {gpes = pelist;}
29     virtual void sendMulticast(CkQ<MessageHolder *> &msgq);
30     virtual void sendPointToPoint(CkQ<MessageHolder *> &msgq);
31 };
32
33 #endif
34
35
36 /*@}*/