6 #ifndef _GREEDYAGENTLB_H_
7 #define _GREEDYAGENTLB_H_
10 #include "GreedyAgentLB.decl.h"
13 void CreateGreedyAgentLB();
15 class GreedyAgentLB
: public CBase_GreedyAgentLB
{
24 GreedyAgentLB(const CkLBOptions
&);
25 GreedyAgentLB(CkMigrateMessage
*m
):CBase_GreedyAgentLB(m
) { lbname
= "GreedyAgentLB"; }
26 void work(LDStats
* stats
);
28 TopologyAgent
*topologyAgent
;
29 enum HeapCmp
{GT
= '>', LT
= '<'};
30 void Heapify(HeapData
*, int, int, HeapCmp
);
31 void HeapSort(HeapData
*, int, HeapCmp
);
32 void BuildHeap(HeapData
*, int, HeapCmp
);
33 bool Compare(double, double, HeapCmp
);
34 HeapData
* BuildCpuArray(CentralLB::LDStats
*, int, int *);
35 HeapData
* BuildObjectArray(CentralLB::LDStats
*, int, int *);
36 bool QueryBalanceNow(int step
);
39 #endif /* _GREEDYAGENTLB_H_ */