Fix unittests, add missing allow-none
[gnome.gobject-introspection] / tests / scanner / foo-1.0-expected.gir
index 38bde58..d29a068 100644 (file)
@@ -8,13 +8,27 @@ and/or use gtk-doc annotations.  -->
             xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
   <include name="GLib" version="2.0"/>
   <include name="GObject" version="2.0"/>
+  <include name="Gio" version="2.0"/>
   <include name="utility" version="1.0"/>
   <package name="gobject-2.0"/>
   <c:include name="foo.h"/>
-  <namespace name="foo" version="1.0" shared-library="foo">
+  <namespace name="foo"
+             version="1.0"
+             shared-library="libfoo.so"
+             c:prefix="foo">
     <alias name="List" target="GLib.SList" c:type="FooList"/>
     <alias name="ObjectCookie" target="any" c:type="FooObjectCookie"/>
     <alias name="XEvent" target="none" c:type="FooXEvent"/>
+    <enumeration name="ASingle" c:type="FooASingle">
+      <member name="some_single_enum"
+              value="0"
+              c:identifier="FOO_SOME_SINGLE_ENUM"/>
+    </enumeration>
+    <enumeration name="AddressType" c:type="FooAddressType">
+      <member name="invalid" value="0" c:identifier="FOO_ADDRESS_INVALID"/>
+      <member name="ipv4" value="1" c:identifier="FOO_ADDRESS_IPV4"/>
+      <member name="ipv6" value="2" c:identifier="FOO_ADDRESS_IPV6"/>
+    </enumeration>
     <record name="BRect"
             c:type="FooBRect"
             glib:type-name="FooBRect"
@@ -91,7 +105,7 @@ and/or use gtk-doc annotations.  -->
     </record>
     <class name="Buffer"
            c:type="FooBuffer"
-           parent="GObject.Object"
+           parent="Object"
            glib:type-name="FooBuffer"
            glib:get-type="foo_buffer_get_type"
            glib:type-struct="BufferClass">
@@ -232,7 +246,7 @@ and/or use gtk-doc annotations.  -->
                glib:type-name="FooInterface"
                glib:get-type="foo_interface_get_type"
                glib:type-struct="InterfaceIface">
-      <vfunc name="do_foo" c:identifier="foo_interface_do_foo">
+      <virtual-method name="do_foo" invoker="do_foo">
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
@@ -241,27 +255,39 @@ and/or use gtk-doc annotations.  -->
             <type name="int" c:type="int"/>
           </parameter>
         </parameters>
-      </vfunc>
-    </interface>
-    <record name="InterfaceIface"
-            c:type="FooInterfaceIface"
-            glib:is-gtype-struct-for="Interface">
-      <field name="parent_iface">
-        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
-      </field>
-      <callback name="do_foo" c:type="do_foo">
+      </virtual-method>
+      <method name="do_foo" c:identifier="foo_interface_do_foo">
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
         <parameters>
-          <parameter name="self" transfer-ownership="none">
-            <type name="Interface" c:type="FooInterface*"/>
-          </parameter>
           <parameter name="x" transfer-ownership="none">
             <type name="int" c:type="int"/>
           </parameter>
         </parameters>
-      </callback>
+      </method>
+    </interface>
+    <record name="InterfaceIface"
+            c:type="FooInterfaceIface"
+            glib:is-gtype-struct-for="Interface">
+      <field name="parent_iface">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="do_foo">
+        <callback name="do_foo" c:type="do_foo">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="self" transfer-ownership="none">
+              <type name="Interface" c:type="FooInterface*"/>
+            </parameter>
+            <parameter name="x" transfer-ownership="none">
+              <type name="int" c:type="int"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
     </record>
     <class name="Object"
            c:type="FooObject"
@@ -280,6 +306,37 @@ and/or use gtk-doc annotations.  -->
           <type name="int" c:type="int"/>
         </return-value>
       </function>
+      <function name="get_default"
+                c:identifier="foo_object_get_default"
+                doc="This function is intended to match clutter_stage_get_default which
+uses a C sugar return type.">
+        <return-value transfer-ownership="full" doc="The global #FooSubobject">
+          <type name="Subobject" c:type="FooObject*"/>
+        </return-value>
+      </function>
+      <virtual-method name="virtual_method" invoker="virtual_method">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="first_param" transfer-ownership="none">
+            <type name="int" c:type="int"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="read_fn" invoker="read">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="offset" transfer-ownership="none">
+            <type name="int" c:type="int"/>
+          </parameter>
+          <parameter name="length" transfer-ownership="none">
+            <type name="int" c:type="int"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
       <method name="external_type" c:identifier="foo_object_external_type">
         <return-value transfer-ownership="full">
           <type name="utility.Object" c:type="UtilityObject*"/>
@@ -362,16 +419,31 @@ and/or use gtk-doc annotations.  -->
           </parameter>
         </parameters>
       </method>
-      <vfunc name="virtual_method" c:identifier="foo_object_virtual_method">
+      <method name="virtual_method" c:identifier="foo_object_virtual_method">
         <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
+          <type name="boolean" c:type="gboolean"/>
         </return-value>
         <parameters>
           <parameter name="first_param" transfer-ownership="none">
             <type name="int" c:type="int"/>
           </parameter>
         </parameters>
-      </vfunc>
+      </method>
+      <method name="read"
+              c:identifier="foo_object_read"
+              doc="Read some stuff.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="offset" transfer-ownership="none">
+            <type name="int" c:type="int"/>
+          </parameter>
+          <parameter name="length" transfer-ownership="none">
+            <type name="int" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
       <property name="string" writable="1" construct="1">
         <type name="utf8" c:type="gchararray"/>
       </property>
@@ -401,19 +473,44 @@ and/or use gtk-doc annotations.  -->
       <field name="parent_class">
         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
       </field>
-      <callback name="virtual_method" c:type="virtual_method">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <type name="Object" c:type="FooObject*"/>
-          </parameter>
-          <parameter name="first_param" transfer-ownership="none">
-            <type name="int" c:type="int"/>
-          </parameter>
-        </parameters>
-      </callback>
+      <field name="virtual_method">
+        <callback name="virtual_method" c:type="virtual_method">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="object" transfer-ownership="none">
+              <type name="Object" c:type="FooObject*"/>
+            </parameter>
+            <parameter name="first_param" transfer-ownership="none">
+              <type name="int" c:type="int"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="read_fn">
+        <callback name="read_fn" c:type="read_fn">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="object" transfer-ownership="none">
+              <type name="Object" c:type="FooObject*"/>
+            </parameter>
+            <parameter name="offset" transfer-ownership="none">
+              <type name="int" c:type="int"/>
+            </parameter>
+            <parameter name="length" transfer-ownership="none">
+              <type name="int" c:type="int"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_reserved">
+        <array zero-terminated="0" c:type="GCallback" fixed-size="4">
+          <type name="GObject.Callback"/>
+        </array>
+      </field>
     </record>
     <constant name="PIE_IS_TASTY" value="3.14159">
       <type name="double"/>
@@ -464,6 +561,21 @@ and/or use gtk-doc annotations.  -->
     <constant name="SUCCESS_INT" value="4408">
       <type name="int"/>
     </constant>
+    <enumeration name="StackLayer" c:type="FooStackLayer">
+      <member name="desktop" value="0" c:identifier="FOO_LAYER_DESKTOP"/>
+      <member name="bottom" value="1" c:identifier="FOO_LAYER_BOTTOM"/>
+      <member name="normal" value="2" c:identifier="FOO_LAYER_NORMAL"/>
+      <member name="top" value="4" c:identifier="FOO_LAYER_TOP"/>
+      <member name="dock" value="4" c:identifier="FOO_LAYER_DOCK"/>
+      <member name="fullscreen" value="5" c:identifier="FOO_LAYER_FULLSCREEN"/>
+      <member name="focused_window"
+              value="6"
+              c:identifier="FOO_LAYER_FOCUSED_WINDOW"/>
+      <member name="override_redirect"
+              value="7"
+              c:identifier="FOO_LAYER_OVERRIDE_REDIRECT"/>
+      <member name="last" value="8" c:identifier="FOO_LAYER_LAST"/>
+    </enumeration>
     <record name="Struct" c:type="FooStruct">
       <field name="priv" writable="1">
         <type name="StructPrivate" c:type="FooStructPrivate*"/>
@@ -480,11 +592,21 @@ and/or use gtk-doc annotations.  -->
                glib:get-type="foo_sub_interface_get_type"
                glib:type-struct="SubInterfaceIface">
       <prerequisite name="Interface"/>
-      <vfunc name="do_bar" c:identifier="foo_sub_interface_do_bar">
+      <virtual-method name="do_bar" invoker="do_bar">
         <return-value transfer-ownership="none">
           <type name="none" c:type="void"/>
         </return-value>
-      </vfunc>
+      </virtual-method>
+      <method name="do_bar" c:identifier="foo_sub_interface_do_bar">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <glib:signal name="destroy-event">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
     </interface>
     <record name="SubInterfaceIface"
             c:type="FooSubInterfaceIface"
@@ -492,16 +614,30 @@ and/or use gtk-doc annotations.  -->
       <field name="parent_iface">
         <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
       </field>
-      <callback name="do_bar" c:type="do_bar">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="self" transfer-ownership="none">
-            <type name="SubInterface" c:type="FooSubInterface*"/>
-          </parameter>
-        </parameters>
-      </callback>
+      <field name="destroy_event">
+        <callback name="destroy_event" c:type="destroy_event">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="self" transfer-ownership="none">
+              <type name="SubInterface" c:type="FooSubInterface*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="do_bar">
+        <callback name="do_bar" c:type="do_bar">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="self" transfer-ownership="none">
+              <type name="SubInterface" c:type="FooSubInterface*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
     </record>
     <class name="Subobject"
            c:type="FooSubobject"
@@ -567,6 +703,47 @@ and/or use gtk-doc annotations.  -->
         </parameter>
       </parameters>
     </callback>
+    <function name="async_ready_callback"
+              c:identifier="foo_async_ready_callback">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+          <type name="Gio.Cancellable" c:type="GCancellable*"/>
+        </parameter>
+        <parameter name="callback"
+                   transfer-ownership="none"
+                   scope="async"
+                   closure="2">
+          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="destroy_notify_callback"
+              c:identifier="foo_destroy_notify_callback">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="callback"
+                   transfer-ownership="none"
+                   scope="notified"
+                   closure="1"
+                   destroy="2">
+          <type name="Callback" c:type="FooCallback"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="destroy" transfer-ownership="none" scope="call">
+          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
     <function name="enum_type_method" c:identifier="foo_enum_type_method">
       <return-value transfer-ownership="none">
         <type name="int" c:type="int"/>
@@ -701,7 +878,7 @@ and/or use gtk-doc annotations.  -->
         <parameter name="i" transfer-ownership="none">
           <type name="int" c:type="gint"/>
         </parameter>
-        <parameter name="callback" transfer-ownership="none">
+        <parameter name="callback" transfer-ownership="none" scope="call">
           <type name="VarargsCallback" c:type="FooVarargsCallback"/>
         </parameter>
       </parameters>
@@ -712,7 +889,7 @@ and/or use gtk-doc annotations.  -->
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
-        <parameter name="callback" transfer-ownership="none">
+        <parameter name="callback" transfer-ownership="none" scope="call">
           <type name="VarargsCallback" c:type="FooVarargsCallback"/>
         </parameter>
       </parameters>
@@ -723,10 +900,10 @@ and/or use gtk-doc annotations.  -->
         <type name="none" c:type="void"/>
       </return-value>
       <parameters>
-        <parameter name="callback" transfer-ownership="none">
+        <parameter name="callback" transfer-ownership="none" scope="call">
           <type name="VarargsCallback" c:type="FooVarargsCallback"/>
         </parameter>
-        <parameter name="callback2" transfer-ownership="none">
+        <parameter name="callback2" transfer-ownership="none" scope="call">
           <type name="VarargsCallback" c:type="FooVarargsCallback"/>
         </parameter>
       </parameters>