Fixing memory leak in a debugging routine.
[charm.git] / src / ck-com / ComlibLearner.h
1 #ifndef COMLIBLEARNER_H
2 #define COMLIBLEARNER_H
3
4
5 /**
6    @addtogroup CharmComlib
7    @{
8    @file
9
10    @brief ComlibLearner
11
12 */
13
14 #include "convcomlibstrategy.h"
15
16 class ComlibGlobalStats;
17
18 /** Communication library learner which takes a strategy or a list of
19    strategies as input along with the communication pattern of the
20    objects belonging to those strategies and returns new strategies to
21    replace the input strategies. These new strategies optimize the
22    communication pattern. */
23
24 class ComlibLearner {
25  public:
26     virtual ~ComlibLearner() {}
27     /// Configures parameters of the learner. Will be called by the
28     /// communication library on every processor after the second
29     /// barrier of the communication library.
30     virtual void init() {}
31     
32     /// Optimizes a specific strategy. Returns a new optimized strategy
33     virtual Strategy* optimizePattern(Strategy *strat, 
34                                       ComlibGlobalStats &sdata){
35         return NULL;
36     }
37     
38     /// Optimizes the communication pattern of a group of strategies
39     /// together
40     virtual Strategy** optimizePattern(Strategy **strat, 
41                                        ComlibGlobalStats &sdata){
42         return NULL;
43     }
44 };
45
46 /*@}*/
47
48 #endif