5 <class name="Foo" c:type="TestFoo" glib:type-name="TestFoo" glib:get-type="test_foo_get_type" glib:type-struct="FooClass" parent="GObject.Object">
6 <implements name="Test.IFoo"/>
7 <method name="method_virtual" c:identifier="test_foo_method_virtual" throws="1">
8 <return-value transfer-ownership="full">
12 <virtual-method name="method_virtual" invoker="method_virtual" throws="1">
13 <return-value transfer-ownership="full">
17 <method name="method_async" c:identifier="test_foo_method_async">
18 <return-value transfer-ownership="none">
22 <parameter name="input" transfer-ownership="none">
23 <type name="utf8" c:type="const gchar*"/>
25 <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2" scope="async">
26 <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
28 <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
29 <type name="gpointer" c:type="void*"/>
33 <method name="method_finish" c:identifier="test_foo_method_finish" throws="1">
34 <return-value transfer-ownership="full">
38 <parameter name="_res_" transfer-ownership="none">
39 <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
41 <parameter name="output" direction="out" transfer-ownership="full">
42 <type name="utf8" c:type="gchar**"/>
46 <constructor name="new" c:identifier="test_foo_new">
47 <return-value transfer-ownership="full">
48 <type name="Test.Foo" c:type="TestFoo*"/>
51 <constructor name="bar" c:identifier="test_foo_new_bar">
52 <return-value transfer-ownership="full">
53 <type name="Test.Foo" c:type="TestFoo*"/>
56 <property name="prop" writable="1" construct="1">
57 <type name="utf8" c:type="gchar*"/>
59 <method name="get_prop" c:identifier="test_foo_get_prop">
60 <return-value transfer-ownership="full">
61 <type name="utf8" c:type="gchar*"/>
64 <method name="set_prop" c:identifier="test_foo_set_prop">
65 <return-value transfer-ownership="none">
69 <parameter name="value" transfer-ownership="none">
70 <type name="utf8" c:type="const gchar*"/>
74 <glib:signal name="sig">
75 <return-value transfer-ownership="full">
79 <parameter name="arg" transfer-ownership="none">
80 <type name="utf8" c:type="const gchar*"/>
85 <record name="FooClass" c:type="TestFooClass" glib:is-gtype-struct-for="Foo">
86 <field name="method_virtual">
87 <callback name="method_virtual" c:type="method_virtual" throws="1">
88 <return-value transfer-ownership="full">
92 <parameter name="self" transfer-ownership="none">
93 <type name="Test.Foo" c:type="TestFoo*"/>
99 <record name="FooPrivate" c:type="TestFooPrivate" disguised="1"/>
100 <interface name="IFoo" c:type="TestIFoo" glib:type-name="TestIFoo" glib:get-type="test_ifoo_get_type" glib:type-struct="IFooIface">
101 <prerequisite name="GObject.Object"/>
102 <method name="method" c:identifier="test_ifoo_method" throws="1">
103 <return-value transfer-ownership="full">
107 <virtual-method name="method" invoker="method" throws="1">
108 <return-value transfer-ownership="full">
113 <record name="IFooIface" c:type="TestIFooIface" glib:is-gtype-struct-for="IFoo">
114 <field name="method">
115 <callback name="method" c:type="method" throws="1">
116 <return-value transfer-ownership="full">
120 <parameter name="self" transfer-ownership="none">
121 <type name="Test.IFoo" c:type="TestIFoo*"/>
130 [CCode (cheader_filename = "test.h", type_id = "test_foo_get_type ()")]
131 public class Foo : GLib.Object, Test.IFoo {
132 [CCode (has_construct_function = false)]
134 [CCode (cname = "test_foo_new_bar", has_construct_function = false)]
136 public string get_prop ();
137 public async void method_async (string input, out string output) throws GLib.Error;
138 public virtual void method_virtual () throws GLib.Error;
139 public void set_prop (string value);
140 public string prop { owned get; set construct; }
141 public signal void sig (string arg);
143 [CCode (cheader_filename = "test.h", type_id = "test_ifoo_get_type ()")]
144 public interface IFoo : GLib.Object {
145 public abstract void method () throws GLib.Error;