New version which reduces the number of virtual function calls
[charm.git] / src / conv-com / convcomlibmanager.h
1 /* Converse ComlibManager 
2    Enables communication library strategies to be called from converse code.
3    Reused by the Charm Comlibmanager.
4    
5    Stores a strategy table. Strategies can be inserted and accessed
6    from this table.
7
8    Sameer Kumar 28/03/04.
9 */
10
11 #ifndef CONVCOMLIBMANAGER
12 #define CONVCOMLIBMANAGER
13
14 #include <converse.h>
15 #include "comlib.h"
16 #include <convcomlibstrategy.h>
17
18 #define MAX_NUM_STRATS 128
19
20 class ConvComlibManager {
21     
22     StrategyTable strategyTable;
23
24  public:
25     int nstrats;
26
27     ConvComlibManager();
28     void insertStrategy(Strategy *s);
29     void insertStrategy(Strategy *s, int loc);
30     Strategy * getStrategy(int loc) {return strategyTable[loc].strategy;}
31     StrategyTable *getStrategyTable() {return &strategyTable;}
32 };
33
34
35 void initComlibManager();
36 Strategy *ConvComlibGetStrategy(int loc);
37 void ConvComlibRegisterStrategy(Strategy *s);
38 void ConvComlibScheduleDoneInserting(int loc);
39
40 #endif