Modifying the adaptive lb framework to handle async lb collection of stats without...
[charm.git] / src / ck-ldb / LBOM.h
1 /**
2  * \addtogroup CkLdb
3 */
4 /*@{*/
5
6 #ifndef LBOM_H
7 #define LBOM_H
8
9 #include "lbdb.h"
10 #include "LBObj.h"
11
12 class LBDB;
13
14 class LBOM
15 {
16 friend class LBDB;
17
18 public:
19   LDOMid id() { return myid; };
20
21   void *getUserData() { return userData; }
22
23 private:
24   LBOM() { };
25
26   LBOM(LBDB *_parent, LDOMid _id,
27        void *_userData, LDCallbacks _callbacks)  {
28     parent = _parent;
29     myid = _id;
30     userData = _userData;
31     callbacks = _callbacks;
32     registering_objs = CmiFalse;
33   };
34   ~LBOM() { }
35
36   void DepositHandle(LDOMHandle _h) { myhandle = _h; };
37   void Migrate(LDObjHandle _h, int dest) { callbacks.migrate(_h,dest); };
38   void AdaptResumeSync(LDObjHandle _h, int lb_ideal_period) {
39     callbacks.adaptResumeSync(_h, lb_ideal_period);
40   }
41   CmiBool RegisteringObjs() { return registering_objs; };
42   void SetRegisteringObjs(CmiBool _set) { registering_objs = _set; };
43
44   LBDB *parent;
45   LDOMid myid;
46   LDOMHandle myhandle;
47   void *userData;
48   LDCallbacks callbacks;
49   CmiBool registering_objs;
50
51 };
52
53 #endif
54
55 /*@}*/