]> git.buserror.net Git - polintos/scott/priv.git/blobdiff - include/c++/orb.h
xfer to laptop
[polintos/scott/priv.git] / include / c++ / orb.h
index 72daad843dcedaaed5ab6175e8e174d9c55ad62d..484c1426473e4a88c67f3e6b57d72cef48886c9f 100644 (file)
@@ -309,24 +309,13 @@ namespace System {
                }
                
                struct IFaceInfo;
+               typedef uint32_t ID;
 
                struct IFaceTable {
                        const IFaceInfo *info;
                        const ptrdiff_t offset;
                };
                
-               struct VStructInfo {
-                       // List of GUIDs of the struct and its superstructs,
-                       // starting with System.VStruct and ending with
-                       // the concrete struct.
-                       
-                       const unsigned long *const *const guids;
-
-                       // Length of inheritance chain; 1 for System.VStruct
-                       
-                       const int chainlen;
-               };
-               
                union GUID {
                        unsigned char c[16];
                        unsigned long l[];
@@ -345,7 +334,6 @@ namespace System {
                                  guid1[3] == guid2[3])));
                }
                
-               typedef uint32_t ID;
                struct ParamInfoBlock {
                        uint32_t buffer_size;
                        uint32_t copy_size;
@@ -398,6 +386,23 @@ namespace System {
 
                struct IFaceInfo {
                        const GUID *guid;
+                       void (*invoke)(Array<ID> objlist,
+                                      ParamInfoBlock::Segment *segs,
+                                      int nsegs);
+                       ::System::_i_Object *(*wrapper)(ID id);
+               };
+
+               struct VStructInfo {
+                       // List of GUIDs of the struct and its superstructs,
+                       // starting with System.VStruct and ending with
+                       // the concrete struct.
+                       
+                       const unsigned long *const *const guids;
+
+                       // Length of inheritance chain; 1 for System.VStruct
+                       
+                       const int chainlen;
+
                        int (*marshall)(GrowableArray<uint8_t> &buf,
                                        GrowableArray<ID> &objlist,
                                        ParamInfoBlock::Segment *segs,