<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GLib" version="2.0"/>
  <include name="GModule" version="2.0"/>
  <include name="GObject" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <include name="Tracker" version="0.14"/>
  <c:include name="libtracker-miner/tracker-miner.h"/>
  <namespace name="TrackerMiner"
             version="0.14"
             shared-library="libtracker-miner-0.14.so.0.0"
             c:identifier-prefixes="Tracker"
             c:symbol-prefixes="tracker">
    <class name="Crawler"
           c:symbol-prefix="crawler"
           c:type="TrackerCrawler"
           parent="GObject.Object"
           glib:type-name="TrackerCrawler"
           glib:get-type="tracker_crawler_get_type"
           glib:type-struct="CrawlerClass">
      <constructor name="new" c:identifier="tracker_crawler_new">
        <return-value transfer-ownership="full">
          <type name="Crawler" c:type="TrackerCrawler*"/>
        </return-value>
      </constructor>
      <virtual-method name="check_directory">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="check_directory_contents" introspectable="0">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="contents" transfer-ownership="none">
            <type name="GLib.List" c:type="GList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="check_file">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="directory_crawled">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="directory" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="tree" transfer-ownership="none">
            <type name="GLib.Node" c:type="GNode*"/>
          </parameter>
          <parameter name="directories_found" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="directories_ignored" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="files_found" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="files_ignored" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="finished">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="interrupted" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_file_attributes"
              c:identifier="tracker_crawler_get_file_attributes">
        <doc xml:whitespace="preserve">Returns the file attributes that @crawler will fetch</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the file attributes as a string.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_file_info"
              c:identifier="tracker_crawler_get_file_info">
        <doc xml:whitespace="preserve">Returns a #GFileInfo with the file attributes requested through
tracker_crawler_set_file_attributes().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a #GFileInfo with the file information</doc>
          <type name="Gio.FileInfo" c:type="GFileInfo*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GFile returned by @crawler</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="pause" c:identifier="tracker_crawler_pause">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="resume" c:identifier="tracker_crawler_resume">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="set_file_attributes"
              c:identifier="tracker_crawler_set_file_attributes">
        <doc xml:whitespace="preserve">Sets the file attributes that @crawler will fetch for every
file it gets, this info may be requested through
tracker_crawler_get_file_info() in any #TrackerCrawler callback</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="file_attributes" transfer-ownership="none">
            <doc xml:whitespace="preserve">file attributes to extract</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_throttle" c:identifier="tracker_crawler_set_throttle">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="throttle" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="start" c:identifier="tracker_crawler_start">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="recurse" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="stop" c:identifier="tracker_crawler_stop">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="CrawlerPrivate" c:type="TrackerCrawlerPrivate*"/>
      </field>
      <glib:signal name="check-directory" when="last">
        <return-value transfer-ownership="none">
          <type name="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gio.File"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="check-directory-contents" when="last">
        <return-value transfer-ownership="none">
          <type name="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gio.File"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gpointer"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="check-file" when="last">
        <return-value transfer-ownership="none">
          <type name="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gio.File"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="directory-crawled" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gio.File"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gpointer"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
          <parameter name="p2" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
          <parameter name="p3" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
          <parameter name="p4" transfer-ownership="none">
            <type name="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="finished" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="CrawlerClass"
            c:type="TrackerCrawlerClass"
            glib:is-gtype-struct-for="Crawler">
      <field name="parent">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="check_directory">
        <callback name="check_directory">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="crawler" transfer-ownership="none">
              <type name="Crawler" c:type="TrackerCrawler*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="check_file">
        <callback name="check_file">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="crawler" transfer-ownership="none">
              <type name="Crawler" c:type="TrackerCrawler*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="check_directory_contents" introspectable="0">
        <callback name="check_directory_contents" introspectable="0">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="crawler" transfer-ownership="none">
              <type name="Crawler" c:type="TrackerCrawler*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
            <parameter name="contents" transfer-ownership="none">
              <type name="GLib.List" c:type="GList*">
                <type name="gpointer" c:type="gpointer"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="directory_crawled">
        <callback name="directory_crawled">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="crawler" transfer-ownership="none">
              <type name="Crawler" c:type="TrackerCrawler*"/>
            </parameter>
            <parameter name="directory" transfer-ownership="none">
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
            <parameter name="tree" transfer-ownership="none">
              <type name="GLib.Node" c:type="GNode*"/>
            </parameter>
            <parameter name="directories_found" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="directories_ignored" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="files_found" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="files_ignored" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="finished">
        <callback name="finished">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="crawler" transfer-ownership="none">
              <type name="Crawler" c:type="TrackerCrawler*"/>
            </parameter>
            <parameter name="interrupted" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="CrawlerPrivate" c:type="TrackerCrawlerPrivate" disguised="1">
    </record>
    <bitfield name="DirectoryFlags"
              glib:type-name="TrackerDirectoryFlags"
              glib:get-type="tracker_directory_flags_get_type"
              c:type="TrackerDirectoryFlags">
      <doc xml:whitespace="preserve">Flags used when adding a new directory to be indexed in the #TrackerIndexingTree.</doc>
      <member name="none"
              value="0"
              c:identifier="TRACKER_DIRECTORY_FLAG_NONE"
              glib:nick="none"/>
      <member name="recurse"
              value="2"
              c:identifier="TRACKER_DIRECTORY_FLAG_RECURSE"
              glib:nick="recurse"/>
      <member name="check_mtime"
              value="4"
              c:identifier="TRACKER_DIRECTORY_FLAG_CHECK_MTIME"
              glib:nick="check-mtime"/>
      <member name="monitor"
              value="8"
              c:identifier="TRACKER_DIRECTORY_FLAG_MONITOR"
              glib:nick="monitor"/>
      <member name="ignore"
              value="16"
              c:identifier="TRACKER_DIRECTORY_FLAG_IGNORE"
              glib:nick="ignore"/>
      <member name="preserve"
              value="32"
              c:identifier="TRACKER_DIRECTORY_FLAG_PRESERVE"
              glib:nick="preserve"/>
    </bitfield>
    <enumeration name="FilterPolicy"
                 glib:type-name="TrackerFilterPolicy"
                 glib:get-type="tracker_filter_policy_get_type"
                 c:type="TrackerFilterPolicy">
      <doc xml:whitespace="preserve">Flags used when defining default filter policy in the #TrackerIndexingTree.</doc>
      <member name="deny"
              value="0"
              c:identifier="TRACKER_FILTER_POLICY_DENY"
              glib:nick="deny"/>
      <member name="accept"
              value="1"
              c:identifier="TRACKER_FILTER_POLICY_ACCEPT"
              glib:nick="accept"/>
    </enumeration>
    <enumeration name="FilterType"
                 glib:type-name="TrackerFilterType"
                 glib:get-type="tracker_filter_type_get_type"
                 c:type="TrackerFilterType">
      <doc xml:whitespace="preserve">Flags used when adding a new filter in the #TrackerIndexingTree.</doc>
      <member name="file"
              value="0"
              c:identifier="TRACKER_FILTER_FILE"
              glib:nick="file"/>
      <member name="directory"
              value="1"
              c:identifier="TRACKER_FILTER_DIRECTORY"
              glib:nick="directory"/>
      <member name="parent_directory"
              value="2"
              c:identifier="TRACKER_FILTER_PARENT_DIRECTORY"
              glib:nick="parent-directory"/>
    </enumeration>
    <class name="IndexingTree"
           c:symbol-prefix="indexing_tree"
           c:type="TrackerIndexingTree"
           parent="GObject.Object"
           glib:type-name="TrackerIndexingTree"
           glib:get-type="tracker_indexing_tree_get_type"
           glib:type-struct="IndexingTreeClass">
      <doc xml:whitespace="preserve">Base object used to configure indexing within #TrackerMinerFS items.</doc>
      <constructor name="new" c:identifier="tracker_indexing_tree_new">
        <doc xml:whitespace="preserve">Returns a newly created #TrackerIndexingTree</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a newly allocated #TrackerIndexingTree</doc>
          <type name="IndexingTree" c:type="TrackerIndexingTree*"/>
        </return-value>
      </constructor>
      <virtual-method name="directory_added">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="directory" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="directory_removed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="directory" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="directory_updated">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="directory" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add" c:identifier="tracker_indexing_tree_add">
        <doc xml:whitespace="preserve">Adds a directory to the indexing tree with the
given configuration flags.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="directory" transfer-ownership="none">
            <doc xml:whitespace="preserve">#GFile pointing to a directory</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:whitespace="preserve">Configuration flags for the directory</doc>
            <type name="DirectoryFlags" c:type="TrackerDirectoryFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_filter"
              c:identifier="tracker_indexing_tree_add_filter">
        <doc xml:whitespace="preserve">Adds a new filter for basenames.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="filter" transfer-ownership="none">
            <doc xml:whitespace="preserve">filter type</doc>
            <type name="FilterType" c:type="TrackerFilterType"/>
          </parameter>
          <parameter name="glob_string" transfer-ownership="none">
            <doc xml:whitespace="preserve">glob-style string for the filter</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear_filters"
              c:identifier="tracker_indexing_tree_clear_filters">
        <doc xml:whitespace="preserve">Clears all filters of a given type.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <doc xml:whitespace="preserve">filter type to clear</doc>
            <type name="FilterType" c:type="TrackerFilterType"/>
          </parameter>
        </parameters>
      </method>
      <method name="file_is_indexable"
              c:identifier="tracker_indexing_tree_file_is_indexable">
        <doc xml:whitespace="preserve">returns %TRUE if @file should be indexed according to the
parameters given through tracker_indexing_tree_add() and
tracker_indexing_tree_add_filter().

If @file_type is #G_FILE_TYPE_UNKNOWN, file type will be queried to the
file system.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if @file should be indexed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="file_type" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GFileType</doc>
            <type name="Gio.FileType" c:type="GFileType"/>
          </parameter>
        </parameters>
      </method>
      <method name="file_is_root"
              c:identifier="tracker_indexing_tree_file_is_root">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="file_matches_filter"
              c:identifier="tracker_indexing_tree_file_matches_filter">
        <doc xml:whitespace="preserve">Returns %TRUE if @file matches any filter of the given filter type.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if @file is filtered</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <doc xml:whitespace="preserve">filter type</doc>
            <type name="FilterType" c:type="TrackerFilterType"/>
          </parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_default_policy"
              c:identifier="tracker_indexing_tree_get_default_policy">
        <return-value transfer-ownership="none">
          <type name="FilterPolicy" c:type="TrackerFilterPolicy"/>
        </return-value>
        <parameters>
          <parameter name="filter" transfer-ownership="none">
            <type name="FilterType" c:type="TrackerFilterType"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_filter_hidden"
              c:identifier="tracker_indexing_tree_get_filter_hidden">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_root" c:identifier="tracker_indexing_tree_get_root">
        <doc xml:whitespace="preserve">Returns the #GFile that was previously added through tracker_indexing_tree_add()
and would equal or contain @file, or %NULL if none applies.

If the return value is non-%NULL, @directory_flags would contain the
#TrackerDirectoryFlags applying to @file.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the effective parent in @tree, or %NULL</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="directory_flags"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">return location for the applying #TrackerDirectoryFlags</doc>
            <type name="DirectoryFlags" c:type="TrackerDirectoryFlags*"/>
          </parameter>
        </parameters>
      </method>
      <method name="list_roots"
              c:identifier="tracker_indexing_tree_list_roots">
        <doc xml:whitespace="preserve">Returns the list of indexing roots in @tree

of roots, the list itself must be freed with g_list_free(),
the list elements are owned by @tree and should not be
freed.</doc>
        <return-value transfer-ownership="container">
          <doc xml:whitespace="preserve">The list</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Gio.File"/>
          </type>
        </return-value>
      </method>
      <method name="parent_is_indexable"
              c:identifier="tracker_indexing_tree_parent_is_indexable">
        <doc xml:whitespace="preserve">returns %TRUE if @parent should be indexed based on its contents.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if @parent should be indexed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="parent" transfer-ownership="none">
            <doc xml:whitespace="preserve">parent directory</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="children" transfer-ownership="none">
            <doc xml:whitespace="preserve">children within @parent</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Gio.File"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="tracker_indexing_tree_remove">
        <doc xml:whitespace="preserve">Removes @directory from the indexing tree, note that
only directories previously added with tracker_indexing_tree_add()
can be effectively removed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="directory" transfer-ownership="none">
            <doc xml:whitespace="preserve">#GFile pointing to a directory</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_default_policy"
              c:identifier="tracker_indexing_tree_set_default_policy">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="filter" transfer-ownership="none">
            <type name="FilterType" c:type="TrackerFilterType"/>
          </parameter>
          <parameter name="policy" transfer-ownership="none">
            <type name="FilterPolicy" c:type="TrackerFilterPolicy"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_filter_hidden"
              c:identifier="tracker_indexing_tree_set_filter_hidden">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="filter_hidden" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="filter-hidden" writable="1" transfer-ownership="none">
        <type name="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <glib:signal name="directory-added" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gio.File"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="directory-removed" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gio.File"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="directory-updated" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gio.File"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="IndexingTreeClass"
            c:type="TrackerIndexingTreeClass"
            glib:is-gtype-struct-for="IndexingTree">
      <doc xml:whitespace="preserve">Class for the #TrackerIndexingTree.</doc>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="directory_added">
        <callback name="directory_added">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="indexing_tree" transfer-ownership="none">
              <type name="IndexingTree" c:type="TrackerIndexingTree*"/>
            </parameter>
            <parameter name="directory" transfer-ownership="none">
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="directory_removed">
        <callback name="directory_removed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="indexing_tree" transfer-ownership="none">
              <type name="IndexingTree" c:type="TrackerIndexingTree*"/>
            </parameter>
            <parameter name="directory" transfer-ownership="none">
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="directory_updated">
        <callback name="directory_updated">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="indexing_tree" transfer-ownership="none">
              <type name="IndexingTree" c:type="TrackerIndexingTree*"/>
            </parameter>
            <parameter name="directory" transfer-ownership="none">
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <constant name="MAX_TIMEOUT_INTERVAL"
              value="1000"
              c:type="TRACKER_MAX_TIMEOUT_INTERVAL">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MINER_DBUS_INTERFACE"
              value="org.freedesktop.Tracker1.Miner"
              c:type="TRACKER_MINER_DBUS_INTERFACE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MINER_DBUS_NAME_PREFIX"
              value="org.freedesktop.Tracker1.Miner."
              c:type="TRACKER_MINER_DBUS_NAME_PREFIX">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MINER_DBUS_PATH_PREFIX"
              value="/org/freedesktop/Tracker1/Miner/"
              c:type="TRACKER_MINER_DBUS_PATH_PREFIX">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MINER_ERROR_DOMAIN"
              value="TrackerMiner"
              c:type="TRACKER_MINER_ERROR_DOMAIN">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MINER_WEB_DBUS_INTERFACE"
              value="org.freedesktop.Tracker1.MinerWeb"
              c:type="TRACKER_MINER_WEB_DBUS_INTERFACE">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="MINER_WEB_ERROR_DOMAIN"
              value="TrackerMinerWeb"
              c:type="TRACKER_MINER_WEB_ERROR_DOMAIN">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="Miner"
           c:symbol-prefix="miner"
           c:type="TrackerMiner"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="TrackerMiner"
           glib:get-type="tracker_miner_get_type"
           glib:type-struct="MinerClass">
      <doc xml:whitespace="preserve">Abstract miner object.</doc>
      <implements name="Gio.Initable"/>
      <function name="error_quark"
                c:identifier="tracker_miner_error_quark"
                version="0.8">
        <doc xml:whitespace="preserve">Returns the #GQuark used to identify miner errors in GError structures.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the error #GQuark</doc>
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="ignore_next_update"
                      invoker="ignore_next_update"
                      version="0.8">
        <doc xml:whitespace="preserve">Tells the miner to mark @urls are to ignore on next update.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="urls" transfer-ownership="none">
            <doc xml:whitespace="preserve">the urls to mark as to ignore on next update</doc>
            <array c:type="GStrv">
              <type name="utf8"/>
            </array>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="paused">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="progress">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="status" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="progress" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="resumed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="started">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="stopped">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <method name="get_connection"
              c:identifier="tracker_miner_get_connection"
              version="0.10">
        <doc xml:whitespace="preserve">Gets the #TrackerSparqlConnection initialized by @miner</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a #TrackerSparqlConnection.</doc>
          <type name="Tracker.SparqlConnection"
                c:type="TrackerSparqlConnection*"/>
        </return-value>
      </method>
      <method name="get_dbus_connection"
              c:identifier="tracker_miner_get_dbus_connection"
              version="0.10">
        <doc xml:whitespace="preserve">Gets the #GDBusConnection initialized by @miner</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a #GDBusConnection.</doc>
          <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
        </return-value>
      </method>
      <method name="get_dbus_full_name"
              c:identifier="tracker_miner_get_dbus_full_name"
              version="0.10">
        <doc xml:whitespace="preserve">Gets the DBus name registered by @miner</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a constant string which should not be modified by the caller.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_dbus_full_path"
              c:identifier="tracker_miner_get_dbus_full_path"
              version="0.10">
        <doc xml:whitespace="preserve">Gets the DBus path registered by @miner</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a constant string which should not be modified by the caller.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_n_pause_reasons"
              c:identifier="tracker_miner_get_n_pause_reasons"
              version="0.10.5">
        <doc xml:whitespace="preserve">Returns the number of pause reasons holding @miner from
indexing contents.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The number of current pause reasons</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="ignore_next_update"
              c:identifier="tracker_miner_ignore_next_update"
              version="0.8">
        <doc xml:whitespace="preserve">Tells the miner to mark @urls are to ignore on next update.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="urls" transfer-ownership="none">
            <doc xml:whitespace="preserve">the urls to mark as to ignore on next update</doc>
            <array c:type="GStrv">
              <type name="utf8"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="is_paused"
              c:identifier="tracker_miner_is_paused"
              version="0.10">
        <doc xml:whitespace="preserve">Returns #TRUE if the miner is paused.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">#TRUE if the miner is paused.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="is_started"
              c:identifier="tracker_miner_is_started"
              version="0.8">
        <doc xml:whitespace="preserve">Returns #TRUE if the miner has been started.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">#TRUE if the miner is already started.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="pause"
              c:identifier="tracker_miner_pause"
              version="0.8"
              throws="1">
        <doc xml:whitespace="preserve">Asks @miner to pause. On success the cookie ID is returned,
this is what must be used in tracker_miner_resume() to resume
operations. On failure @error will be set and -1 will be returned.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The pause cookie ID.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <parameter name="reason" transfer-ownership="none">
            <doc xml:whitespace="preserve">reason to pause</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="resume"
              c:identifier="tracker_miner_resume"
              version="0.8"
              throws="1">
        <doc xml:whitespace="preserve">Asks the miner to resume processing. The cookie must be something
returned by tracker_miner_pause(). The miner won't actually resume
operations until all pause requests have been resumed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">#TRUE if the cookie was valid.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="cookie" transfer-ownership="none">
            <doc xml:whitespace="preserve">pause cookie</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="start" c:identifier="tracker_miner_start" version="0.8">
        <doc xml:whitespace="preserve">Tells the miner to start processing data.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="stop" c:identifier="tracker_miner_stop" version="0.8">
        <doc xml:whitespace="preserve">Tells the miner to stop processing data.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <property name="name"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <property name="progress"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="gdouble"/>
      </property>
      <property name="remaining-time"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="gint"/>
      </property>
      <property name="status"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="MinerPrivate" c:type="TrackerMinerPrivate*"/>
      </field>
      <glib:signal name="ignore-next-update" when="last" version="0.8">
        <doc xml:whitespace="preserve">the ::ignore-next-update signal is emitted in the miner
right after it has been asked to mark @urls as to ignore on next update
through tracker_miner_ignore_next_update().</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="urls" transfer-ownership="none">
            <doc xml:whitespace="preserve">the urls to mark as ignore on next update</doc>
            <array>
              <type name="utf8"/>
            </array>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="paused" when="last" version="0.8">
        <doc xml:whitespace="preserve">the ::paused signal is emitted whenever
there is any reason to pause, either
internal (through tracker_miner_pause()) or
external (through DBus, see #TrackerMinerManager).</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="progress" when="last" version="0.12">
        <doc xml:whitespace="preserve">the ::progress signal will be emitted by TrackerMiner implementations
to indicate progress about the data mining process. @status will
contain a translated string with the current miner status and @progress
will indicate how much has been processed so far. @remaining_time will
give the number expected of seconds to finish processing, 0 if the
value cannot be estimated, and -1 if its not applicable.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="status" transfer-ownership="none">
            <doc xml:whitespace="preserve">miner status</doc>
            <type name="utf8"/>
          </parameter>
          <parameter name="progress" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #gdouble indicating miner progress, from 0 to 1.</doc>
            <type name="gdouble"/>
          </parameter>
          <parameter name="remaining_time" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #gint indicating the reamaining processing time, in seconds.</doc>
            <type name="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="resumed" when="last" version="0.8">
        <doc xml:whitespace="preserve">the ::resumed signal is emitted whenever
all reasons to pause have disappeared, see
tracker_miner_resume() and #TrackerMinerManager.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="started" when="last" version="0.8">
        <doc xml:whitespace="preserve">the ::started signal is emitted in the miner
right after it has been started through
tracker_miner_start().</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="stopped" when="last" version="0.8">
        <doc xml:whitespace="preserve">the ::stopped signal is emitted in the miner
right after it has been stopped through
tracker_miner_stop().</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="MinerClass"
            c:type="TrackerMinerClass"
            glib:is-gtype-struct-for="Miner">
      <doc xml:whitespace="preserve">Virtual methods left to implement.</doc>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="started">
        <callback name="started">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="miner" transfer-ownership="none">
              <type name="Miner" c:type="TrackerMiner*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="stopped">
        <callback name="stopped">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="miner" transfer-ownership="none">
              <type name="Miner" c:type="TrackerMiner*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="paused">
        <callback name="paused">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="miner" transfer-ownership="none">
              <type name="Miner" c:type="TrackerMiner*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="resumed">
        <callback name="resumed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="miner" transfer-ownership="none">
              <type name="Miner" c:type="TrackerMiner*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="progress">
        <callback name="progress">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="miner" transfer-ownership="none">
              <type name="Miner" c:type="TrackerMiner*"/>
            </parameter>
            <parameter name="status" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="progress" transfer-ownership="none">
              <type name="gdouble" c:type="gdouble"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="ignore_next_update">
        <callback name="ignore_next_update">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="miner" transfer-ownership="none">
              <type name="Miner" c:type="TrackerMiner*"/>
            </parameter>
            <parameter name="urls" transfer-ownership="none">
              <doc xml:whitespace="preserve">the urls to mark as to ignore on next update</doc>
              <array c:type="GStrv">
                <type name="utf8"/>
              </array>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="MinerFS"
           c:symbol-prefix="miner_fs"
           c:type="TrackerMinerFS"
           parent="Miner"
           abstract="1"
           glib:type-name="TrackerMinerFS"
           glib:get-type="tracker_miner_fs_get_type"
           glib:type-struct="MinerFSClass">
      <doc xml:whitespace="preserve">Abstract miner implementation to get data from the filesystem.</doc>
      <implements name="Gio.Initable"/>
      <virtual-method name="finished">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="ignore_next_update_file">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="builder" transfer-ownership="none">
            <type name="Tracker.SparqlBuilder" c:type="TrackerSparqlBuilder*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="process_file">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="builder" transfer-ownership="none">
            <type name="Tracker.SparqlBuilder" c:type="TrackerSparqlBuilder*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="process_file_attributes">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="builder" transfer-ownership="none">
            <type name="Tracker.SparqlBuilder" c:type="TrackerSparqlBuilder*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="writeback_file">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="rdf_types" transfer-ownership="none">
            <array c:type="GStrv">
              <type name="utf8"/>
            </array>
          </parameter>
          <parameter name="results" transfer-ownership="none">
            <array name="GLib.PtrArray" c:type="GPtrArray*">
              <type name="gpointer" c:type="gpointer"/>
            </array>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_directory_without_parent"
              c:identifier="tracker_miner_fs_add_directory_without_parent"
              version="0.10">
        <doc xml:whitespace="preserve">Tells the miner-fs that the given #GFile corresponds to a
directory which was created in the store without a specific
parent object. In this case, when regenerating internal
caches, an extra query will be done so that these elements
are taken into account.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="check_directory"
              c:identifier="tracker_miner_fs_check_directory"
              version="0.10">
        <doc xml:whitespace="preserve">Tells the filesystem miner to check and index a directory,
this file must be part of the usual crawling directories
of #TrackerMinerFS. See tracker_miner_fs_directory_add().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">#GFile for the directory to check</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="check_parents" transfer-ownership="none">
            <doc xml:whitespace="preserve">whether to check parents and eligibility or not</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="check_directory_with_priority"
              c:identifier="tracker_miner_fs_check_directory_with_priority"
              version="0.10">
        <doc xml:whitespace="preserve">Tells the filesystem miner to check and index a directory at
a given priority, this file must be part of the usual crawling
directories of #TrackerMinerFS. See tracker_miner_fs_directory_add().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">#GFile for the directory to check</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="priority" transfer-ownership="none">
            <doc xml:whitespace="preserve">the priority of the check task</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="check_parents" transfer-ownership="none">
            <doc xml:whitespace="preserve">whether to check parents and eligibility or not</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="check_file"
              c:identifier="tracker_miner_fs_check_file"
              version="0.10">
        <doc xml:whitespace="preserve">Tells the filesystem miner to check and index a file,
this file must be part of the usual crawling directories
of #TrackerMinerFS. See tracker_miner_fs_directory_add().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">#GFile for the file to check</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="check_parents" transfer-ownership="none">
            <doc xml:whitespace="preserve">whether to check parents and eligibility or not</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="check_file_with_priority"
              c:identifier="tracker_miner_fs_check_file_with_priority"
              version="0.10">
        <doc xml:whitespace="preserve">Tells the filesystem miner to check and index a file at
a given priority, this file must be part of the usual
crawling directories of #TrackerMinerFS. See
tracker_miner_fs_directory_add().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">#GFile for the file to check</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="priority" transfer-ownership="none">
            <doc xml:whitespace="preserve">the priority of the check task</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="check_parents" transfer-ownership="none">
            <doc xml:whitespace="preserve">whether to check parents and eligibility or not</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="directory_add"
              c:identifier="tracker_miner_fs_directory_add"
              version="0.8">
        <doc xml:whitespace="preserve">Tells the filesystem miner to inspect a directory.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">#GFile for the directory to inspect</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="recurse" transfer-ownership="none">
            <doc xml:whitespace="preserve">whether the directory should be inspected recursively</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="directory_remove"
              c:identifier="tracker_miner_fs_directory_remove"
              version="0.8">
        <doc xml:whitespace="preserve">Removes a directory from being inspected by @fs. Note that only directory
watches are removed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the directory was successfully removed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">#GFile for the directory to be removed</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="directory_remove_full"
              c:identifier="tracker_miner_fs_directory_remove_full"
              version="0.10">
        <doc xml:whitespace="preserve">Removes a directory from being inspected by @fs, and removes all
associated metadata of the directory (and its contents) from the
store.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the directory was successfully removed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">#GFile for the directory to be removed</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="file_notify"
              c:identifier="tracker_miner_fs_file_notify"
              version="0.8">
        <doc xml:whitespace="preserve">Notifies @fs that all processing on @file has been finished, if any error
happened during file data processing, it should be passed in @error, else
that parameter will contain %NULL to reflect success.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="error" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GError with the error that happened during processing, or %NULL.</doc>
            <type name="GLib.Error" c:type="GError*"/>
          </parameter>
        </parameters>
      </method>
      <method name="force_mtime_checking"
              c:identifier="tracker_miner_fs_force_mtime_checking"
              version="0.12">
        <doc xml:whitespace="preserve">Tells @fs to force mtime checking (regardless of the global mtime check
configuration) on the given @directory.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="directory" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GFile representing the directory</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="force_recheck"
              c:identifier="tracker_miner_fs_force_recheck">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="get_indexing_tree"
              c:identifier="tracker_miner_fs_get_indexing_tree">
        <doc xml:whitespace="preserve">Returns the #TrackerIndexingTree which determines
what files/directories are indexed by @fs

holding the indexing configuration</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The #TrackerIndexingTree</doc>
          <type name="IndexingTree" c:type="TrackerIndexingTree*"/>
        </return-value>
      </method>
      <method name="get_initial_crawling"
              c:identifier="tracker_miner_fs_get_initial_crawling">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_mtime_checking"
              c:identifier="tracker_miner_fs_get_mtime_checking"
              version="0.10">
        <doc xml:whitespace="preserve">are done when @fs crawls the file system, otherwise #FALSE.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">#TRUE if mtime checks for directories against the database</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_parent_urn"
              c:identifier="tracker_miner_fs_get_parent_urn"
              version="0.8">
        <doc xml:whitespace="preserve">If @file is currently being processed by @fs, this function
will return the parent folder URN if any. This function is
useful to set the nie:belongsToContainer relationship. The
processing order of #TrackerMinerFS guarantees that a folder
has been already fully processed for indexing before any
children is processed, so most usually this function should
return non-%NULL.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The parent folder URN, or %NULL.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GFile obtained in #TrackerMinerFS::process-file</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_throttle"
              c:identifier="tracker_miner_fs_get_throttle"
              version="0.8">
        <doc xml:whitespace="preserve">Gets the current throttle value. see tracker_miner_fs_set_throttle().</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">current throttle value.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
      </method>
      <method name="get_urn"
              c:identifier="tracker_miner_fs_get_urn"
              version="0.8">
        <doc xml:whitespace="preserve">If the item exists in the store, this function retrieves
the URN for a #GFile being currently processed.
If @file is not being currently processed by @fs, or doesn't
exist in the store yet, %NULL will be returned.

or %NULL.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The URN containing the data associated to @file,</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GFile obtained in #TrackerMinerFS::process-file</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_items_to_process"
              c:identifier="tracker_miner_fs_has_items_to_process"
              version="0.10">
        <doc xml:whitespace="preserve">queues, otherwise #FALSE.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">#TRUE if there are items to process in the internal</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="query_urn"
              c:identifier="tracker_miner_fs_query_urn"
              version="0.10">
        <doc xml:whitespace="preserve">If the item exists in the store, this function retrieves
the URN of the given #GFile
If @file doesn't exist in the store yet, %NULL will be returned.

to @file, or %NULL.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A newly allocated string with the URN containing the data associated</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_initial_crawling"
              c:identifier="tracker_miner_fs_set_initial_crawling">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="do_initial_crawling" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mtime_checking"
              c:identifier="tracker_miner_fs_set_mtime_checking"
              version="0.10">
        <doc xml:whitespace="preserve">Tells the miner-fs that during the crawling phase, directory mtime
checks should or shouldn't be performed against the database to
make sure we have the most up to date version of the file being
checked at the time. Setting this to #FALSE can dramatically
improve the start up the crawling of the @fs.

The down side is that using this consistently means that some files
on the disk may be out of date with files in the database.

The main purpose of this function is for systems where a @fs is
running the entire time and where it is very unlikely that a file
could be changed outside between startup and shutdown of the
process using this API.

The default if not set directly is that @mtime_checking is #TRUE.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="mtime_checking" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #gboolean</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_throttle"
              c:identifier="tracker_miner_fs_set_throttle"
              version="0.8">
        <doc xml:whitespace="preserve">Tells the filesystem miner to throttle its operations.
a value of 0 means no throttling at all, so the miner
will perform operations at full speed, 1 is the slowest
value.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="throttle" transfer-ownership="none">
            <doc xml:whitespace="preserve">throttle value, between 0 and 1</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="writeback_file"
              c:identifier="tracker_miner_fs_writeback_file"
              version="0.10.20">
        <doc xml:whitespace="preserve">Tells the filesystem miner to writeback a file.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">#GFile for the file to check</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="rdf_types" transfer-ownership="none">
            <doc xml:whitespace="preserve">A #GStrv with rdf types</doc>
            <array c:type="GStrv">
              <type name="utf8"/>
            </array>
          </parameter>
          <parameter name="results" transfer-ownership="none">
            <doc xml:whitespace="preserve">A array of results from the preparation query</doc>
            <array name="GLib.PtrArray" c:type="GPtrArray*">
              <type name="gpointer" c:type="gpointer"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="writeback_notify"
              c:identifier="tracker_miner_fs_writeback_notify"
              version="0.10.20">
        <doc xml:whitespace="preserve">Notifies @fs that all writing back on @file has been finished, if any error
happened during file data processing, it should be passed in @error, else
that parameter will contain %NULL to reflect success.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="error" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GError with the error that happened during processing, or %NULL.</doc>
            <type name="GLib.Error" c:type="GError*"/>
          </parameter>
        </parameters>
      </method>
      <property name="initial-crawling" writable="1" transfer-ownership="none">
        <type name="gboolean"/>
      </property>
      <property name="mtime-checking"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="gboolean"/>
      </property>
      <property name="processing-pool-ready-limit"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="guint"/>
      </property>
      <property name="processing-pool-wait-limit"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="guint"/>
      </property>
      <property name="throttle" writable="1" transfer-ownership="none">
        <type name="gdouble"/>
      </property>
      <field name="parent">
        <type name="Miner" c:type="TrackerMiner"/>
      </field>
      <field name="priv">
        <type name="MinerFSPrivate" c:type="TrackerMinerFSPrivate*"/>
      </field>
      <glib:signal name="finished" when="last" version="0.8">
        <doc xml:whitespace="preserve">The ::finished signal is emitted when @miner_fs has finished
all pending processing.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="elapsed" transfer-ownership="none">
            <doc xml:whitespace="preserve">elapsed time since mining was started</doc>
            <type name="gdouble"/>
          </parameter>
          <parameter name="directories_found" transfer-ownership="none">
            <doc xml:whitespace="preserve">number of directories found</doc>
            <type name="guint"/>
          </parameter>
          <parameter name="directories_ignored" transfer-ownership="none">
            <doc xml:whitespace="preserve">number of ignored directories</doc>
            <type name="guint"/>
          </parameter>
          <parameter name="files_found" transfer-ownership="none">
            <doc xml:whitespace="preserve">number of files found</doc>
            <type name="guint"/>
          </parameter>
          <parameter name="files_ignored" transfer-ownership="none">
            <doc xml:whitespace="preserve">number of ignored files</doc>
            <type name="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="ignore-next-update-file"
                   when="last"
                   version="0.8"
                   deprecated="0.12">
        <doc xml:whitespace="preserve">The ::ignore-next-update-file signal is emitted whenever a file should
be marked as to ignore on next update, and it's metadata prepared for that.

@builder is the #TrackerSparqlBuilder where all sparql updates
to be performed for @file will be appended.

%FALSE on failure</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE on success</doc>
          <type name="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GFile</doc>
            <type name="Gio.File"/>
          </parameter>
          <parameter name="builder" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #TrackerSparqlBuilder</doc>
            <type name="Tracker.SparqlBuilder"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable</doc>
            <type name="Gio.Cancellable"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="process-file" when="last" version="0.8">
        <doc xml:whitespace="preserve">The ::process-file signal is emitted whenever a file should
be processed, and it's metadata extracted.

@builder is the #TrackerSparqlBuilder where all sparql updates
to be performed for @file will be appended.

This signal allows both synchronous and asynchronous extraction,
in the synchronous case @cancellable can be safely ignored. In
either case, on successful metadata extraction, implementations
must call tracker_miner_fs_file_notify() to indicate that
processing has finished on @file, so the miner can execute
the SPARQL updates and continue processing other files.

%FALSE if the file should be ignored.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the file is accepted for processing,</doc>
          <type name="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GFile</doc>
            <type name="Gio.File"/>
          </parameter>
          <parameter name="builder" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #TrackerSparqlBuilder</doc>
            <type name="Tracker.SparqlBuilder"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable</doc>
            <type name="Gio.Cancellable"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="process-file-attributes" when="last" version="0.10">
        <doc xml:whitespace="preserve">The ::process-file-attributes signal is emitted whenever a file should
be processed, but only the attribute-related metadata extracted.

@builder is the #TrackerSparqlBuilder where all sparql updates
to be performed for @file will be appended. For the properties being
updated, the DELETE statements should be included as well.

This signal allows both synchronous and asynchronous extraction,
in the synchronous case @cancellable can be safely ignored. In
either case, on successful metadata extraction, implementations
must call tracker_miner_fs_file_notify() to indicate that
processing has finished on @file, so the miner can execute
the SPARQL updates and continue processing other files.

%FALSE if the file should be ignored.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the file is accepted for processing,</doc>
          <type name="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GFile</doc>
            <type name="Gio.File"/>
          </parameter>
          <parameter name="builder" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #TrackerSparqlBuilder</doc>
            <type name="Tracker.SparqlBuilder"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable</doc>
            <type name="Gio.Cancellable"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="writeback-file" when="last" version="0.10.20">
        <doc xml:whitespace="preserve">The ::writeback-file signal is emitted whenever a file must be written
back</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
          <type name="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GFile</doc>
            <type name="Gio.File"/>
          </parameter>
          <parameter name="rdf_types" transfer-ownership="none">
            <doc xml:whitespace="preserve">the set of RDF types</doc>
            <array>
              <type name="utf8"/>
            </array>
          </parameter>
          <parameter name="results" transfer-ownership="none">
            <doc xml:whitespace="preserve">a set of results prepared by the preparation query</doc>
            <array name="GLib.PtrArray">
              <type name="gpointer" c:type="gpointer"/>
            </array>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable</doc>
            <type name="Gio.Cancellable"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="MinerFSClass"
            c:type="TrackerMinerFSClass"
            glib:is-gtype-struct-for="MinerFS">
      <doc xml:whitespace="preserve">Prototype for the abstract class, @process_file must be implemented
in the deriving class in order to actually extract data.</doc>
      <field name="parent">
        <type name="MinerClass" c:type="TrackerMinerClass"/>
      </field>
      <field name="process_file">
        <callback name="process_file">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="fs" transfer-ownership="none">
              <type name="MinerFS" c:type="TrackerMinerFS*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
            <parameter name="builder" transfer-ownership="none">
              <type name="Tracker.SparqlBuilder"
                    c:type="TrackerSparqlBuilder*"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       allow-none="1">
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="ignore_next_update_file">
        <callback name="ignore_next_update_file">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="fs" transfer-ownership="none">
              <type name="MinerFS" c:type="TrackerMinerFS*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
            <parameter name="builder" transfer-ownership="none">
              <type name="Tracker.SparqlBuilder"
                    c:type="TrackerSparqlBuilder*"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       allow-none="1">
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="finished">
        <callback name="finished">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="fs" transfer-ownership="none">
              <type name="MinerFS" c:type="TrackerMinerFS*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="process_file_attributes">
        <callback name="process_file_attributes">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="fs" transfer-ownership="none">
              <type name="MinerFS" c:type="TrackerMinerFS*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
            <parameter name="builder" transfer-ownership="none">
              <type name="Tracker.SparqlBuilder"
                    c:type="TrackerSparqlBuilder*"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       allow-none="1">
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="writeback_file">
        <callback name="writeback_file">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="fs" transfer-ownership="none">
              <type name="MinerFS" c:type="TrackerMinerFS*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <type name="Gio.File" c:type="GFile*"/>
            </parameter>
            <parameter name="rdf_types" transfer-ownership="none">
              <array c:type="GStrv">
                <type name="utf8"/>
              </array>
            </parameter>
            <parameter name="results" transfer-ownership="none">
              <array name="GLib.PtrArray" c:type="GPtrArray*">
                <type name="gpointer" c:type="gpointer"/>
              </array>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="MinerFSPrivate" c:type="TrackerMinerFSPrivate" disguised="1">
    </record>
    <class name="MinerManager"
           c:symbol-prefix="miner_manager"
           c:type="TrackerMinerManager"
           parent="GObject.Object"
           glib:type-name="TrackerMinerManager"
           glib:get-type="tracker_miner_manager_get_type"
           glib:type-struct="MinerManagerClass">
      <doc xml:whitespace="preserve">Object to query and control miners.</doc>
      <implements name="Gio.Initable"/>
      <constructor name="new"
                   c:identifier="tracker_miner_manager_new"
                   version="0.8">
        <doc xml:whitespace="preserve">Creates a new #TrackerMinerManager instance.

Note: Auto-starting miners when querying status will be enabled.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a #TrackerMinerManager or #NULL if an error happened.</doc>
          <type name="MinerManager" c:type="TrackerMinerManager*"/>
        </return-value>
      </constructor>
      <constructor name="new_full"
                   c:identifier="tracker_miner_manager_new_full"
                   version="0.10.5"
                   throws="1">
        <doc xml:whitespace="preserve">Creates a new #TrackerMinerManager.

accordingly.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a #TrackerMinerManager. On error, #NULL is returned and @error is set</doc>
          <type name="MinerManager" c:type="TrackerMinerManager*"/>
        </return-value>
        <parameters>
          <parameter name="auto_start" transfer-ownership="none">
            <doc xml:whitespace="preserve">Flag to disable auto-starting the miners when querying status</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="error_quark"
                c:identifier="tracker_miner_manager_error_quark"
                version="0.8">
        <doc xml:whitespace="preserve">GError structures.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the #GQuark used to identify miner manager errors in</doc>
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="miner_activated">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="miner_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="miner_deactivated">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="miner_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="miner_paused">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="miner_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="miner_progress">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="miner_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="status" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="progress" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="miner_resumed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="miner_name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_available"
              c:identifier="tracker_miner_manager_get_available"
              version="0.8">
        <doc xml:whitespace="preserve">Returns a list of references for all available miners. Available
miners are miners which may or may not be running in a process at
the current time.

be freed with g_slist_free() and all contained data with g_free().
Otherwise %NULL is returned if there are no miners.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a #GSList which must</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="utf8"/>
          </type>
        </return-value>
      </method>
      <method name="get_description"
              c:identifier="tracker_miner_manager_get_description"
              version="0.8">
        <doc xml:whitespace="preserve">Returns the description for the given @miner.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A string which should not be freed or %NULL if none is specified.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="miner" transfer-ownership="none">
            <doc xml:whitespace="preserve">miner reference</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_display_name"
              c:identifier="tracker_miner_manager_get_display_name"
              version="0.8">
        <doc xml:whitespace="preserve">Returns a translated display name for @miner.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">A string which should not be freed or %NULL.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="miner" transfer-ownership="none">
            <doc xml:whitespace="preserve">miner reference</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_running"
              c:identifier="tracker_miner_manager_get_running"
              version="0.8">
        <doc xml:whitespace="preserve">Returns a list of references for all active miners. Active miners
are miners which are running within a process.

be freed with g_slist_free() and all contained data with g_free().
Otherwise %NULL is returned if there are no miners.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a #GSList which must</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="utf8"/>
          </type>
        </return-value>
      </method>
      <method name="get_status"
              c:identifier="tracker_miner_manager_get_status"
              version="0.12">
        <doc xml:whitespace="preserve">Returns the current status, progress and remaining time for @miner.
@remaining_time will be 0 if not possible to compute it yet,
and less than zero if it is not applicable.

otherwise %FALSE</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the status could be retrieved successfully,</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="miner" transfer-ownership="none">
            <doc xml:whitespace="preserve">miner reference</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="status"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     allow-none="1">
            <doc xml:whitespace="preserve">return location for status</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
          <parameter name="progress"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     allow-none="1">
            <doc xml:whitespace="preserve">return location for progress</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="remaining_time"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     allow-none="1">
            <doc xml:whitespace="preserve">return location for remaining time</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="ignore_next_update"
              c:identifier="tracker_miner_manager_ignore_next_update"
              version="0.8"
              deprecated="0.12">
        <doc xml:whitespace="preserve">Tells the @miner to ignore any events for the next @urls. This is
used for cases where a file is updated by Tracker by the
tracker-writeback service. This API is used to avoid signalling up
the stack the changes to @urls.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE on success, otherwise %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="miner" transfer-ownership="none">
            <doc xml:whitespace="preserve">miner reference</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="urls" transfer-ownership="none">
            <doc xml:whitespace="preserve">the subjects to ignore the next updates of</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="index_file"
              c:identifier="tracker_miner_manager_index_file"
              version="0.10"
              throws="1">
        <doc xml:whitespace="preserve">Tells the filesystem miner to index the @file.

On failure @error will be set.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE on success, otherwise %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">a URL valid in GIO of a file to give to the miner for processing</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_active"
              c:identifier="tracker_miner_manager_is_active"
              version="0.8">
        <doc xml:whitespace="preserve">Returns the miner's current activity.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the @miner is active, otherwise %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="miner" transfer-ownership="none">
            <doc xml:whitespace="preserve">miner reference</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_paused"
              c:identifier="tracker_miner_manager_is_paused"
              version="0.8">
        <doc xml:whitespace="preserve">This function either returns %FALSE if the miner is not paused,
or returns %TRUE and fills in @applications and @reasons with
the pause reasons and the applications that asked for it. Both
arrays will have the same lengh, and will be sorted so the
application/pause reason pairs have the same index.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if @miner is paused, otherwise %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="miner" transfer-ownership="none">
            <doc xml:whitespace="preserve">miner reference</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="applications"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     allow-none="1">
            <doc xml:whitespace="preserve"> return location for application names.</doc>
            <array c:type="GStrv*">
              <type name="utf8"/>
            </array>
          </parameter>
          <parameter name="reasons"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     allow-none="1">
            <doc xml:whitespace="preserve"> return location for pause reasons.</doc>
            <array c:type="GStrv*">
              <type name="utf8"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="pause"
              c:identifier="tracker_miner_manager_pause"
              version="0.8">
        <doc xml:whitespace="preserve">Asks @miner to pause. a miner could be paused by
several reasons, and its activity won't be resumed
until all pause requests have been resumed.

%FALSE.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the miner was paused successfully, otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="miner" transfer-ownership="none">
            <doc xml:whitespace="preserve">miner reference</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="reason" transfer-ownership="none">
            <doc xml:whitespace="preserve">reason to pause</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cookie"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     allow-none="1">
            <doc xml:whitespace="preserve">return location for the pause cookie ID</doc>
            <type name="guint32" c:type="guint32*"/>
          </parameter>
        </parameters>
      </method>
      <method name="pause_for_process"
              c:identifier="tracker_miner_manager_pause_for_process"
              version="0.10.15">
        <doc xml:whitespace="preserve">This function operates exactly the same way as
tracker_miner_manager_pause() with the exception that if the calling
process dies, the pause is resumed. This API is useful for cases
where the calling process has a risk of crashing without resuming
the pause.

NOTE: If you call g_object_unref() on the @manager before you
intend to resume the pause and it finalizes, it will automatically
resume.

%FALSE.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the miner was paused successfully, otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="miner" transfer-ownership="none">
            <doc xml:whitespace="preserve">miner reference</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="reason" transfer-ownership="none">
            <doc xml:whitespace="preserve">reason to pause</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cookie"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     allow-none="1">
            <doc xml:whitespace="preserve">return location for the pause cookie ID</doc>
            <type name="guint32" c:type="guint32*"/>
          </parameter>
        </parameters>
      </method>
      <method name="reindex_by_mimetype"
              c:identifier="tracker_miner_manager_reindex_by_mimetype"
              version="0.10"
              throws="1">
        <doc xml:whitespace="preserve">Tells the filesystem miner to reindex any file with a mimetype in
the @mimetypes list.

On failure @error will be set.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE on success, otherwise %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="mimetypes" transfer-ownership="none">
            <doc xml:whitespace="preserve">an array of mimetypes (E.G. "text/plain"). All items with a mimetype in that list will be reindexed.</doc>
            <array c:type="GStrv">
              <type name="utf8"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="resume"
              c:identifier="tracker_miner_manager_resume"
              version="0.8">
        <doc xml:whitespace="preserve">Tells @miner to resume activity. The miner won't actually resume
operations until all pause requests have been resumed.

%FALSE.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the miner was successfully resumed, otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="miner" transfer-ownership="none">
            <doc xml:whitespace="preserve">miner reference</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="cookie" transfer-ownership="none">
            <doc xml:whitespace="preserve">pause cookie</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <property name="auto-start"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <glib:signal name="miner-activated" when="last" version="0.8">
        <doc xml:whitespace="preserve">The ::miner-activated signal will be emitted whenever a miner
(referenced by @miner) is activated (technically, this means
the miner has appeared in the session bus).</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="miner" transfer-ownership="none">
            <doc xml:whitespace="preserve">miner reference</doc>
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="miner-deactivated" when="last" version="0.8">
        <doc xml:whitespace="preserve">The ::miner-deactivated signal will be emitted whenever a miner
(referenced by @miner) is deactivated (technically, this means
the miner has disappeared from the session bus).</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="miner" transfer-ownership="none">
            <doc xml:whitespace="preserve">miner reference</doc>
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="miner-paused" when="last" version="0.8">
        <doc xml:whitespace="preserve">The ::miner-paused signal will be emitted whenever a miner
(referenced by @miner) is paused.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="miner" transfer-ownership="none">
            <doc xml:whitespace="preserve">miner reference</doc>
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="miner-progress" when="last" version="0.12">
        <doc xml:whitespace="preserve">The ::miner-progress signal is meant to report status/progress changes
in any tracked miner.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="miner" transfer-ownership="none">
            <doc xml:whitespace="preserve">miner reference</doc>
            <type name="utf8"/>
          </parameter>
          <parameter name="status" transfer-ownership="none">
            <doc xml:whitespace="preserve">miner status</doc>
            <type name="utf8"/>
          </parameter>
          <parameter name="progress" transfer-ownership="none">
            <doc xml:whitespace="preserve">miner progress, from 0 to 1</doc>
            <type name="gdouble"/>
          </parameter>
          <parameter name="remaining_time" transfer-ownership="none">
            <doc xml:whitespace="preserve">remaining processing time</doc>
            <type name="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="miner-resumed" when="last" version="0.8">
        <doc xml:whitespace="preserve">The ::miner-resumed signal will be emitted whenever a miner
(referenced by @miner) is resumed.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
        <parameters>
          <parameter name="miner" transfer-ownership="none">
            <doc xml:whitespace="preserve">miner reference</doc>
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="MinerManagerClass"
            c:type="TrackerMinerManagerClass"
            glib:is-gtype-struct-for="MinerManager">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="miner_progress">
        <callback name="miner_progress">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="manager" transfer-ownership="none">
              <type name="MinerManager" c:type="TrackerMinerManager*"/>
            </parameter>
            <parameter name="miner_name" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="status" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
            <parameter name="progress" transfer-ownership="none">
              <type name="gdouble" c:type="gdouble"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="miner_paused">
        <callback name="miner_paused">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="manager" transfer-ownership="none">
              <type name="MinerManager" c:type="TrackerMinerManager*"/>
            </parameter>
            <parameter name="miner_name" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="miner_resumed">
        <callback name="miner_resumed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="manager" transfer-ownership="none">
              <type name="MinerManager" c:type="TrackerMinerManager*"/>
            </parameter>
            <parameter name="miner_name" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="miner_activated">
        <callback name="miner_activated">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="manager" transfer-ownership="none">
              <type name="MinerManager" c:type="TrackerMinerManager*"/>
            </parameter>
            <parameter name="miner_name" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="miner_deactivated">
        <callback name="miner_deactivated">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="manager" transfer-ownership="none">
              <type name="MinerManager" c:type="TrackerMinerManager*"/>
            </parameter>
            <parameter name="miner_name" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="MinerManagerError"
                 version="0.8"
                 c:type="TrackerMinerManagerError">
      <doc xml:whitespace="preserve">Enumeration values used in errors returned by the
#TrackerMinerManager API.</doc>
      <member name="not_available"
              value="0"
              c:identifier="TRACKER_MINER_MANAGER_ERROR_NOT_AVAILABLE"/>
      <member name="noent"
              value="1"
              c:identifier="TRACKER_MINER_MANAGER_ERROR_NOENT"/>
    </enumeration>
    <record name="MinerPrivate" c:type="TrackerMinerPrivate" disguised="1">
    </record>
    <class name="MinerWeb"
           c:symbol-prefix="miner_web"
           c:type="TrackerMinerWeb"
           parent="Miner"
           abstract="1"
           glib:type-name="TrackerMinerWeb"
           glib:get-type="tracker_miner_web_get_type"
           glib:type-struct="MinerWebClass">
      <implements name="Gio.Initable"/>
      <function name="error_quark"
                c:identifier="tracker_miner_web_error_quark"
                version="0.8">
        <doc xml:whitespace="preserve">structures.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the #GQuark used to identify miner web errors in GError</doc>
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="associate"
                      invoker="associate"
                      version="0.8"
                      throws="1">
        <doc xml:whitespace="preserve">Asks @miner to associate with a remote service using
@association_data. To know what data to put into @association_data,
see &lt;classname&gt;TrackerMinerWebClass&lt;/classname&gt; for more
information.

On failure @error will be set.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="association_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">a %GHashTable with the data to use for associating with a remote service.</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="gpointer" c:type="gpointer"/>
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="authenticate"
                      invoker="authenticate"
                      version="0.8"
                      throws="1">
        <doc xml:whitespace="preserve">Asks @miner to authenticate with a remote service. On failure
@error will be set.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="dissociate"
                      invoker="dissociate"
                      version="0.8"
                      throws="1">
        <doc xml:whitespace="preserve">Asks @miner to dissociate from a remote service. At this point, the
miner should stop storing any credentials or sensitive information
which could be used to authenticate with the remote service.

On failure @error will be set.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="get_association_data"
                      invoker="get_association_data"
                      version="0.8"
                      throws="1">
        <doc xml:whitespace="preserve">Asks @miner to retrieve association_data for. The data returned in
the %GHashTable depends on the @miner implementation and the type
of authentication. See &lt;classname&gt;TrackerMinerWebClass&lt;/classname&gt;
for more information.

and %NULL will be returned.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a %GHashTable with the data. On failure @error will be set</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="gpointer" c:type="gpointer"/>
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
      </virtual-method>
      <method name="associate"
              c:identifier="tracker_miner_web_associate"
              version="0.8"
              throws="1">
        <doc xml:whitespace="preserve">Asks @miner to associate with a remote service using
@association_data. To know what data to put into @association_data,
see &lt;classname&gt;TrackerMinerWebClass&lt;/classname&gt; for more
information.

On failure @error will be set.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="association_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">a %GHashTable with the data to use for associating with a remote service.</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="gpointer" c:type="gpointer"/>
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="authenticate"
              c:identifier="tracker_miner_web_authenticate"
              version="0.8"
              throws="1">
        <doc xml:whitespace="preserve">Asks @miner to authenticate with a remote service. On failure
@error will be set.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="dissociate"
              c:identifier="tracker_miner_web_dissociate"
              version="0.8"
              throws="1">
        <doc xml:whitespace="preserve">Asks @miner to dissociate from a remote service. At this point, the
miner should stop storing any credentials or sensitive information
which could be used to authenticate with the remote service.

On failure @error will be set.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="get_association_data"
              c:identifier="tracker_miner_web_get_association_data"
              version="0.8"
              throws="1">
        <doc xml:whitespace="preserve">Asks @miner to retrieve association_data for. The data returned in
the %GHashTable depends on the @miner implementation and the type
of authentication. See &lt;classname&gt;TrackerMinerWebClass&lt;/classname&gt;
for more information.

and %NULL will be returned.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a %GHashTable with the data. On failure @error will be set</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="gpointer" c:type="gpointer"/>
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
      </method>
      <property name="associated"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="Miner" c:type="TrackerMiner"/>
      </field>
      <field name="priv">
        <type name="MinerWebPrivate" c:type="TrackerMinerWebPrivate*"/>
      </field>
    </class>
    <record name="MinerWebClass"
            c:type="TrackerMinerWebClass"
            glib:is-gtype-struct-for="MinerWeb"
            version="0.8.">
      <doc xml:whitespace="preserve">For the @authenticate function, a username/password can be used and
this should return an empty %GHashTable. If the authentication is
based on a token, the following keys &lt;emphasis&gt;must&lt;/emphasis&gt; be
returned in the %GHashTable:

&lt;itemizedlist&gt;
&lt;listitem&gt;
&lt;para&gt;
&lt;emphasis&gt;url&lt;/emphasis&gt;: the url to point the user to.
&lt;/para&gt;
&lt;/listitem&gt;
&lt;/itemizedlist&gt;

Additionally, the miner &lt;emphasis&gt;may&lt;/emphasis&gt; define the
following keys:

&lt;itemizedlist&gt;
&lt;listitem&gt;
&lt;para&gt;
&lt;emphasis&gt;post_message&lt;/emphasis&gt;: a message to display after
the user completes the association process.
&lt;/para&gt;
&lt;/listitem&gt;
&lt;listitem&gt;
&lt;para&gt;
&lt;emphasis&gt;post_url&lt;/emphasis&gt;: a url to point the user to
after they have completed the association.
&lt;/para&gt;
&lt;/listitem&gt;
&lt;/itemizedlist&gt;

&lt;note&gt;
&lt;para&gt;
If both &lt;emphasis&gt;post_message&lt;/emphasis&gt; and
&lt;emphasis&gt;post_url&lt;/emphasis&gt; are defined, the message will be
displayed before the url is opened.
&lt;/para&gt;
&lt;/note&gt;

For the @associate function, in the case of a username/password
based authentication, the following keys must be defined:

&lt;itemizedlist&gt;
&lt;listitem&gt;
&lt;para&gt;
&lt;emphasis&gt;username&lt;/emphasis&gt;: the username.
&lt;/para&gt;
&lt;/listitem&gt;
&lt;listitem&gt;
&lt;para&gt;
&lt;emphasis&gt;password&lt;/emphasis&gt;: the password.
&lt;/para&gt;
&lt;/listitem&gt;
&lt;/itemizedlist&gt;

In the case of a token based authentication, the %GHashTable can be
ignored since it will be empty.

For the @dissociate function, miners &lt;emphasis&gt;must&lt;/emphasis&gt;
forget any user credentials stored.</doc>
      <field name="parent_class">
        <type name="MinerClass" c:type="TrackerMinerClass"/>
      </field>
      <field name="authenticate">
        <callback name="authenticate" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="miner" transfer-ownership="none">
              <type name="MinerWeb" c:type="TrackerMinerWeb*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_association_data">
        <callback name="get_association_data" throws="1">
          <return-value transfer-ownership="full">
            <doc xml:whitespace="preserve">a %GHashTable with the data. On failure @error will be set</doc>
            <type name="GLib.HashTable" c:type="GHashTable*">
              <type name="gpointer" c:type="gpointer"/>
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="miner" transfer-ownership="none">
              <type name="MinerWeb" c:type="TrackerMinerWeb*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="associate">
        <callback name="associate" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="miner" transfer-ownership="none">
              <type name="MinerWeb" c:type="TrackerMinerWeb*"/>
            </parameter>
            <parameter name="association_data" transfer-ownership="none">
              <doc xml:whitespace="preserve">a %GHashTable with the data to use for associating with a remote service.</doc>
              <type name="GLib.HashTable" c:type="GHashTable*">
                <type name="gpointer" c:type="gpointer"/>
                <type name="gpointer" c:type="gpointer"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="dissociate">
        <callback name="dissociate" throws="1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="miner" transfer-ownership="none">
              <type name="MinerWeb" c:type="TrackerMinerWeb*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="MinerWebError"
                 version="0.8"
                 c:type="TrackerMinerWebError">
      <doc xml:whitespace="preserve">The following errors are possible during any of the performed
actions with a remote service.</doc>
      <member name="wrong_credentials"
              value="0"
              c:identifier="TRACKER_MINER_WEB_ERROR_WRONG_CREDENTIALS"/>
      <member name="token_expired"
              value="1"
              c:identifier="TRACKER_MINER_WEB_ERROR_TOKEN_EXPIRED"/>
      <member name="no_credentials"
              value="2"
              c:identifier="TRACKER_MINER_WEB_ERROR_NO_CREDENTIALS"/>
      <member name="keyring"
              value="3"
              c:identifier="TRACKER_MINER_WEB_ERROR_KEYRING"/>
      <member name="service"
              value="4"
              c:identifier="TRACKER_MINER_WEB_ERROR_SERVICE"/>
      <member name="tracker"
              value="5"
              c:identifier="TRACKER_MINER_WEB_ERROR_TRACKER"/>
    </enumeration>
    <record name="MinerWebPrivate"
            c:type="TrackerMinerWebPrivate"
            disguised="1">
    </record>
    <function name="accumulator_check_file"
              c:identifier="tracker_accumulator_check_file">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="hint" transfer-ownership="none">
          <type name="GObject.SignalInvocationHint"
                c:type="GSignalInvocationHint*"/>
        </parameter>
        <parameter name="return_accumulator" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="handler_return" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="accumulator_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_BOOLEAN__OBJECT"
              c:identifier="tracker_marshal_BOOLEAN__OBJECT">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="invocation_hint" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_BOOLEAN__OBJECT_BOXED_BOXED_OBJECT"
              c:identifier="tracker_marshal_BOOLEAN__OBJECT_BOXED_BOXED_OBJECT">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="invocation_hint" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_BOOLEAN__OBJECT_OBJECT"
              c:identifier="tracker_marshal_BOOLEAN__OBJECT_OBJECT">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="invocation_hint" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_BOOLEAN__OBJECT_OBJECT_OBJECT"
              c:identifier="tracker_marshal_BOOLEAN__OBJECT_OBJECT_OBJECT">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="invocation_hint" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_BOOLEAN__OBJECT_POINTER"
              c:identifier="tracker_marshal_BOOLEAN__OBJECT_POINTER">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="invocation_hint" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_VOID__DOUBLE_UINT_UINT_UINT_UINT"
              c:identifier="tracker_marshal_VOID__DOUBLE_UINT_UINT_UINT_UINT">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="invocation_hint" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_VOID__OBJECT_BOOLEAN"
              c:identifier="tracker_marshal_VOID__OBJECT_BOOLEAN">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="invocation_hint" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_VOID__OBJECT_OBJECT"
              c:identifier="tracker_marshal_VOID__OBJECT_OBJECT">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="invocation_hint" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_VOID__OBJECT_OBJECT_BOOLEAN_BOOLEAN"
              c:identifier="tracker_marshal_VOID__OBJECT_OBJECT_BOOLEAN_BOOLEAN">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="invocation_hint" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_VOID__OBJECT_POINTER_UINT_UINT_UINT_UINT"
              c:identifier="tracker_marshal_VOID__OBJECT_POINTER_UINT_UINT_UINT_UINT">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="invocation_hint" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_VOID__OBJECT_UINT_UINT_UINT_UINT"
              c:identifier="tracker_marshal_VOID__OBJECT_UINT_UINT_UINT_UINT">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="invocation_hint" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_VOID__STRING_DOUBLE_INT"
              c:identifier="tracker_marshal_VOID__STRING_DOUBLE_INT">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="invocation_hint" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_VOID__STRING_STRING"
              c:identifier="tracker_marshal_VOID__STRING_STRING">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="invocation_hint" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_VOID__STRING_STRING_BOOLEAN_BOOLEAN"
              c:identifier="tracker_marshal_VOID__STRING_STRING_BOOLEAN_BOOLEAN">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="invocation_hint" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_VOID__STRING_STRING_DOUBLE_INT"
              c:identifier="tracker_marshal_VOID__STRING_STRING_DOUBLE_INT">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="invocation_hint" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_VOID__STRING_STRING_STRING_BOOLEAN_BOOLEAN"
              c:identifier="tracker_marshal_VOID__STRING_STRING_STRING_BOOLEAN_BOOLEAN">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="invocation_hint" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="media_art_execute_queue"
              c:identifier="tracker_media_art_execute_queue">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="connection" transfer-ownership="none">
          <type name="Tracker.SparqlConnection"
                c:type="TrackerSparqlConnection*"/>
        </parameter>
      </parameters>
    </function>
    <function name="media_art_queue_removal"
              c:identifier="tracker_media_art_queue_removal"
              version="0.10.4">
      <doc xml:whitespace="preserve">Adds a new request to tell the media art subsystem that @uri was removed.
Stored requests can be processed with tracker_media_art_execute_queue().</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">#TRUE if successfully stored to be reported, #FALSE otherwise.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="uri" transfer-ownership="none">
          <doc xml:whitespace="preserve">URI of the file</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="mime_type" transfer-ownership="none">
          <doc xml:whitespace="preserve">mime-type of the file</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="thumbnailer_cleanup"
              c:identifier="tracker_thumbnailer_cleanup"
              version="0.8">
      <doc xml:whitespace="preserve">Tells thumbnailer to cleanup all thumbnails under @uri_prefix.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">#TRUE if successfully reported, #FALSE otherwise.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="uri_prefix" transfer-ownership="none">
          <doc xml:whitespace="preserve">URI prefix</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="thumbnailer_init"
              c:identifier="tracker_thumbnailer_init"
              version="0.8">
      <doc xml:whitespace="preserve">Initializes the thumbnailer connection.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">#TRUE if connection was successfully initialized, #FALSE otherwise.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="thumbnailer_move_add"
              c:identifier="tracker_thumbnailer_move_add"
              version="0.8">
      <doc xml:whitespace="preserve">Adds a new request to tell the thumbnailer that @from_uri was moved to
@to_uri. Stored requests can be sent with tracker_thumbnailer_send().</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">#TRUE if successfully stored to be reported, #FALSE otherwise.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="from_uri" transfer-ownership="none">
          <doc xml:whitespace="preserve">URI of the file before the move</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="mime_type" transfer-ownership="none">
          <doc xml:whitespace="preserve">mime-type of the file</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="to_uri" transfer-ownership="none">
          <doc xml:whitespace="preserve">URI of the file after the move</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="thumbnailer_remove_add"
              c:identifier="tracker_thumbnailer_remove_add"
              version="0.8">
      <doc xml:whitespace="preserve">Adds a new request to tell the thumbnailer that @uri was removed.
Stored requests can be sent with tracker_thumbnailer_send().</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">#TRUE if successfully stored to be reported, #FALSE otherwise.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="uri" transfer-ownership="none">
          <doc xml:whitespace="preserve">URI of the file</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="mime_type" transfer-ownership="none">
          <doc xml:whitespace="preserve">mime-type of the file</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="thumbnailer_send"
              c:identifier="tracker_thumbnailer_send"
              version="0.8">
      <doc xml:whitespace="preserve">Sends to the thumbnailer all stored requests.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="thumbnailer_shutdown"
              c:identifier="tracker_thumbnailer_shutdown"
              version="0.8">
      <doc xml:whitespace="preserve">Shuts down the thumbnailer connection.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
  </namespace>
</repository>
