summaryrefslogtreecommitdiff
path: root/tests/gir/async-sync-out.test
blob: 48956f61d950e7095f30f03f27b19ba2e27fbfc2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
GIR

Input:

<class name="Foo" c:type="TestFoo" glib:type-name="TestFoo" glib:get-type="test_foo_get_type" glib:type-struct="FooClass" parent="GObject.Object">
  <method name="method_async" c:identifier="test_foo_method_async">
    <return-value transfer-ownership="none">
      <type name="none"/>
    </return-value>
    <parameters>
      <instance-parameter name="self" transfer-ownership="none">
        <type name="Foo" c:type="TestFoo*"/>
      </instance-parameter>
      <parameter name="input" transfer-ownership="none">
        <type name="utf8" c:type="const gchar*"/>
      </parameter>
      <parameter name="sync_output" direction="out" transfer-ownership="full">
        <type name="utf8" c:type="gchar**"/>
      </parameter>
      <parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3" scope="async">
        <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
      </parameter>
      <parameter name="_callback__target" transfer-ownership="none" allow-none="1">
        <type name="gpointer" c:type="void*"/>
      </parameter>
    </parameters>
  </method>
  <method name="method_finish" c:identifier="test_foo_method_finish" throws="1">
    <return-value transfer-ownership="full">
      <type name="none"/>
    </return-value>
    <parameters>
      <instance-parameter name="self" transfer-ownership="none">
        <type name="Foo" c:type="TestFoo*"/>
      </instance-parameter>
      <parameter name="_res_" transfer-ownership="none">
        <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
      </parameter>
      <parameter name="output" direction="out" transfer-ownership="full">
        <type name="utf8" c:type="gchar**"/>
      </parameter>
    </parameters>
  </method>
  <constructor name="new" c:identifier="test_foo_new">
    <return-value transfer-ownership="full">
      <type name="Test.Foo" c:type="TestFoo*"/>
    </return-value>
  </constructor>
</class>

Output:

[CCode (cheader_filename = "test.h", type_id = "test_foo_get_type ()")]
public class Foo : GLib.Object {
	[CCode (has_construct_function = false)]
	public Foo ();
	public async void method_async (string input, string* sync_output, out string output) throws GLib.Error;
}