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