<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GLib" version="2.0"/>
  <include name="GObject" version="2.0"/>
  <package name="gobject-2.0"/>
  <c:include name="utility.h"/>
  <namespace name="Utility"
             version="1.0"
             shared-library="libutility.so"
             c:identifier-prefixes="Utility"
             c:symbol-prefixes="utility">
    <alias name="Glyph" c:type="UtilityGlyph">
      <type name="guint32" c:type="guint32"/>
    </alias>
    <record name="Buffer" c:type="UtilityBuffer">
      <field name="data" writable="1">
        <type name="gpointer"/>
      </field>
      <field name="length" writable="1">
        <type name="gsize" c:type="gsize"/>
      </field>
    </record>
    <union name="Byte" c:type="UtilityByte">
      <field name="value" writable="1">
        <type name="guint8" c:type="guint8"/>
      </field>
      <record name="parts" c:type="parts">
        <field name="first_nibble" writable="1" bits="4">
          <type name="guint8" c:type="guint8"/>
        </field>
        <field name="second_nibble" writable="1" bits="4">
          <type name="guint8" c:type="guint8"/>
        </field>
      </record>
    </union>
    <enumeration name="EnumType" c:type="UtilityEnumType">
      <member name="a" value="0" c:identifier="UTILITY_ENUM_A">
      </member>
      <member name="b" value="1" c:identifier="UTILITY_ENUM_B">
      </member>
      <member name="c" value="2" c:identifier="UTILITY_ENUM_C">
      </member>
    </enumeration>
    <callback name="FileFunc" c:type="UtilityFileFunc">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="path" transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <bitfield name="FlagType" c:type="UtilityFlagType">
      <member name="a" value="1" c:identifier="UTILITY_FLAG_A">
      </member>
      <member name="b" value="2" c:identifier="UTILITY_FLAG_B">
      </member>
      <member name="c" value="4" c:identifier="UTILITY_FLAG_C">
      </member>
    </bitfield>
    <class name="Object"
           c:symbol-prefix="object"
           c:type="UtilityObject"
           parent="GObject.Object"
           glib:type-name="UtilityObject"
           glib:get-type="utility_object_get_type"
           glib:type-struct="ObjectClass">
      <method name="watch_dir" c:identifier="utility_object_watch_dir">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="2"
                     destroy="3">
            <type name="FileFunc" c:type="UtilityFileFunc"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="destroy" transfer-ownership="none" scope="async">
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="ObjectClass"
            c:type="UtilityObjectClass"
            glib:is-gtype-struct-for="Object">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="Struct" c:type="UtilityStruct">
      <field name="field" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="bitfield1" writable="1" bits="3">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="bitfield2" writable="1" bits="2">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="data" writable="1">
        <array zero-terminated="0" c:type="guint8" fixed-size="16">
          <type name="guint8" c:type="guint8"/>
        </array>
      </field>
    </record>
    <record name="TaggedValue" c:type="UtilityTaggedValue">
      <field name="tag" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <union name="value" c:type="value">
        <field name="v_pointer" writable="1">
          <type name="gpointer" c:type="gpointer"/>
        </field>
        <field name="v_real" writable="1">
          <type name="gdouble" c:type="double"/>
        </field>
        <field name="v_integer" writable="1">
          <type name="glong" c:type="long"/>
        </field>
      </union>
    </record>
    <union name="Union" c:type="UtilityUnion">
      <field name="pointer" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="integer" writable="1">
        <type name="glong" c:type="glong"/>
      </field>
      <field name="real" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
    </union>
    <function name="dir_foreach" c:identifier="utility_dir_foreach">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="path" transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="func"
                   transfer-ownership="none"
                   scope="call"
                   closure="2">
          <type name="FileFunc" c:type="UtilityFileFunc"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
