Interface


Object Hierarchy:

Object hierarchy for Interface

Description:

[ GIR ( visible = false ) ]
public interface Interface : Object

Live proxy that takes the wire lease as a construct property.

Bin.Stream.parse_object calls GLib.Object.new with rpc-lid on the live path. Stub construct reads rpc_lid (non-zero → already leased; skip Ns-Type.new ). Construct setters that run before that block stash values with rpc_ctor_stash and read them back with rpc_ctor_get.

[GIR (visible = false)] marks this interface non-introspectable. Stock Vala still emits an implements edge for it on every public consumer class. That edge names a library with no typelib, and GJS crashes while resolving methods. Hide it one of two ways: build with the Vala patch that skips non-introspectable interfaces (girwriter-hidden-interface-implements), or strip implements name OLLMrpc.LiveInterface with XSLT before g-ir-compiler. gnome-shell-rpc does the strip in scripts/gir-inject.xsl.

Example

public class Actor : GLib.Object, OLLMrpc.Live.Interface {
public uint64 rpc_lid { get; set construct; default = 0; }
construct {
if (this.rpc_lid != 0) {
return;
}
// else create remote peer and set rpc_lid
}
}


Namespace: OLLMrpc.Live
Package: ollmchat

Content:

Properties:

Methods:

Inherited Members:

All known members inherited from class GLib.Object