Gi
Object Hierarchy:
Description:
public class Gi : Object
Register GObject types from a typelib and apply RPC calls to them.
register requires the namespace, then maps every object type to a wire alias
(Bin.register) so a client can call Alias.new with no handle, then other
methods on the lease. Request.dispatch constructs
Gi with the inbound Request and
calls dispatch. That method finds the typelib callable and routes constructors to
dispatch_new, other methods to dispatch_function. Windows and Android compile
windows/Gi.vala instead (meson, not #if).
Example
OLLMrpc.Gi.register("Gio", "2.0");
var gi = new OLLMrpc.Gi(req);
gi.dispatch();
Content:
Properties:
- public Request request { get; construct; }
Inbound call this instance applies. Owner of method / args /
connection — not copied onto Gi.
Static methods:
- public static bool in_typelib (Type gtype)
Whether gtype is a class in a loaded typelib.
- public static void register (string ns, string version) throws Error
Require ns / version and register each object or
interface GType.
- public static string[] vfunc_names (string ns, string class_name)
All vfunc names of ns.class_name from the typelib —
drives consumer override detection, so the consumer keeps no hardcoded vfunc list.
- public static int vfunc_offset (string ns, string class_name, string vfunc_name)
Byte offset of vfunc_name in ns.class_name's
class struct, from the loaded typelib (g-ir-compiler computed it; cached). A missing namespace / class / field is a consumer stub-
generation bug — fatal, same as Live.Callback invariants.
- public static void* vfunc_slot (Type type, string ns, string class_name, string vfunc_name)
Read the vfunc function pointer from type's class struct at the
typelib offset. null when the class is not peeked.
Creation methods:
Methods:
Fields:
Inherited Members:
All known members inherited from class GLib.Object
- @get
- @new
- @ref
- @set
- add_toggle_ref
- add_weak_pointer
- bind_property
- connect
- constructed
- disconnect
- dispose
- dup_data
- dup_qdata
- force_floating
- freeze_notify
- get_class
- get_data
- get_property
- get_qdata
- get_type
- getv
- interface_find_property
- interface_install_property
- interface_list_properties
- is_floating
- new_valist
- new_with_properties
- newv
- notify
- notify_property
- ref_count
- ref_sink
- remove_toggle_ref
- remove_weak_pointer
- replace_data
- replace_qdata
- set_data
- set_data_full
- set_property
- set_qdata
- set_qdata_full
- set_valist
- setv
- steal_data
- steal_qdata
- thaw_notify
- unref
- watch_closure
- weak_ref
- weak_unref