e4300bca3994935210505af6e653f7db2a5c1097
[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   void *getUserData() { return userData; }
29
30 private:
31   LBOM() { };
32
33   LBOM(LBDB *_parent, LDOMid _id,
34        void *_userData, LDCallbacks _callbacks)  {
35     parent = _parent;
36     myid = _id;
37     userData = _userData;
38     callbacks = _callbacks;
39     registering_objs = CmiFalse;
40   };
41   ~LBOM() { }
42
43   void DepositHandle(LDOMHandle _h) { myhandle = _h; };
44   void Migrate(LDObjHandle _h, int dest) { callbacks.migrate(_h,dest); };
45   CmiBool RegisteringObjs() { return registering_objs; };
46   void SetRegisteringObjs(CmiBool _set) { registering_objs = _set; };
47
48   LBDB *parent;
49   LDOMid myid;
50   LDOMHandle myhandle;
51   void *userData;
52   LDCallbacks callbacks;
53   CmiBool registering_objs;
54
55 };
56
57 #endif
58
59 /*@}*/