<?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="AppStreamGlib" version="1.0"/>
  <include name="GObject" version="2.0"/>
  <include name="GdkPixbuf" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <package name="appstream-builder"/>
  <namespace name="AppStreamBuilder"
             version="1.0"
             shared-library="libappstream-glib.so.7,libappstream-builder.so.7,libarchive.so.13"
             c:identifier-prefixes="Asb"
             c:symbol-prefixes="asb_">
    <class name="App"
           c:symbol-prefix="app"
           c:type="AsbApp"
           parent="AppStreamGlib.App"
           glib:type-name="AsbApp"
           glib:get-type="asb_app_get_type"
           glib:type-struct="AppClass">
      <constructor name="new" c:identifier="asb_app_new" version="0.1.0">
        <doc xml:space="preserve">Creates a new application object.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #AsbApp</doc>
          <type name="App" c:type="AsbApp*"/>
        </return-value>
        <parameters>
          <parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">The ID for the package</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_pixbuf" c:identifier="asb_app_add_pixbuf">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <type name="App" c:type="AsbApp*"/>
          </instance-parameter>
          <parameter name="pixbuf" transfer-ownership="none">
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_requires_appdata"
              c:identifier="asb_app_add_requires_appdata"
              version="0.1.0"
              introspectable="0">
        <doc xml:space="preserve">Adds a reason that AppData is required.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbApp</doc>
            <type name="App" c:type="AsbApp*"/>
          </instance-parameter>
          <parameter name="fmt" transfer-ownership="none">
            <doc xml:space="preserve">format string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve">varargs</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="add_screenshot_source"
              c:identifier="asb_app_add_screenshot_source"
              version="0.1.0"
              throws="1">
        <doc xml:space="preserve">Adds a screenshot from a previously saved image.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbApp</doc>
            <type name="App" c:type="AsbApp*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">filename to the source image</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_package"
              c:identifier="asb_app_get_package"
              version="0.1.0">
        <doc xml:space="preserve">Gets the package that backs the application.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">package</doc>
          <type name="Package" c:type="AsbPackage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbApp</doc>
            <type name="App" c:type="AsbApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_requires_appdata"
              c:identifier="asb_app_get_requires_appdata"
              version="0.1.0">
        <doc xml:space="preserve">Gets if AppData is still required for the application.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A list of reasons</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbApp</doc>
            <type name="App" c:type="AsbApp*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="save_resources"
              c:identifier="asb_app_save_resources"
              version="0.1.0"
              throws="1">
        <doc xml:space="preserve">Saves to disk any resources set for the application.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbApp</doc>
            <type name="App" c:type="AsbApp*"/>
          </instance-parameter>
          <parameter name="save_flags" transfer-ownership="none">
            <doc xml:space="preserve">#AsbAppSaveFlags, e.g. %ASB_APP_SAVE_FLAG_SCREENSHOTS</doc>
            <type name="AppSaveFlags" c:type="AsbAppSaveFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_hidpi_enabled"
              c:identifier="asb_app_set_hidpi_enabled"
              version="0.3.1">
        <doc xml:space="preserve">Sets the HiDPI mode for the application.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbApp</doc>
            <type name="App" c:type="AsbApp*"/>
          </instance-parameter>
          <parameter name="hidpi_enabled" transfer-ownership="none">
            <doc xml:space="preserve">if HiDPI mode should be enabled</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_requires_appdata"
              c:identifier="asb_app_set_requires_appdata"
              version="0.1.0">
        <doc xml:space="preserve">Sets (or clears) the requirement for AppData.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbApp</doc>
            <type name="App" c:type="AsbApp*"/>
          </instance-parameter>
          <parameter name="requires_appdata" transfer-ownership="none">
            <doc xml:space="preserve">boolean</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="AppStreamGlib.App" c:type="AsApp"/>
      </field>
    </class>
    <record name="AppClass"
            c:type="AsbAppClass"
            glib:is-gtype-struct-for="App">
      <field name="parent_class">
        <type name="AppStreamGlib.AppClass" c:type="AsAppClass"/>
      </field>
      <field name="_asb_reserved1" introspectable="0">
        <callback name="_asb_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_asb_reserved2" introspectable="0">
        <callback name="_asb_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_asb_reserved3" introspectable="0">
        <callback name="_asb_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_asb_reserved4" introspectable="0">
        <callback name="_asb_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_asb_reserved5" introspectable="0">
        <callback name="_asb_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_asb_reserved6" introspectable="0">
        <callback name="_asb_reserved6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_asb_reserved7" introspectable="0">
        <callback name="_asb_reserved7">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_asb_reserved8" introspectable="0">
        <callback name="_asb_reserved8">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="AppSaveFlags" c:type="AsbAppSaveFlags">
      <doc xml:space="preserve">The flags to use when saving resources.</doc>
      <member name="none" value="0" c:identifier="ASB_APP_SAVE_FLAG_NONE">
        <doc xml:space="preserve">Nothing to do</doc>
      </member>
      <member name="icons" value="1" c:identifier="ASB_APP_SAVE_FLAG_ICONS">
        <doc xml:space="preserve">Save icons to disk</doc>
      </member>
      <member name="screenshots"
              value="2"
              c:identifier="ASB_APP_SAVE_FLAG_SCREENSHOTS">
        <doc xml:space="preserve">Save screenshots to disk</doc>
      </member>
    </enumeration>
    <class name="Context"
           c:symbol-prefix="context"
           c:type="AsbContext"
           parent="GObject.Object"
           glib:type-name="AsbContext"
           glib:get-type="asb_context_get_type"
           glib:type-struct="ContextClass">
      <constructor name="new" c:identifier="asb_context_new" version="0.1.0">
        <doc xml:space="preserve">Creates a new high-level instance.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #AsbContext</doc>
          <type name="Context" c:type="AsbContext*"/>
        </return-value>
      </constructor>
      <method name="add_app"
              c:identifier="asb_context_add_app"
              version="0.1.0">
        <doc xml:space="preserve">Adds an application to the context.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContext</doc>
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
          <parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbApp</doc>
            <type name="App" c:type="AsbApp*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_app_ignore" c:identifier="asb_context_add_app_ignore">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
          <parameter name="pkg" transfer-ownership="none">
            <type name="Package" c:type="AsbPackage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_filename"
              c:identifier="asb_context_add_filename"
              version="0.1.0"
              throws="1">
        <doc xml:space="preserve">Adds a filename to the list of packages to be processed</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContext</doc>
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">package filename</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_package"
              c:identifier="asb_context_add_package"
              version="0.3.5">
        <doc xml:space="preserve">Adds a package to the list of packages to be processed</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContext</doc>
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
          <parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_by_pkgname"
              c:identifier="asb_context_find_by_pkgname"
              version="0.1.0">
        <doc xml:space="preserve">Find a package from its name.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #AsbPackage, or %NULL for not found.</doc>
          <type name="Package" c:type="AsbPackage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContext</doc>
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
          <parameter name="pkgname" transfer-ownership="none">
            <doc xml:space="preserve">a package name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_in_cache"
              c:identifier="asb_context_find_in_cache"
              version="0.1.0">
        <doc xml:space="preserve">Finds an application in the cache. This will only return results if
asb_context_set_old_metadata() has been used.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE to skip exploding the package</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContext</doc>
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">cache-id</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_api_version"
              c:identifier="asb_context_get_api_version"
              version="0.1.0">
        <doc xml:space="preserve">Gets the target metadata API version.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">floating point</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContext</doc>
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_cache_dir"
              c:identifier="asb_context_get_cache_dir"
              version="0.3.6">
        <doc xml:space="preserve">Gets the screenshot directory to use</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">directory</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContext</doc>
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_file_globs"
              c:identifier="asb_context_get_file_globs"
              version="0.1.0"
              introspectable="0">
        <doc xml:space="preserve">Gets the list of file globs added by plugins.</doc>
        <return-value>
          <doc xml:space="preserve">file globs</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="gpointer" c:type="gpointer"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContext</doc>
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_flag"
              c:identifier="asb_context_get_flag"
              version="0.3.5">
        <doc xml:space="preserve">Gets one specific build flag.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the flag was set</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContext</doc>
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
          <parameter name="flag" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContextFlags</doc>
            <type name="ContextFlags" c:type="AsbContextFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_flags"
              c:identifier="asb_context_get_flags"
              version="0.3.5">
        <doc xml:space="preserve">Gets the build flags.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#AsbContextFlags</doc>
          <type name="ContextFlags" c:type="AsbContextFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContext</doc>
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_min_icon_size"
              c:identifier="asb_context_get_min_icon_size"
              version="0.3.1">
        <doc xml:space="preserve">Gets the minimum icon size in pixels.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">size</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContext</doc>
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_packages"
              c:identifier="asb_context_get_packages"
              version="0.1.0">
        <doc xml:space="preserve">Returns the packages already added to the context.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">array of packages</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Package"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContext</doc>
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_plugin_loader"
              c:identifier="asb_context_get_plugin_loader"
              version="0.1.0"
              introspectable="0">
        <doc xml:space="preserve">Gets the plugins available to the metadata extractor.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the plugin loader in use</doc>
          <type c:type="AsbPluginLoader*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContext</doc>
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_temp_dir"
              c:identifier="asb_context_get_temp_dir"
              version="0.1.0">
        <doc xml:space="preserve">Gets the temporary directory to use</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">directory</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContext</doc>
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="process"
              c:identifier="asb_context_process"
              version="0.1.0"
              throws="1">
        <doc xml:space="preserve">Processes all the packages that have been added to the context.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContext</doc>
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_api_version"
              c:identifier="asb_context_set_api_version"
              version="0.1.0">
        <doc xml:space="preserve">Sets the version of the metadata to write.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContext</doc>
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
          <parameter name="api_version" transfer-ownership="none">
            <doc xml:space="preserve">the AppStream API version</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_basename"
              c:identifier="asb_context_set_basename"
              version="0.1.0">
        <doc xml:space="preserve">Sets the basename for the two metadata files.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContext</doc>
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
          <parameter name="basename" transfer-ownership="none">
            <doc xml:space="preserve">AppStream file basename, e.g. "appstream"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_cache_dir"
              c:identifier="asb_context_set_cache_dir"
              version="0.1.0">
        <doc xml:space="preserve">Sets the cache directory to use when building metadata.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContext</doc>
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
          <parameter name="cache_dir" transfer-ownership="none">
            <doc xml:space="preserve">directory</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_flags"
              c:identifier="asb_context_set_flags"
              version="0.3.5">
        <doc xml:space="preserve">Sets if the cache id should be included in the metadata.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContext</doc>
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">#AsbContextFlags, e.g. %ASB_CONTEXT_FLAG_ADD_CACHE_ID</doc>
            <type name="ContextFlags" c:type="AsbContextFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icons_dir"
              c:identifier="asb_context_set_icons_dir"
              version="0.3.5">
        <doc xml:space="preserve">Sets the icons directory to use when building metadata.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContext</doc>
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
          <parameter name="icons_dir" transfer-ownership="none">
            <doc xml:space="preserve">directory</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_log_dir"
              c:identifier="asb_context_set_log_dir"
              version="0.1.0">
        <doc xml:space="preserve">Sets the log directory to use when building metadata.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContext</doc>
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
          <parameter name="log_dir" transfer-ownership="none">
            <doc xml:space="preserve">directory</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_max_threads"
              c:identifier="asb_context_set_max_threads"
              version="0.1.0">
        <doc xml:space="preserve">Sets the maximum number of threads to use when processing packages.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContext</doc>
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
          <parameter name="max_threads" transfer-ownership="none">
            <doc xml:space="preserve">integer</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_min_icon_size"
              c:identifier="asb_context_set_min_icon_size"
              version="0.3.1">
        <doc xml:space="preserve">Sets the smallest icon size in pixels supported.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContext</doc>
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
          <parameter name="min_icon_size" transfer-ownership="none">
            <doc xml:space="preserve">integer</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_old_metadata"
              c:identifier="asb_context_set_old_metadata"
              version="0.1.0">
        <doc xml:space="preserve">Sets the filename location of the old metadata file.
Note: the old metadata must have been built with cache-ids to be useful.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContext</doc>
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
          <parameter name="old_metadata" transfer-ownership="none">
            <doc xml:space="preserve">filename, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_origin"
              c:identifier="asb_context_set_origin"
              version="0.3.4">
        <doc xml:space="preserve">Sets the origin for the two metadata files.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContext</doc>
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
          <parameter name="origin" transfer-ownership="none">
            <doc xml:space="preserve">AppStream origin, e.g. "fedora-21"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_output_dir"
              c:identifier="asb_context_set_output_dir"
              version="0.1.0">
        <doc xml:space="preserve">Sets the output directory to use when building metadata.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContext</doc>
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
          <parameter name="output_dir" transfer-ownership="none">
            <doc xml:space="preserve">directory</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_screenshot_dir"
              c:identifier="asb_context_set_screenshot_dir">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
          <parameter name="screenshot_dir" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_temp_dir"
              c:identifier="asb_context_set_temp_dir"
              version="0.1.0">
        <doc xml:space="preserve">Sets the temporary directory to use when building metadata.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContext</doc>
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
          <parameter name="temp_dir" transfer-ownership="none">
            <doc xml:space="preserve">directory</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="setup"
              c:identifier="asb_context_setup"
              version="0.1.0"
              throws="1">
        <doc xml:space="preserve">Sets up the context ready for use.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContext</doc>
            <type name="Context" c:type="AsbContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="ContextClass"
            c:type="AsbContextClass"
            glib:is-gtype-struct-for="Context">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_asb_reserved1" introspectable="0">
        <callback name="_asb_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_asb_reserved2" introspectable="0">
        <callback name="_asb_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_asb_reserved3" introspectable="0">
        <callback name="_asb_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_asb_reserved4" introspectable="0">
        <callback name="_asb_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_asb_reserved5" introspectable="0">
        <callback name="_asb_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_asb_reserved6" introspectable="0">
        <callback name="_asb_reserved6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_asb_reserved7" introspectable="0">
        <callback name="_asb_reserved7">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_asb_reserved8" introspectable="0">
        <callback name="_asb_reserved8">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <bitfield name="ContextFlags" c:type="AsbContextFlags">
      <doc xml:space="preserve">The flags to use when processing the context.</doc>
      <member name="none" value="0" c:identifier="ASB_CONTEXT_FLAG_NONE">
        <doc xml:space="preserve">No special actions to use</doc>
      </member>
      <member name="ignore_missing_info"
              value="0"
              c:identifier="ASB_CONTEXT_FLAG_IGNORE_MISSING_INFO">
        <doc xml:space="preserve">Ignore missing information</doc>
      </member>
      <member name="ignore_missing_parents"
              value="1"
              c:identifier="ASB_CONTEXT_FLAG_IGNORE_MISSING_PARENTS">
        <doc xml:space="preserve">Ignore missing parents</doc>
      </member>
      <member name="add_cache_id"
              value="2"
              c:identifier="ASB_CONTEXT_FLAG_ADD_CACHE_ID">
        <doc xml:space="preserve">Add cache ID to reuse metadata</doc>
      </member>
      <member name="hidpi_icons"
              value="4"
              c:identifier="ASB_CONTEXT_FLAG_HIDPI_ICONS">
        <doc xml:space="preserve">Include HiDPI icons</doc>
      </member>
      <member name="embedded_icons"
              value="8"
              c:identifier="ASB_CONTEXT_FLAG_EMBEDDED_ICONS">
        <doc xml:space="preserve">Embed the icons in the XML</doc>
      </member>
      <member name="no_network"
              value="16"
              c:identifier="ASB_CONTEXT_FLAG_NO_NETWORK">
        <doc xml:space="preserve">Do not download files</doc>
      </member>
      <member name="include_failed"
              value="32"
              c:identifier="ASB_CONTEXT_FLAG_INCLUDE_FAILED">
        <doc xml:space="preserve">Write the origin-ignore.xml file</doc>
      </member>
      <member name="uncompressed_icons"
              value="64"
              c:identifier="ASB_CONTEXT_FLAG_UNCOMPRESSED_ICONS">
        <doc xml:space="preserve">Do not pack icons into a tarball</doc>
      </member>
      <member name="ignore_dead_upstream"
              value="128"
              c:identifier="ASB_CONTEXT_FLAG_IGNORE_DEAD_UPSTREAM">
        <doc xml:space="preserve">Include apps that are dead upstream</doc>
      </member>
      <member name="ignore_obsolete_deps"
              value="256"
              c:identifier="ASB_CONTEXT_FLAG_IGNORE_OBSOLETE_DEPS">
        <doc xml:space="preserve">Include apps that use obsolete toolkits</doc>
      </member>
      <member name="ignore_legacy_icons"
              value="512"
              c:identifier="ASB_CONTEXT_FLAG_IGNORE_LEGACY_ICONS">
        <doc xml:space="preserve">Include apps that use legacy icon formats</doc>
      </member>
      <member name="ignore_settings"
              value="1024"
              c:identifier="ASB_CONTEXT_FLAG_IGNORE_SETTINGS">
        <doc xml:space="preserve">Include apps that are marked as settings</doc>
      </member>
      <member name="use_fallbacks"
              value="2048"
              c:identifier="ASB_CONTEXT_FLAG_USE_FALLBACKS">
        <doc xml:space="preserve">Fall back to suboptimal data where required</doc>
      </member>
    </bitfield>
    <class name="Package"
           c:symbol-prefix="package"
           c:type="AsbPackage"
           parent="GObject.Object"
           glib:type-name="AsbPackage"
           glib:get-type="asb_package_get_type"
           glib:type-struct="PackageClass">
      <constructor name="new" c:identifier="asb_package_new" version="0.2.2">
        <doc xml:space="preserve">Creates a new %AsbPackage.

You don't need to use this function unless you want a memory-backed package
for testing purposes.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a package</doc>
          <type name="Package" c:type="AsbPackage*"/>
        </return-value>
      </constructor>
      <virtual-method name="close" invoker="close" version="0.3.5" throws="1">
        <doc xml:space="preserve">Closes a package, which can be re-opened if required.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="compare" invoker="compare" version="0.1.0">
        <doc xml:space="preserve">Compares one package with another.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">-1 for &lt;, 0 for the same and +1 for &gt;</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg1" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
          <parameter name="pkg2" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="ensure"
                      invoker="ensure"
                      version="0.3.0"
                      throws="1">
        <doc xml:space="preserve">Ensures data exists.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">#AsbPackageEnsureFlags</doc>
            <type name="PackageEnsureFlags" c:type="AsbPackageEnsureFlags"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="explode"
                      invoker="explode"
                      version="0.1.0"
                      throws="1">
        <doc xml:space="preserve">Decompresses a package into a directory, optionally using a glob list.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
          <parameter name="dir" transfer-ownership="none">
            <doc xml:space="preserve">directory to explode into</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="glob" transfer-ownership="none">
            <doc xml:space="preserve">the glob list, or %NULL</doc>
            <array name="GLib.PtrArray" c:type="GPtrArray*">
              <type name="utf8"/>
            </array>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="open" invoker="open" version="0.1.0" throws="1">
        <doc xml:space="preserve">Opens a package and parses the contents.
As little i/o should be done at this point, and implementations
should rely on asb_package_ensure() to set data.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">package filename</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_dep"
              c:identifier="asb_package_add_dep"
              version="0.3.5">
        <doc xml:space="preserve">Add a package dependancy.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
          <parameter name="dep" transfer-ownership="none">
            <doc xml:space="preserve">package dep</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_release"
              c:identifier="asb_package_add_release"
              version="0.1.0">
        <doc xml:space="preserve">Adds a (downstream) release to a package.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
          <parameter name="version" transfer-ownership="none">
            <doc xml:space="preserve">a package version</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">a package release</doc>
            <type name="AppStreamGlib.Release" c:type="AsRelease*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear" c:identifier="asb_package_clear" version="0.3.5">
        <doc xml:space="preserve">Deallocates previously ensured data.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">#AsbPackageEnsureFlags</doc>
            <type name="PackageEnsureFlags" c:type="AsbPackageEnsureFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="close"
              c:identifier="asb_package_close"
              version="0.3.5"
              throws="1">
        <doc xml:space="preserve">Closes a package, which can be re-opened if required.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="compare"
              c:identifier="asb_package_compare"
              version="0.1.0">
        <doc xml:space="preserve">Compares one package with another.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">-1 for &lt;, 0 for the same and +1 for &gt;</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg1" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
          <parameter name="pkg2" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="ensure"
              c:identifier="asb_package_ensure"
              version="0.3.0"
              throws="1">
        <doc xml:space="preserve">Ensures data exists.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">#AsbPackageEnsureFlags</doc>
            <type name="PackageEnsureFlags" c:type="AsbPackageEnsureFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="explode"
              c:identifier="asb_package_explode"
              version="0.1.0"
              throws="1">
        <doc xml:space="preserve">Decompresses a package into a directory, optionally using a glob list.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
          <parameter name="dir" transfer-ownership="none">
            <doc xml:space="preserve">directory to explode into</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="glob" transfer-ownership="none">
            <doc xml:space="preserve">the glob list, or %NULL</doc>
            <array name="GLib.PtrArray" c:type="GPtrArray*">
              <type name="utf8"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="get_arch"
              c:identifier="asb_package_get_arch"
              version="0.3.0">
        <doc xml:space="preserve">Gets the package architecture</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">utf8 string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_basename"
              c:identifier="asb_package_get_basename"
              version="0.1.0">
        <doc xml:space="preserve">Gets the package basename.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">utf8 string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_config"
              c:identifier="asb_package_get_config"
              version="0.1.0">
        <doc xml:space="preserve">Gets a config attribute from a package.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">utf8 string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">utf8 string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_deps"
              c:identifier="asb_package_get_deps"
              version="0.3.5">
        <doc xml:space="preserve">Get the package dependancy list.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">deplist</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_enabled"
              c:identifier="asb_package_get_enabled"
              version="0.1.0">
        <doc xml:space="preserve">Gets if the package is enabled.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">enabled status</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_evr"
              c:identifier="asb_package_get_evr"
              version="0.1.0">
        <doc xml:space="preserve">Gets the package EVR.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">utf8 string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_filelist"
              c:identifier="asb_package_get_filelist"
              version="0.1.0">
        <doc xml:space="preserve">Gets the package filelist.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">filelist</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_filename"
              c:identifier="asb_package_get_filename"
              version="0.1.0">
        <doc xml:space="preserve">Gets the filename of the package.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">utf8 filename</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_kind"
              c:identifier="asb_package_get_kind"
              version="0.2.5">
        <doc xml:space="preserve">Gets the kind of the package.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #AsbPackageKind</doc>
          <type name="PackageKind" c:type="AsbPackageKind"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_license"
              c:identifier="asb_package_get_license"
              version="0.1.0">
        <doc xml:space="preserve">Gets the package license.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">utf8 string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name"
              c:identifier="asb_package_get_name"
              version="0.1.0">
        <doc xml:space="preserve">Gets the package name</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">utf8 string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_nevr"
              c:identifier="asb_package_get_nevr"
              version="0.1.0">
        <doc xml:space="preserve">Gets the package NEVR.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">utf8 string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_nevra"
              c:identifier="asb_package_get_nevra"
              version="0.3.0">
        <doc xml:space="preserve">Gets the package NEVRA.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">utf8 string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_release"
              c:identifier="asb_package_get_release"
              version="0.1.0">
        <doc xml:space="preserve">Gets the release for a specific version.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an #AsRelease, or %NULL for not found</doc>
          <type name="AppStreamGlib.Release" c:type="AsRelease*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
          <parameter name="version" transfer-ownership="none">
            <doc xml:space="preserve">package version</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_releases"
              c:identifier="asb_package_get_releases"
              version="0.1.0">
        <doc xml:space="preserve">Gets the releases of the package.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the release data</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="AppStreamGlib.Release"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_source"
              c:identifier="asb_package_get_source"
              version="0.1.0">
        <doc xml:space="preserve">Gets the package source nevra.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">utf8 string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_source_pkgname"
              c:identifier="asb_package_get_source_pkgname"
              version="0.2.4">
        <doc xml:space="preserve">Gets the package source name.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">utf8 string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_url"
              c:identifier="asb_package_get_url"
              version="0.1.0">
        <doc xml:space="preserve">Gets the package homepage URL</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">utf8 string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_vcs"
              c:identifier="asb_package_get_vcs"
              version="0.3.4">
        <doc xml:space="preserve">Gets the package version control system.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">utf8 string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_version"
              c:identifier="asb_package_get_version"
              version="0.3.5">
        <doc xml:space="preserve">Gets the package version</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">utf8 string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="log"
              c:identifier="asb_package_log"
              version="0.1.0"
              introspectable="0">
        <doc xml:space="preserve">Logs a message.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
          <parameter name="log_level" transfer-ownership="none">
            <doc xml:space="preserve">a #AsbPackageLogLevel</doc>
            <type name="PackageLogLevel" c:type="AsbPackageLogLevel"/>
          </parameter>
          <parameter name="fmt" transfer-ownership="none">
            <doc xml:space="preserve">Format string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve">varargs</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="log_flush"
              c:identifier="asb_package_log_flush"
              version="0.1.0"
              throws="1">
        <doc xml:space="preserve">Flushes the log queue.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="log_start"
              c:identifier="asb_package_log_start"
              version="0.1.0">
        <doc xml:space="preserve">Starts the log timer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="open"
              c:identifier="asb_package_open"
              version="0.1.0"
              throws="1">
        <doc xml:space="preserve">Opens a package and parses the contents.
As little i/o should be done at this point, and implementations
should rely on asb_package_ensure() to set data.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">package filename</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_arch"
              c:identifier="asb_package_set_arch"
              version="0.1.0">
        <doc xml:space="preserve">Sets the package architecture.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
          <parameter name="arch" transfer-ownership="none">
            <doc xml:space="preserve">package architecture</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_config"
              c:identifier="asb_package_set_config"
              version="0.1.0">
        <doc xml:space="preserve">Sets a config attribute on a package.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve">utf8 string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">utf8 string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_enabled"
              c:identifier="asb_package_set_enabled"
              version="0.1.0">
        <doc xml:space="preserve">Enables or disables the package.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
          <parameter name="enabled" transfer-ownership="none">
            <doc xml:space="preserve">boolean</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_epoch"
              c:identifier="asb_package_set_epoch"
              version="0.1.0">
        <doc xml:space="preserve">Sets the package epoch</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
          <parameter name="epoch" transfer-ownership="none">
            <doc xml:space="preserve">epoch, or 0 for unset</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_filelist"
              c:identifier="asb_package_set_filelist"
              version="0.1.0">
        <doc xml:space="preserve">Sets the package filelist.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
          <parameter name="filelist" transfer-ownership="none">
            <doc xml:space="preserve">package filelist</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_filename"
              c:identifier="asb_package_set_filename"
              version="0.3.5">
        <doc xml:space="preserve">Sets the package filename.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve">package filename</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_kind"
              c:identifier="asb_package_set_kind"
              version="0.2.5">
        <doc xml:space="preserve">Sets the package kind.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackageKind</doc>
            <type name="PackageKind" c:type="AsbPackageKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_license"
              c:identifier="asb_package_set_license"
              version="0.1.0">
        <doc xml:space="preserve">Sets the package license.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
          <parameter name="license" transfer-ownership="none">
            <doc xml:space="preserve">license string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name"
              c:identifier="asb_package_set_name"
              version="0.1.0">
        <doc xml:space="preserve">Sets the package name.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">package name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_release"
              c:identifier="asb_package_set_release"
              version="0.1.0">
        <doc xml:space="preserve">Sets the package release.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
          <parameter name="release" transfer-ownership="none">
            <doc xml:space="preserve">package release</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_source"
              c:identifier="asb_package_set_source"
              version="0.1.0">
        <doc xml:space="preserve">Sets the package source name, which is usually the parent of a set of
subpackages.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">source string, e.g. the srpm nevra</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_source_pkgname"
              c:identifier="asb_package_set_source_pkgname"
              version="0.2.4">
        <doc xml:space="preserve">Sets the package source name, which is usually the parent of a set of
subpackages.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
          <parameter name="source_pkgname" transfer-ownership="none">
            <doc xml:space="preserve">source string, e.g. the srpm name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_url"
              c:identifier="asb_package_set_url"
              version="0.1.0">
        <doc xml:space="preserve">Sets the package URL.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
          <parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve">homepage URL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_vcs"
              c:identifier="asb_package_set_vcs"
              version="0.3.4">
        <doc xml:space="preserve">Sets the package version control system.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
          <parameter name="vcs" transfer-ownership="none">
            <doc xml:space="preserve">vcs string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_version"
              c:identifier="asb_package_set_version"
              version="0.1.0">
        <doc xml:space="preserve">Sets the package version.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </instance-parameter>
          <parameter name="version" transfer-ownership="none">
            <doc xml:space="preserve">package version</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="PackageClass"
            c:type="AsbPackageClass"
            glib:is-gtype-struct-for="Package">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="open">
        <callback name="open" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">%TRUE for success, %FALSE otherwise</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="pkg" transfer-ownership="none">
              <doc xml:space="preserve">A #AsbPackage</doc>
              <type name="Package" c:type="AsbPackage*"/>
            </parameter>
            <parameter name="filename" transfer-ownership="none">
              <doc xml:space="preserve">package filename</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="ensure">
        <callback name="ensure" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">%TRUE for success, %FALSE otherwise</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="pkg" transfer-ownership="none">
              <doc xml:space="preserve">A #AsbPackage</doc>
              <type name="Package" c:type="AsbPackage*"/>
            </parameter>
            <parameter name="flags" transfer-ownership="none">
              <doc xml:space="preserve">#AsbPackageEnsureFlags</doc>
              <type name="PackageEnsureFlags" c:type="AsbPackageEnsureFlags"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="explode">
        <callback name="explode" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">%TRUE for success, %FALSE otherwise</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="pkg" transfer-ownership="none">
              <doc xml:space="preserve">A #AsbPackage</doc>
              <type name="Package" c:type="AsbPackage*"/>
            </parameter>
            <parameter name="dir" transfer-ownership="none">
              <doc xml:space="preserve">directory to explode into</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="glob" transfer-ownership="none">
              <doc xml:space="preserve">the glob list, or %NULL</doc>
              <array name="GLib.PtrArray" c:type="GPtrArray*">
                <type name="utf8"/>
              </array>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="compare">
        <callback name="compare">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">-1 for &lt;, 0 for the same and +1 for &gt;</doc>
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="pkg1" transfer-ownership="none">
              <doc xml:space="preserve">A #AsbPackage</doc>
              <type name="Package" c:type="AsbPackage*"/>
            </parameter>
            <parameter name="pkg2" transfer-ownership="none">
              <doc xml:space="preserve">A #AsbPackage</doc>
              <type name="Package" c:type="AsbPackage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="close">
        <callback name="close" throws="1">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">%TRUE for success, %FALSE otherwise</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="pkg" transfer-ownership="none">
              <doc xml:space="preserve">A #AsbPackage</doc>
              <type name="Package" c:type="AsbPackage*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_asb_reserved1" introspectable="0">
        <callback name="_asb_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_asb_reserved2" introspectable="0">
        <callback name="_asb_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_asb_reserved3" introspectable="0">
        <callback name="_asb_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_asb_reserved4" introspectable="0">
        <callback name="_asb_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_asb_reserved5" introspectable="0">
        <callback name="_asb_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_asb_reserved6" introspectable="0">
        <callback name="_asb_reserved6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_asb_reserved7" introspectable="0">
        <callback name="_asb_reserved7">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="PackageEnsureFlags" c:type="AsbPackageEnsureFlags">
      <member name="none" value="0" c:identifier="ASB_PACKAGE_ENSURE_NONE">
      </member>
      <member name="nevra" value="1" c:identifier="ASB_PACKAGE_ENSURE_NEVRA">
      </member>
      <member name="files" value="2" c:identifier="ASB_PACKAGE_ENSURE_FILES">
      </member>
      <member name="releases"
              value="4"
              c:identifier="ASB_PACKAGE_ENSURE_RELEASES">
      </member>
      <member name="deps" value="8" c:identifier="ASB_PACKAGE_ENSURE_DEPS">
      </member>
      <member name="license"
              value="16"
              c:identifier="ASB_PACKAGE_ENSURE_LICENSE">
      </member>
      <member name="url" value="32" c:identifier="ASB_PACKAGE_ENSURE_URL">
      </member>
      <member name="source"
              value="64"
              c:identifier="ASB_PACKAGE_ENSURE_SOURCE">
      </member>
      <member name="vcs" value="128" c:identifier="ASB_PACKAGE_ENSURE_VCS">
      </member>
      <member name="last" value="129" c:identifier="ASB_PACKAGE_ENSURE_LAST">
      </member>
    </enumeration>
    <enumeration name="PackageKind" c:type="AsbPackageKind">
      <member name="default" value="0" c:identifier="ASB_PACKAGE_KIND_DEFAULT">
      </member>
      <member name="bundle" value="1" c:identifier="ASB_PACKAGE_KIND_BUNDLE">
      </member>
      <member name="firmware"
              value="2"
              c:identifier="ASB_PACKAGE_KIND_FIRMWARE">
      </member>
      <member name="last" value="3" c:identifier="ASB_PACKAGE_KIND_LAST">
      </member>
    </enumeration>
    <enumeration name="PackageLogLevel" c:type="AsbPackageLogLevel">
      <member name="none" value="0" c:identifier="ASB_PACKAGE_LOG_LEVEL_NONE">
      </member>
      <member name="debug"
              value="1"
              c:identifier="ASB_PACKAGE_LOG_LEVEL_DEBUG">
      </member>
      <member name="info" value="2" c:identifier="ASB_PACKAGE_LOG_LEVEL_INFO">
      </member>
      <member name="warning"
              value="3"
              c:identifier="ASB_PACKAGE_LOG_LEVEL_WARNING">
      </member>
      <member name="last" value="4" c:identifier="ASB_PACKAGE_LOG_LEVEL_LAST">
      </member>
    </enumeration>
    <class name="Task"
           c:symbol-prefix="task"
           c:type="AsbTask"
           parent="GObject.Object"
           glib:type-name="AsbTask"
           glib:get-type="asb_task_get_type"
           glib:type-struct="TaskClass">
      <constructor name="new" c:identifier="asb_task_new" version="0.1.0">
        <doc xml:space="preserve">Creates a new task.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #AsbTask</doc>
          <type name="Task" c:type="AsbTask*"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbContext</doc>
            <type name="Context" c:type="AsbContext*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="process"
              c:identifier="asb_task_process"
              version="0.1.0"
              throws="1">
        <doc xml:space="preserve">Processes the task.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE for success, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbTask</doc>
            <type name="Task" c:type="AsbTask*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_package"
              c:identifier="asb_task_set_package"
              version="0.1.0">
        <doc xml:space="preserve">Sets the package used for the task.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="task" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbTask</doc>
            <type name="Task" c:type="AsbTask*"/>
          </instance-parameter>
          <parameter name="pkg" transfer-ownership="none">
            <doc xml:space="preserve">A #AsbPackage</doc>
            <type name="Package" c:type="AsbPackage*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="TaskClass"
            c:type="AsbTaskClass"
            glib:is-gtype-struct-for="Task">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_asb_reserved1" introspectable="0">
        <callback name="_asb_reserved1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_asb_reserved2" introspectable="0">
        <callback name="_asb_reserved2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_asb_reserved3" introspectable="0">
        <callback name="_asb_reserved3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_asb_reserved4" introspectable="0">
        <callback name="_asb_reserved4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_asb_reserved5" introspectable="0">
        <callback name="_asb_reserved5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_asb_reserved6" introspectable="0">
        <callback name="_asb_reserved6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_asb_reserved7" introspectable="0">
        <callback name="_asb_reserved7">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_asb_reserved8" introspectable="0">
        <callback name="_asb_reserved8">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
  </namespace>
</repository>
