]> git.buserror.net Git - polintos/scott/priv.git/blobdiff - idl/objmgr.idl
ORB documentation updates.
[polintos/scott/priv.git] / idl / objmgr.idl
index bf7d08a4e35a62df93091b82e44fd13fc4b129fa..764e055f6c1137319a9a1df421615fda67da6711 100644 (file)
@@ -14,11 +14,15 @@ struct VStruct virtual {
 };
 
 namespace Objects {
-       // FIXME: make this a built-in ID type that fixes things
-       // up when moving between systems.  It can be native word
-       // sized, rather than always long.
+       typedef uint ID;
+       
+       struct GUID {
+               ulong[2] data;
+       };
 
-       typedef ulong ID;
+       struct IHash {
+               uint[5] data;
+       };
 
        struct TypeDesc {
                enum BasicType {
@@ -118,7 +122,7 @@ namespace Objects {
        interface IDSpace {
                guid: "06489629-9C25-4C14-9A5B-6C59639C87D6";
 
-               new_object(Mem.AddrSpace aspace, ulong entry, ID obj out);
+               new_object(ID obj, IHash hash);
                
                // Release "num" references on the object.  If exactly "num"
                // references remain, the object handle is closed and "gone" is
@@ -132,6 +136,18 @@ namespace Objects {
                // a refcount of 1.
                
                release(ID obj, int num, bool gone out);
+
+               // Delete an object regardless of the number of references.
+               // If the object is local, then all remote references will
+               // become dangling; any attempt to pass the handle to the
+               // ORB will result in an InvalidReference exception.
+
+               revoke(ID obj);
+               
+               // Return the number of references to an object.
+               // This method is intended for debugging only.
+               
+               get_refs(ID obj, int num out);
        };
        
        // This is a generic Factory interface; specific factories may