<?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="GObject" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <include name="Soup" version="2.4"/>
  <include name="libxml2" version="2.0"/>
  <namespace name="Grss"
             version="0.7"
             shared-library="libgrss.so.0"
             c:identifier-prefixes="Grss"
             c:symbol-prefixes="grss">
    <class name="FeedAtomFormatter"
           c:symbol-prefix="feed_atom_formatter"
           c:type="GrssFeedAtomFormatter"
           parent="FeedFormatter"
           glib:type-name="GrssFeedAtomFormatter"
           glib:get-type="grss_feed_atom_formatter_get_type"
           glib:type-struct="FeedAtomFormatterClass">
      <constructor name="new" c:identifier="grss_feed_atom_formatter_new">
        <return-value transfer-ownership="full">
          <type name="FeedAtomFormatter" c:type="GrssFeedAtomFormatter*"/>
        </return-value>
      </constructor>
      <field name="parent">
        <type name="FeedFormatter" c:type="GrssFeedFormatter"/>
      </field>
    </class>
    <record name="FeedAtomFormatterClass"
            c:type="GrssFeedAtomFormatterClass"
            glib:is-gtype-struct-for="FeedAtomFormatter">
      <field name="parent">
        <type name="FeedFormatterClass" c:type="GrssFeedFormatterClass"/>
      </field>
    </record>
    <record name="FeedAtomFormatterPrivate"
            c:type="GrssFeedAtomFormatterPrivate"
            disguised="1">
    </record>
    <class name="FeedChannel"
           c:symbol-prefix="feed_channel"
           c:type="GrssFeedChannel"
           parent="GObject.Object"
           glib:type-name="GrssFeedChannel"
           glib:get-type="grss_feed_channel_get_type"
           glib:type-struct="FeedChannelClass">
      <constructor name="new" c:identifier="grss_feed_channel_new">
        <doc xml:space="preserve">Allocates a new #GrssFeedChannel.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GrssFeedChannel.</doc>
          <type name="FeedChannel" c:type="GrssFeedChannel*"/>
        </return-value>
      </constructor>
      <constructor name="new_from_file"
                   c:identifier="grss_feed_channel_new_from_file"
                   throws="1">
        <doc xml:space="preserve">Allocates a new #GrssFeedChannel and init it with contents found in specified
file.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GrssFeedChannel, or %NULL if the file in @path is not a
valid document.</doc>
          <type name="FeedChannel" c:type="GrssFeedChannel*"/>
        </return-value>
        <parameters>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve">path of the file to parse.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_memory"
                   c:identifier="grss_feed_channel_new_from_memory"
                   throws="1">
        <doc xml:space="preserve">Allocates a new #GrssFeedChannel and init it with contents found in specified
memory block.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GrssFeedChannel, or %NULL if an error occurs.</doc>
          <type name="FeedChannel" c:type="GrssFeedChannel*"/>
        </return-value>
        <parameters>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve">string to parse.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_xml"
                   c:identifier="grss_feed_channel_new_from_xml"
                   throws="1">
        <doc xml:space="preserve">Allocates a new #GrssFeedChannel and init it with contents found in specified
XML document.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GrssFeedChannel, or %NULL if an error occurs.</doc>
          <type name="FeedChannel" c:type="GrssFeedChannel*"/>
        </return-value>
        <parameters>
          <parameter name="doc" transfer-ownership="none">
            <doc xml:space="preserve">an XML document previously parsed with libxml2.</doc>
            <type name="libxml2.DocPtr" c:type="xmlDocPtr"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_with_source"
                   c:identifier="grss_feed_channel_new_with_source">
        <doc xml:space="preserve">Allocates a new #GrssFeedChannel and assign it the given remote source.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GrssFeedChannel.</doc>
          <type name="FeedChannel" c:type="GrssFeedChannel*"/>
        </return-value>
        <parameters>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">URL of the feed.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_contributor"
              c:identifier="grss_feed_channel_add_contributor">
        <doc xml:space="preserve">To add a contributor to the @channel.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
          <parameter name="contributor" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssPerson.</doc>
            <type name="Person" c:type="GrssPerson*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_cookie" c:identifier="grss_feed_channel_add_cookie">
        <doc xml:space="preserve">To add a cookie related to the @channel, will be involved in HTTP sessions
while fetching it. More cookie can be added to every #GrssFeedChannel</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
          <parameter name="cookie" transfer-ownership="none">
            <doc xml:space="preserve">HTML cookie to add to the #GrssFeedChannel's cookie jar</doc>
            <type name="Soup.Cookie" c:type="SoupCookie*"/>
          </parameter>
        </parameters>
      </method>
      <method name="fetch" c:identifier="grss_feed_channel_fetch" throws="1">
        <doc xml:space="preserve">Utility to fetch and populate a #GrssFeedChannel for the first time, and init
all his internal values. Only the source URL has to be set in @channel
(with grss_feed_channel_set_source()). Be aware this function is sync, do not
returns until the feed isn't downloaded and parsed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the feed is correctly fetched and parsed, %FALSE
otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="fetch_all"
              c:identifier="grss_feed_channel_fetch_all"
              throws="1">
        <doc xml:space="preserve">Utility to fetch and populate a #GrssFeedChannel, and retrieve all its
items.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a GList
of #GrssFeedItem, to be completely unreferenced and freed when no
longer in use, or %NULL if an error occurs.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="FeedItem"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="fetch_all_async"
              c:identifier="grss_feed_channel_fetch_all_async">
        <doc xml:space="preserve">Similar to grss_feed_channel_fetch_all(), but asyncronous.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="1">
            <doc xml:space="preserve">function to invoke at the end of the download.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data passed to the callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="fetch_all_finish"
              c:identifier="grss_feed_channel_fetch_all_finish"
              throws="1">
        <doc xml:space="preserve">Finalizes an asyncronous operation started with
grss_feed_channel_fetch_all_async().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">list of
items fetched from the #GrssFeedChannel, or %NULL if @error is
set. The list (and contained items) is freed at the end of the
callback</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="FeedItem"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve">the #GAsyncResult passed to the callback.</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="fetch_async" c:identifier="grss_feed_channel_fetch_async">
        <doc xml:space="preserve">Similar to grss_feed_channel_fetch(), but asyncronous.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="1">
            <doc xml:space="preserve">function to invoke at the end of the download.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data passed to the callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="fetch_cancel"
              c:identifier="grss_feed_channel_fetch_cancel">
        <doc xml:space="preserve">If a fetch operation was scheduled with grss_feed_channel_fetch_async() or
grss_feed_channel_fetch_all_async(), cancel it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if a fetch was scheduled (and now cancelled), %FALSE if
this function had nothing to do</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="fetch_finish"
              c:identifier="grss_feed_channel_fetch_finish"
              throws="1">
        <doc xml:space="preserve">Finalizes an asyncronous operation started with
grss_feed_channel_fetch_async().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @channel informations have been successfully fetched,
%FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve">the #GAsyncResult passed to the callback.</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_category"
              c:identifier="grss_feed_channel_get_category">
        <doc xml:space="preserve">Retrieves category of the @channel.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">category of the feed, or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_contributors"
              c:identifier="grss_feed_channel_get_contributors">
        <doc xml:space="preserve">Retrieves reference to the contributors of the @channel.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">list of contributors to
the channel, or %NULL.</doc>
          <type name="GLib.List" c:type="const GList*">
            <type name="Person"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_cookies" c:identifier="grss_feed_channel_get_cookies">
        <doc xml:space="preserve">Retrieves reference to the HTML cookies of the @channel.
The list and the individual cookies should all be freed after use.
You can use soup_cookies_free.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">list of cookies to
the channel, or %NULL.</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="Soup.Cookie"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_copyright"
              c:identifier="grss_feed_channel_get_copyright">
        <doc xml:space="preserve">Retrieves indications about the copyright.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">copyright of the @channel, or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_description"
              c:identifier="grss_feed_channel_get_description">
        <doc xml:space="preserve">Retrieves the description of @channel.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">description of the feed, or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_editor" c:identifier="grss_feed_channel_get_editor">
        <doc xml:space="preserve">Retrieves reference to the editor or the @channel.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">#GrssPerson, or %NULL.</doc>
          <type name="Person" c:type="GrssPerson*"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_format" c:identifier="grss_feed_channel_get_format">
        <doc xml:space="preserve">Retrieves the file format of @channel.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">file format of channel.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_generator"
              c:identifier="grss_feed_channel_get_generator">
        <doc xml:space="preserve">Retrieves information about the feed's software generator.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">generator of @channel, or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_gzip_compression"
              c:identifier="grss_feed_channel_get_gzip_compression">
        <doc xml:space="preserve">GZIP compression of the channel is either on or off.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @channel has GZIP compression on.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_homepage"
              c:identifier="grss_feed_channel_get_homepage">
        <doc xml:space="preserve">Retrieves the homepage of the site for which @channel is the feed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">reference homepage of the feed, or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon" c:identifier="grss_feed_channel_get_icon">
        <doc xml:space="preserve">Retrieves URL of the favicon of the channel (and/or the website for which
this is the feed).</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">URL of the favicon, or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_image" c:identifier="grss_feed_channel_get_image">
        <doc xml:space="preserve">Retrieves the URL of the image assigned to the channel.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">URL of the image, or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_language"
              c:identifier="grss_feed_channel_get_language">
        <doc xml:space="preserve">Retrieves the language of the @channel.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">string rappresenting the language of channel, or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_publish_time"
              c:identifier="grss_feed_channel_get_publish_time">
        <doc xml:space="preserve">Retrieves the publishing time of @channel.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">time of feed's publish.</doc>
          <type name="glong" c:type="time_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pubsubhub"
              c:identifier="grss_feed_channel_get_pubsubhub">
        <doc xml:space="preserve">Retrieves information about the PubSubHubbub hub of the channel.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if a valid PubSubHubbub hub has been set for the
@channel, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
          <parameter name="hub" transfer-ownership="none">
            <doc xml:space="preserve">location for the hub string, or %NULL.</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_rsscloud"
              c:identifier="grss_feed_channel_get_rsscloud">
        <doc xml:space="preserve">Retrieves information about the RSSCloud coordinates of the channel.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if a valid RSSCloud path has been set for the
@channel, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve">location for the path string, or %NULL.</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
          <parameter name="protocol" transfer-ownership="none">
            <doc xml:space="preserve">location for the protocol string, or %NULL.</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_source" c:identifier="grss_feed_channel_get_source">
        <doc xml:space="preserve">Retrieves URL where to fetch the @channel.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">URL of the channel.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title" c:identifier="grss_feed_channel_get_title">
        <doc xml:space="preserve">Retrieves title of the @channel.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">title of the feed, or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_update_interval"
              c:identifier="grss_feed_channel_get_update_interval">
        <doc xml:space="preserve">Retrieves the update interval for the feed. Pay attention to the fact the
value can be unset, and the function returns 0: in this case the caller
must manually set a default update interval with
grss_feed_channel_set_update_interval().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">update interval for the @channel, in minutes.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_update_time"
              c:identifier="grss_feed_channel_get_update_time">
        <doc xml:space="preserve">Retrieves the update time of @channel.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">time of the feed's latest update. If this value was not set
(with grss_feed_channel_set_update_time()) returns
grss_feed_channel_get_publish_time().</doc>
          <type name="glong" c:type="time_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_webmaster"
              c:identifier="grss_feed_channel_get_webmaster">
        <doc xml:space="preserve">Retrieves reference to the webmaster of the feed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">webmaster of @channel, or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_category"
              c:identifier="grss_feed_channel_set_category">
        <doc xml:space="preserve">To set the category of the @channel.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
          <parameter name="category" transfer-ownership="none">
            <doc xml:space="preserve">category of the feed.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_copyright"
              c:identifier="grss_feed_channel_set_copyright">
        <doc xml:space="preserve">To set the copyright of the feed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
          <parameter name="copyright" transfer-ownership="none">
            <doc xml:space="preserve">copyright of the channel.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_description"
              c:identifier="grss_feed_channel_set_description">
        <doc xml:space="preserve">To set the description of @channel.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
          <parameter name="description" transfer-ownership="none">
            <doc xml:space="preserve">description of the feed.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_editor" c:identifier="grss_feed_channel_set_editor">
        <doc xml:space="preserve">To set the editor of the @channel.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
          <parameter name="editor" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssPerson.</doc>
            <type name="Person" c:type="GrssPerson*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_format" c:identifier="grss_feed_channel_set_format">
        <doc xml:space="preserve">To assign a file format to the feed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
          <parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve">format of the file, such as "application/atom+xml" or
"application/rss+xml".</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_generator"
              c:identifier="grss_feed_channel_set_generator">
        <doc xml:space="preserve">To set information about the software generator of @channel.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
          <parameter name="generator" transfer-ownership="none">
            <doc xml:space="preserve">software generator of the feed.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_gzip_compression"
              c:identifier="grss_feed_channel_set_gzip_compression">
        <doc xml:space="preserve">Set the GZIP compression for the channel to on or off.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">%TRUE to enable GZIP compression when fetching the channel</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_homepage"
              c:identifier="grss_feed_channel_set_homepage">
        <doc xml:space="preserve">To set the homepage of the site the @channel belongs.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @homepage is a valid URL, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
          <parameter name="homepage" transfer-ownership="none">
            <doc xml:space="preserve">homepage for the main website.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon" c:identifier="grss_feed_channel_set_icon">
        <doc xml:space="preserve">To set the URL of the icon rappresenting @channel.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @icon is a valid URL, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
          <parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve">URL where to retrieve the favicon.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_image" c:identifier="grss_feed_channel_set_image">
        <doc xml:space="preserve">To set a rappresentative image to @channel.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @image is a valid URL, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
          <parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve">URL of the image.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_language"
              c:identifier="grss_feed_channel_set_language">
        <doc xml:space="preserve">To set the language of @channel.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
          <parameter name="language" transfer-ownership="none">
            <doc xml:space="preserve">string holding the language of the feed.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_publish_time"
              c:identifier="grss_feed_channel_set_publish_time">
        <doc xml:space="preserve">To set the time of publishing for the feed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
          <parameter name="publish" transfer-ownership="none">
            <doc xml:space="preserve">timestamp of publishing.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_pubsubhub"
              c:identifier="grss_feed_channel_set_pubsubhub">
        <doc xml:space="preserve">To set information about PubSubHubbub for the channel. To unset the hub,
pass %NULL as parameter.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @hub is a valid URL, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
          <parameter name="hub" transfer-ownership="none">
            <doc xml:space="preserve">hub for the feed, or %NULL.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rsscloud"
              c:identifier="grss_feed_channel_set_rsscloud">
        <doc xml:space="preserve">To set information about RSSCloud notifications for the channel.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve">complete references of the URL where to register subscription, e.g.
       http://example.com/rsscloudNotify .</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="protocol" transfer-ownership="none">
            <doc xml:space="preserve">type of protocol used for notifications.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_source" c:identifier="grss_feed_channel_set_source">
        <doc xml:space="preserve">To assign the URL where to fetch the feed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @source is a valid URL, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">URL of the feed.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_title" c:identifier="grss_feed_channel_set_title">
        <doc xml:space="preserve">To set a title to the @channel.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
          <parameter name="title" transfer-ownership="none">
            <doc xml:space="preserve">title of the feed.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_update_interval"
              c:identifier="grss_feed_channel_set_update_interval">
        <doc xml:space="preserve">To set the update interval for @channel.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
          <parameter name="minutes" transfer-ownership="none">
            <doc xml:space="preserve">update interval, in minutes.</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_update_time"
              c:identifier="grss_feed_channel_set_update_time">
        <doc xml:space="preserve">To set the latest update time of @channel.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
          <parameter name="update" transfer-ownership="none">
            <doc xml:space="preserve">update time of the feed.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_webmaster"
              c:identifier="grss_feed_channel_set_webmaster">
        <doc xml:space="preserve">To assign a webmaster to the @channel.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </instance-parameter>
          <parameter name="webmaster" transfer-ownership="none">
            <doc xml:space="preserve">webmaster of the feed.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="FeedChannelPrivate" c:type="GrssFeedChannelPrivate*"/>
      </field>
    </class>
    <record name="FeedChannelClass"
            c:type="GrssFeedChannelClass"
            glib:is-gtype-struct-for="FeedChannel">
      <field name="parent">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="FeedChannelPrivate"
            c:type="GrssFeedChannelPrivate"
            disguised="1">
    </record>
    <class name="FeedEnclosure"
           c:symbol-prefix="feed_enclosure"
           c:type="GrssFeedEnclosure"
           parent="GObject.Object"
           glib:type-name="GrssFeedEnclosure"
           glib:get-type="grss_feed_enclosure_get_type"
           glib:type-struct="FeedEnclosureClass">
      <constructor name="new" c:identifier="grss_feed_enclosure_new">
        <doc xml:space="preserve">Allocates a new #GrssFeedEnclosure, to be downloaded separately.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GrssFeedEnclosure.</doc>
          <type name="FeedEnclosure" c:type="GrssFeedEnclosure*"/>
        </return-value>
        <parameters>
          <parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve">URL of the external element.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="fetch" c:identifier="grss_feed_enclosure_fetch" throws="1">
        <doc xml:space="preserve">Utility to fetch a #GrssFeedEnclosure. Contents are stored in a temporary
#GFile, which is suggested to move on a permanent location to keep it over
time.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">temporary file where the contents have been
written, or %NULL if an error occours.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="enclosure" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedEnclosure.</doc>
            <type name="FeedEnclosure" c:type="GrssFeedEnclosure*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="fetch_async"
              c:identifier="grss_feed_enclosure_fetch_async">
        <doc xml:space="preserve">Similar to grss_feed_enclosure_fetch(), but asyncronous.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="enclosure" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedEnclosure.</doc>
            <type name="FeedEnclosure" c:type="GrssFeedEnclosure*"/>
          </instance-parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="1">
            <doc xml:space="preserve">function to invoke at the end of the download.</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">data passed to the callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="fetch_finish"
              c:identifier="grss_feed_enclosure_fetch_finish"
              throws="1">
        <doc xml:space="preserve">Finalizes an asyncronous operation started with
grss_feed_enclosure_fetch_async().</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">temporary file where the contents have been
written, or %NULL if an error occours.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="enclosure" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedEnclosure.</doc>
            <type name="FeedEnclosure" c:type="GrssFeedEnclosure*"/>
          </instance-parameter>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve">the #GAsyncResult passed to the callback.</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_format" c:identifier="grss_feed_enclosure_get_format">
        <doc xml:space="preserve">Retrieves the format of the enclosed file.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">type of @enclosure.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="enclosure" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedEnclosure.</doc>
            <type name="FeedEnclosure" c:type="GrssFeedEnclosure*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_length" c:identifier="grss_feed_enclosure_get_length">
        <doc xml:space="preserve">Retrieves the size of the embedded file.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">size of the @enclosure, in bytes.</doc>
          <type name="gsize" c:type="gsize"/>
        </return-value>
        <parameters>
          <instance-parameter name="enclosure" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedEnclosure.</doc>
            <type name="FeedEnclosure" c:type="GrssFeedEnclosure*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_url" c:identifier="grss_feed_enclosure_get_url">
        <doc xml:space="preserve">Retrieves the URL of the @enclosure.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the URL where the enclosure may be found.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="enclosure" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedEnclosure.</doc>
            <type name="FeedEnclosure" c:type="GrssFeedEnclosure*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_format" c:identifier="grss_feed_enclosure_set_format">
        <doc xml:space="preserve">To set the type of the external file.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="enclosure" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedEnclosure.</doc>
            <type name="FeedEnclosure" c:type="GrssFeedEnclosure*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve">type of content.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_length" c:identifier="grss_feed_enclosure_set_length">
        <doc xml:space="preserve">To set the size of the embedded @enclosure.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="enclosure" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedEnclosure.</doc>
            <type name="FeedEnclosure" c:type="GrssFeedEnclosure*"/>
          </instance-parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:space="preserve">size of the enclosure, in bytes.</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="FeedEnclosurePrivate" c:type="GrssFeedEnclosurePrivate*"/>
      </field>
    </class>
    <record name="FeedEnclosureClass"
            c:type="GrssFeedEnclosureClass"
            glib:is-gtype-struct-for="FeedEnclosure">
      <field name="parent">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="FeedEnclosurePrivate"
            c:type="GrssFeedEnclosurePrivate"
            disguised="1">
    </record>
    <class name="FeedFormatter"
           c:symbol-prefix="feed_formatter"
           c:type="GrssFeedFormatter"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="GrssFeedFormatter"
           glib:get-type="grss_feed_formatter_get_type"
           glib:type-struct="FeedFormatterClass">
      <virtual-method name="format" invoker="format">
        <doc xml:space="preserve">Formats the assigned #GrssFeedChannel and #GrssFeedItems into a plain text
string, accordly to the current #GrssFeedFormatter instance.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a string containing the plain text
rappresentation of the given channel containing the given items.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="formatter" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedFormatter.</doc>
            <type name="FeedFormatter" c:type="GrssFeedFormatter*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="add_item" c:identifier="grss_feed_formatter_add_item">
        <doc xml:space="preserve">Adds a single #GrssFeedItem in the @formatter.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="formatter" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedFormatter.</doc>
            <type name="FeedFormatter" c:type="GrssFeedFormatter*"/>
          </instance-parameter>
          <parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedItem to add into the @formatter.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_items" c:identifier="grss_feed_formatter_add_items">
        <doc xml:space="preserve">Adds a list of #GrssFeedItems in the @formatter.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="formatter" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedFormatter.</doc>
            <type name="FeedFormatter" c:type="GrssFeedFormatter*"/>
          </instance-parameter>
          <parameter name="items" transfer-ownership="none">
            <doc xml:space="preserve">a list of #GrssFeedItems to add into
        the @formatter.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="FeedItem"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="format" c:identifier="grss_feed_formatter_format">
        <doc xml:space="preserve">Formats the assigned #GrssFeedChannel and #GrssFeedItems into a plain text
string, accordly to the current #GrssFeedFormatter instance.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a string containing the plain text
rappresentation of the given channel containing the given items.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="formatter" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedFormatter.</doc>
            <type name="FeedFormatter" c:type="GrssFeedFormatter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_channel"
              c:identifier="grss_feed_formatter_get_channel">
        <doc xml:space="preserve">Gets the current #GrssFeedChannel assigned to the @formatter.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #GrssFeedChannel, or %NULL if none has been
assigned.</doc>
          <type name="FeedChannel" c:type="GrssFeedChannel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="formatter" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedFormatter.</doc>
            <type name="FeedFormatter" c:type="GrssFeedFormatter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_items" c:identifier="grss_feed_formatter_get_items">
        <doc xml:space="preserve">Gets the current #GrssFeedItems assigned to the @formatter.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a list of
#GrssFeedItems, or %NULL if none has been assigned.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="FeedItem"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="formatter" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedFormatter.</doc>
            <type name="FeedFormatter" c:type="GrssFeedFormatter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="reset" c:identifier="grss_feed_formatter_reset">
        <doc xml:space="preserve">Resets the status of the #GrssFeedFormatter, cleaning up the assigned
#GrssFeedChannel and related #GrssFeedItems. This way @formatter is ready to
be used again with new data.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="formatter" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedFormatter.</doc>
            <type name="FeedFormatter" c:type="GrssFeedFormatter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_channel"
              c:identifier="grss_feed_formatter_set_channel">
        <doc xml:space="preserve">Inits the #GrssFeedFormatter with the given @channel. A #GrssFeedFormatter
can format a single #GrssFeedChannel each time, but may be reused by calling
grss_feed_formatter_reset()</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="formatter" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedFormatter.</doc>
            <type name="FeedFormatter" c:type="GrssFeedFormatter*"/>
          </instance-parameter>
          <parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">the reference #GrssFeedChannel for the @formatter.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="FeedFormatterPrivate" c:type="GrssFeedFormatterPrivate*"/>
      </field>
    </class>
    <record name="FeedFormatterClass"
            c:type="GrssFeedFormatterClass"
            glib:is-gtype-struct-for="FeedFormatter">
      <field name="parent">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="format">
        <callback name="format">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">a string containing the plain text
rappresentation of the given channel containing the given items.</doc>
            <type name="utf8" c:type="gchar*"/>
          </return-value>
          <parameters>
            <parameter name="formatter" transfer-ownership="none">
              <doc xml:space="preserve">a #GrssFeedFormatter.</doc>
              <type name="FeedFormatter" c:type="GrssFeedFormatter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="FeedFormatterPrivate"
            c:type="GrssFeedFormatterPrivate"
            disguised="1">
    </record>
    <class name="FeedItem"
           c:symbol-prefix="feed_item"
           c:type="GrssFeedItem"
           parent="GObject.Object"
           glib:type-name="GrssFeedItem"
           glib:get-type="grss_feed_item_get_type"
           glib:type-struct="FeedItemClass">
      <constructor name="new" c:identifier="grss_feed_item_new">
        <doc xml:space="preserve">To allocate a new empty #GrssFeedItem.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GrssFeedItem.</doc>
          <type name="FeedItem" c:type="GrssFeedItem*"/>
        </return-value>
        <parameters>
          <parameter name="parent" transfer-ownership="none">
            <doc xml:space="preserve">the feed from which the new item belongs.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_category" c:identifier="grss_feed_item_add_category">
        <doc xml:space="preserve">Adds a category to the @item. The complete list can be obtained with
grss_feed_item_get_categories().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedItem.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </instance-parameter>
          <parameter name="category" transfer-ownership="none">
            <doc xml:space="preserve">a new category to assign to the item.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_contributor"
              c:identifier="grss_feed_item_add_contributor">
        <doc xml:space="preserve">To add a contributor to the @item.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedItem.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </instance-parameter>
          <parameter name="contributor" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssPerson.</doc>
            <type name="Person" c:type="GrssPerson*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_enclosure" c:identifier="grss_feed_item_add_enclosure">
        <doc xml:space="preserve">Adds an enclosure to the @item. That external elements may be references
to images, videos, or other contents (usually multimedial) embedded in the
element.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedItem.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </instance-parameter>
          <parameter name="enclosure" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedEnclosure to add to the item.</doc>
            <type name="FeedEnclosure" c:type="GrssFeedEnclosure*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_author" c:identifier="grss_feed_item_get_author">
        <doc xml:space="preserve">Retrieves the author of @item.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">#GrssPerson, or %NULL.</doc>
          <type name="Person" c:type="GrssPerson*"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedItem.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_categories"
              c:identifier="grss_feed_item_get_categories">
        <doc xml:space="preserve">Retrieves list of categories assigned to the @item.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">list of strings,
one for assigned category. Do not free or modify this list.</doc>
          <type name="GLib.List" c:type="const GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedItem.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_comments_url"
              c:identifier="grss_feed_item_get_comments_url">
        <doc xml:space="preserve">Retrieves the URL where to catch comments to the @item.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">URL to parse to read comments for @item, or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedItem.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_contributors"
              c:identifier="grss_feed_item_get_contributors">
        <doc xml:space="preserve">Retrieves contributors for @item.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">list of
         contributors to the item.</doc>
          <type name="GLib.List" c:type="const GList*">
            <type name="Person"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedItem.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_copyright" c:identifier="grss_feed_item_get_copyright">
        <doc xml:space="preserve">Retrieves copyright reference for the @item.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">copyright mark, or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedItem.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_description"
              c:identifier="grss_feed_item_get_description">
        <doc xml:space="preserve">Retrieves the description of the @item.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">description of @item.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedItem.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_enclosures"
              c:identifier="grss_feed_item_get_enclosures">
        <doc xml:space="preserve">Retrieves the list of enclosures added with grss_feed_item_add_enclosure().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a list of
#GrssFeedEnclosure. This is a direct reference to the internal list, do not
free or modify it.</doc>
          <type name="GLib.List" c:type="const GList*">
            <type name="FeedEnclosure"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedItem.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_geo_point" c:identifier="grss_feed_item_get_geo_point">
        <doc xml:space="preserve">Retrieves the geo reference of the @item.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @item has geographic coordinates assigned and
@latitude and @longitude have been set, %FALSE if @item has not geo
reference.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedItem.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </instance-parameter>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:space="preserve">will be assigned to the latitude of the point, or %NULL.</doc>
            <type name="gdouble" c:type="double*"/>
          </parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:space="preserve">will be assigned to the longitude of the point, or %NULL.</doc>
            <type name="gdouble" c:type="double*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="grss_feed_item_get_id">
        <doc xml:space="preserve">Retrieves the ID assigned to the @item. If no ID was set with
grss_feed_item_set_id() this returns the same of grss_feed_item_get_source().
Pay attention to the fact this library do not check uniqueness of assigned
IDs.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">ID of the item.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">#GrssFeedItem from which retrieve the ID.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_parent" c:identifier="grss_feed_item_get_parent">
        <doc xml:space="preserve">Retrieves the feed from which the item belongs.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the parent feed, as set in grss_feed_item_new().</doc>
          <type name="FeedChannel" c:type="GrssFeedChannel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedItem.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_publish_time"
              c:identifier="grss_feed_item_get_publish_time">
        <doc xml:space="preserve">Retrieves the publish time of the item. By default this value is the
current timestamp assigned when creating the #GrssFeedItem, and may be
changed with grss_feed_item_set_publish_time().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">publish time of @item.</doc>
          <type name="glong" c:type="time_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedItem.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_real_source"
              c:identifier="grss_feed_item_get_real_source">
        <doc xml:space="preserve">Retrieves references to the real source of @item.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedItem.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </instance-parameter>
          <parameter name="realsource" transfer-ownership="none">
            <doc xml:space="preserve">will be assigned to the URL of the real source, or %NULL.</doc>
            <type name="utf8" c:type="const gchar**"/>
          </parameter>
          <parameter name="title" transfer-ownership="none">
            <doc xml:space="preserve">will be assigned to the title of the real source, or %NULL.</doc>
            <type name="utf8" c:type="const gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_related" c:identifier="grss_feed_item_get_related">
        <doc xml:space="preserve">Retrieves indication about posts related to @item.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">related posts, or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedItem.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_source" c:identifier="grss_feed_item_get_source">
        <doc xml:space="preserve">Retrieves the URL where the @item can be found.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">URL of the item, or %NULL.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedItem.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title" c:identifier="grss_feed_item_get_title">
        <doc xml:space="preserve">Retrieves the title assigned to @item.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">title of the element.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedItem.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_author" c:identifier="grss_feed_item_set_author">
        <doc xml:space="preserve">To assign an author to the @item.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedItem.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </instance-parameter>
          <parameter name="author" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssPerson.</doc>
            <type name="Person" c:type="GrssPerson*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_comments_url"
              c:identifier="grss_feed_item_set_comments_url">
        <doc xml:space="preserve">To assign the URL where to fetch comments for the item.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @url is a valid URL, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedItem.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </instance-parameter>
          <parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve">URL where to retrieve comments to the item.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_copyright" c:identifier="grss_feed_item_set_copyright">
        <doc xml:space="preserve">To set a copyright reference to @item.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedItem.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </instance-parameter>
          <parameter name="copyright" transfer-ownership="none">
            <doc xml:space="preserve">copyright declaration for the item.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_description"
              c:identifier="grss_feed_item_set_description">
        <doc xml:space="preserve">To set the description of @item. Usually "description" means his content.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedItem.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </instance-parameter>
          <parameter name="description" transfer-ownership="none">
            <doc xml:space="preserve">content of the item.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_geo_point" c:identifier="grss_feed_item_set_geo_point">
        <doc xml:space="preserve">To assign geographic context to the @item.
Passing -1 as @latitude or @longitude, the relative value is untouched in
the object. This is to easy assignment of coordinates in more than a
single step. If both are -1, nothing happens.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedItem.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </instance-parameter>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:space="preserve">latitude of the point, or -1 to leave the previous one.</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:space="preserve">longitude of the point, or -1 to leave the previous one.</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_id" c:identifier="grss_feed_item_set_id">
        <doc xml:space="preserve">To set the ID of the @item. This parameter has not a particular format: it
is just a string used to identify in unique way the item.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedItem.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">the new ID to set.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_publish_time"
              c:identifier="grss_feed_item_set_publish_time">
        <doc xml:space="preserve">To set the publish time of the item.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedItem.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </instance-parameter>
          <parameter name="publish" transfer-ownership="none">
            <doc xml:space="preserve">publishing timestamp of the item.</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_real_source"
              c:identifier="grss_feed_item_set_real_source">
        <doc xml:space="preserve">To set an alternative real source for @item. This parameter is used by web
aggregators to explicit the origin of a content reproduced in them.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @realsource is a valid URL, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedItem.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </instance-parameter>
          <parameter name="realsource" transfer-ownership="none">
            <doc xml:space="preserve">URL of the real source for the item.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="title" transfer-ownership="none">
            <doc xml:space="preserve">title of the real source.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_related" c:identifier="grss_feed_item_set_related">
        <doc xml:space="preserve">To set reference to a post related to @item.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedItem.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </instance-parameter>
          <parameter name="related" transfer-ownership="none">
            <doc xml:space="preserve">reference to a related post.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_source" c:identifier="grss_feed_item_set_source">
        <doc xml:space="preserve">To set the source of the @item.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @source is a valid URL, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedItem.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </instance-parameter>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve">URL of the item.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_title" c:identifier="grss_feed_item_set_title">
        <doc xml:space="preserve">To set a title to the @item.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedItem.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </instance-parameter>
          <parameter name="title" transfer-ownership="none">
            <doc xml:space="preserve">title of the item.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="FeedItemPrivate" c:type="GrssFeedItemPrivate*"/>
      </field>
    </class>
    <record name="FeedItemClass"
            c:type="GrssFeedItemClass"
            glib:is-gtype-struct-for="FeedItem">
      <field name="parent">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="FeedItemPrivate" c:type="GrssFeedItemPrivate" disguised="1">
    </record>
    <class name="FeedParser"
           c:symbol-prefix="feed_parser"
           c:type="GrssFeedParser"
           parent="GObject.Object"
           glib:type-name="GrssFeedParser"
           glib:get-type="grss_feed_parser_get_type"
           glib:type-struct="FeedParserClass">
      <constructor name="new" c:identifier="grss_feed_parser_new">
        <doc xml:space="preserve">Allocates a new #GrssFeedParser.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GrssFeedParser.</doc>
          <type name="FeedParser" c:type="GrssFeedParser*"/>
        </return-value>
      </constructor>
      <method name="parse" c:identifier="grss_feed_parser_parse" throws="1">
        <doc xml:space="preserve">Parses the given XML @doc, belonging to the given @feed, to obtain a list
of #GrssFeedItem.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a list of
#GrssFeedItem, to be freed when no longer in use, or NULL if anerror occours
and @error is set.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="FeedItem"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedParser.</doc>
            <type name="FeedParser" c:type="GrssFeedParser*"/>
          </instance-parameter>
          <parameter name="feed" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel to be parsed.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </parameter>
          <parameter name="doc" transfer-ownership="none">
            <doc xml:space="preserve">XML document extracted from the contents of the feed, which must
      already been fetched.</doc>
            <type name="libxml2.DocPtr" c:type="xmlDocPtr"/>
          </parameter>
        </parameters>
      </method>
      <method name="parse_channel"
              c:identifier="grss_feed_parser_parse_channel"
              throws="1">
        <doc xml:space="preserve">Parses the given XML @doc, belonging to the given @feed.

Similar to grss_feed_parser_parse(), but grss_feed_parser_parse_channel()
skips parsing of items into the document.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedParser.</doc>
            <type name="FeedParser" c:type="GrssFeedParser*"/>
          </instance-parameter>
          <parameter name="feed" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedChannel to be parsed.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </parameter>
          <parameter name="doc" transfer-ownership="none">
            <doc xml:space="preserve">XML document extracted from the contents of the feed, which must
      already been fetched.</doc>
            <type name="libxml2.DocPtr" c:type="xmlDocPtr"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="FeedParserPrivate" c:type="GrssFeedParserPrivate*"/>
      </field>
    </class>
    <record name="FeedParserClass"
            c:type="GrssFeedParserClass"
            glib:is-gtype-struct-for="FeedParser">
      <field name="parent">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="FeedParserPrivate"
            c:type="GrssFeedParserPrivate"
            disguised="1">
    </record>
    <class name="FeedRssFormatter"
           c:symbol-prefix="feed_rss_formatter"
           c:type="GrssFeedRssFormatter"
           parent="FeedFormatter"
           glib:type-name="GrssFeedRssFormatter"
           glib:get-type="grss_feed_rss_formatter_get_type"
           glib:type-struct="FeedRssFormatterClass">
      <constructor name="new" c:identifier="grss_feed_rss_formatter_new">
        <return-value transfer-ownership="full">
          <type name="FeedRssFormatter" c:type="GrssFeedRssFormatter*"/>
        </return-value>
      </constructor>
      <field name="parent">
        <type name="FeedFormatter" c:type="GrssFeedFormatter"/>
      </field>
    </class>
    <record name="FeedRssFormatterClass"
            c:type="GrssFeedRssFormatterClass"
            glib:is-gtype-struct-for="FeedRssFormatter">
      <field name="parent">
        <type name="FeedFormatterClass" c:type="GrssFeedFormatterClass"/>
      </field>
    </record>
    <record name="FeedRssFormatterPrivate"
            c:type="GrssFeedRssFormatterPrivate"
            disguised="1">
    </record>
    <class name="FeedsGroup"
           c:symbol-prefix="feeds_group"
           c:type="GrssFeedsGroup"
           parent="GObject.Object"
           glib:type-name="GrssFeedsGroup"
           glib:get-type="grss_feeds_group_get_type"
           glib:type-struct="FeedsGroupClass">
      <constructor name="new" c:identifier="grss_feeds_group_new">
        <doc xml:space="preserve">Allocates a new #GrssFeedsGroup.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GrssFeedsGroup.</doc>
          <type name="FeedsGroup" c:type="GrssFeedsGroup*"/>
        </return-value>
      </constructor>
      <method name="export_file"
              c:identifier="grss_feeds_group_export_file"
              throws="1">
        <doc xml:space="preserve">Creates a new file with the list of @channels rappresented in the required
@format. It a file already exists at the @uri location, it is overwritten.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the file is created correctly, or %FALSE if an error
occours and @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsGroup.</doc>
            <type name="FeedsGroup" c:type="GrssFeedsGroup*"/>
          </instance-parameter>
          <parameter name="channels" transfer-ownership="none">
            <doc xml:space="preserve">list of #GrssFeedChannels.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="FeedChannel"/>
            </type>
          </parameter>
          <parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve">string rappresenting the desired export format, as returnes by
         grss_feeds_group_get_formats().</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve">URI of the file to write.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_formats" c:identifier="grss_feeds_group_get_formats">
        <doc xml:space="preserve">Returns the list of supported file formats.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">a list of
constant strings with names of supported formats. The list must be
freed when no longer used</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsGroup.</doc>
            <type name="FeedsGroup" c:type="GrssFeedsGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="parse_file"
              c:identifier="grss_feeds_group_parse_file"
              throws="1">
        <doc xml:space="preserve">Parses the given file to obtain list of listed feeds.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a list
of #GrssFeedChannels, or NULL if an error occours and @error is
set.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="FeedChannel"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsGroup.</doc>
            <type name="FeedsGroup" c:type="GrssFeedsGroup*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve">path of the file to parse.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="FeedsGroupPrivate" c:type="GrssFeedsGroupPrivate*"/>
      </field>
    </class>
    <record name="FeedsGroupClass"
            c:type="GrssFeedsGroupClass"
            glib:is-gtype-struct-for="FeedsGroup">
      <field name="parent">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="FeedsGroupPrivate"
            c:type="GrssFeedsGroupPrivate"
            disguised="1">
    </record>
    <class name="FeedsPool"
           c:symbol-prefix="feeds_pool"
           c:type="GrssFeedsPool"
           parent="GObject.Object"
           glib:type-name="GrssFeedsPool"
           glib:get-type="grss_feeds_pool_get_type"
           glib:type-struct="FeedsPoolClass">
      <constructor name="new" c:identifier="grss_feeds_pool_new">
        <doc xml:space="preserve">Allocates a new #GrssFeedsPool.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GrssFeedsPool.</doc>
          <type name="FeedsPool" c:type="GrssFeedsPool*"/>
        </return-value>
      </constructor>
      <virtual-method name="feed_fetching">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <type name="FeedsPool" c:type="GrssFeedsPool*"/>
          </instance-parameter>
          <parameter name="feed" transfer-ownership="none">
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="feed_ready" introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <type name="FeedsPool" c:type="GrssFeedsPool*"/>
          </instance-parameter>
          <parameter name="feed" transfer-ownership="none">
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </parameter>
          <parameter name="items" transfer-ownership="none">
            <type name="GLib.List" c:type="GList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_listened" c:identifier="grss_feeds_pool_get_listened">
        <doc xml:space="preserve">Returns the list of feeds currently managed by the @pool. Please consider
this function has to build the list that returns, and of course this is a
time and resources consuming task: if you only need to know how many feeds
are currently handled, check grss_feeds_pool_get_listened_num().</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">a
list of #GrssFeedChannel, to be freed with g_list_free() when no longer in
use. Do not modify elements found in this list.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="FeedChannel"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsPool.</doc>
            <type name="FeedsPool" c:type="GrssFeedsPool*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_listened_num"
              c:identifier="grss_feeds_pool_get_listened_num">
        <doc xml:space="preserve">Returns number of feeds under the @pool control, as provided by
grss_feeds_pool_listen(). To get the complete list of those feeds, check
grss_feeds_pool_get_listened().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">number of feeds currently managed by the #GrssFeedsPool.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsPool</doc>
            <type name="FeedsPool" c:type="GrssFeedsPool*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_session" c:identifier="grss_feeds_pool_get_session">
        <doc xml:space="preserve">To access the internal #SoupSession used by the @pool to fetch items.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">instance of #SoupSession. Do not free it.</doc>
          <type name="Soup.Session" c:type="SoupSession*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsPool.</doc>
            <type name="FeedsPool" c:type="GrssFeedsPool*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="listen" c:identifier="grss_feeds_pool_listen">
        <doc xml:space="preserve">To set the list of feeds to be managed by the pool. The previous list, if
any, is invalidated. After invokation to the function, grss_feeds_pool_switch()
must be call to run the auto-fetching (always, also if previous state was
"running").
The list in @feeds can be freed after calling this; linked #GrssFeedChannel
are g_object_ref'd here.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsPool.</doc>
            <type name="FeedsPool" c:type="GrssFeedsPool*"/>
          </instance-parameter>
          <parameter name="feeds" transfer-ownership="none">
            <doc xml:space="preserve">a list of #GrssFeedChannel.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="FeedChannel"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="switch" c:identifier="grss_feeds_pool_switch">
        <doc xml:space="preserve">Permits to pause or resume the @pool fetching feeds. If @run is %TRUE, the
@pool starts immediately.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pool" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsPool.</doc>
            <type name="FeedsPool" c:type="GrssFeedsPool*"/>
          </instance-parameter>
          <parameter name="run" transfer-ownership="none">
            <doc xml:space="preserve">%TRUE to run the pool, %FALSE to pause it.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="FeedsPoolPrivate" c:type="GrssFeedsPoolPrivate*"/>
      </field>
      <glib:signal name="feed-fail" when="last">
        <doc xml:space="preserve">Emitted when an error raises in fetching or parsing a #GrssFeedChannel
assigned to the @pool.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="feed" transfer-ownership="none">
            <doc xml:space="preserve">the #GrssFeedChannel which failed to fetch or parse.</doc>
            <type name="GObject.Object"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="feed-fetching" when="last">
        <doc xml:space="preserve">Emitted when the @pool starts fetching a new #GrssFeedChannel. To be
used to know the internal status of the component.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="feed" transfer-ownership="none">
            <doc xml:space="preserve">the #GrssFeedChannel which is going to be fetched.</doc>
            <type name="GObject.Object"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="feed-ready" when="last">
        <doc xml:space="preserve">Emitted when a #GrssFeedChannel assigned to the @pool has been fetched
and parsed. All parsed items are exposed in the array, with no
regards about previously existing elements. @items may be NULL, if
an error occurred while fetching and/or parsing. List of @items
is freed, and his elements are unref'd, when signal ends.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="feed" transfer-ownership="none">
            <doc xml:space="preserve">the #GrssFeedChannel which has been fetched and parsed.</doc>
            <type name="GObject.Object"/>
          </parameter>
          <parameter name="items" transfer-ownership="none">
            <doc xml:space="preserve">list of #GrssFeedItem obtained parsing the feed.</doc>
            <type name="GLib.List" c:type="gpointer">
              <type name="FeedItem"/>
            </type>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="FeedsPoolClass"
            c:type="GrssFeedsPoolClass"
            glib:is-gtype-struct-for="FeedsPool">
      <field name="parent">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="feed_fetching">
        <callback name="feed_fetching">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="pool" transfer-ownership="none">
              <type name="FeedsPool" c:type="GrssFeedsPool*"/>
            </parameter>
            <parameter name="feed" transfer-ownership="none">
              <type name="FeedChannel" c:type="GrssFeedChannel*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="feed_ready" introspectable="0">
        <callback name="feed_ready" introspectable="0">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="pool" transfer-ownership="none">
              <type name="FeedsPool" c:type="GrssFeedsPool*"/>
            </parameter>
            <parameter name="feed" transfer-ownership="none">
              <type name="FeedChannel" c:type="GrssFeedChannel*"/>
            </parameter>
            <parameter name="items" transfer-ownership="none">
              <type name="GLib.List" c:type="GList*">
                <type name="gpointer" c:type="gpointer"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="FeedsPoolPrivate"
            c:type="GrssFeedsPoolPrivate"
            disguised="1">
    </record>
    <class name="FeedsPublisher"
           c:symbol-prefix="feeds_publisher"
           c:type="GrssFeedsPublisher"
           parent="GObject.Object"
           glib:type-name="GrssFeedsPublisher"
           glib:get-type="grss_feeds_publisher_get_type"
           glib:type-struct="FeedsPublisherClass">
      <constructor name="new" c:identifier="grss_feeds_publisher_new">
        <doc xml:space="preserve">Allocates a new #GrssFeedsPublisher.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GrssFeedsPublisher.</doc>
          <type name="FeedsPublisher" c:type="GrssFeedsPublisher*"/>
        </return-value>
      </constructor>
      <virtual-method name="delete_subscription">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pub" transfer-ownership="none">
            <type name="FeedsPublisher" c:type="GrssFeedsPublisher*"/>
          </instance-parameter>
          <parameter name="topic" transfer-ownership="none">
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="new_subscription">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pub" transfer-ownership="none">
            <type name="FeedsPublisher" c:type="GrssFeedsPublisher*"/>
          </instance-parameter>
          <parameter name="topic" transfer-ownership="none">
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="format_content"
              c:identifier="grss_feeds_publisher_format_content"
              deprecated="1"
              deprecated-version="0.6"
              throws="1">
        <doc xml:space="preserve">Format a #GrssFeedChannel in Atom and returns the resulting string.</doc>
        <doc-deprecated xml:space="preserve">Use grss_feed_formatter_format() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly allocated string holding the formatted feed, to be
freed when no longer in use.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pub" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsPublisher.</doc>
            <type name="FeedsPublisher" c:type="GrssFeedsPublisher*"/>
          </instance-parameter>
          <parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">the #GrssFeedChannel to dump in the file.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </parameter>
          <parameter name="items" transfer-ownership="none">
            <doc xml:space="preserve">list of #GrssFeedItems to be added in
        the feed.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="FeedItem"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="hub_set_port"
              c:identifier="grss_feeds_publisher_hub_set_port">
        <doc xml:space="preserve">To customize the port opened by the local server to deliver feeds and
catch incoming subscriptions. By default this is 80. Changing the port
while the hub is running imply restart the local server.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pub" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsPublisher.</doc>
            <type name="FeedsPublisher" c:type="GrssFeedsPublisher*"/>
          </instance-parameter>
          <parameter name="port" transfer-ownership="none">
            <doc xml:space="preserve">new listening port for the server.</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="hub_set_topics"
              c:identifier="grss_feeds_publisher_hub_set_topics">
        <doc xml:space="preserve">To define a list of valid "topics" for which the #GrssFeedsPublisher will
deliver contents. Sources of those channels, as retrieved by
grss_feed_channel_get_source(), are accepted as "hub.topic" parameter in
PubSubHubbub registration requests from remote subscribers.
Pay attention to the fact subscriptions requests for different topic are
now rejected.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pub" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsPublisher.</doc>
            <type name="FeedsPublisher" c:type="GrssFeedsPublisher*"/>
          </instance-parameter>
          <parameter name="topics" transfer-ownership="none">
            <doc xml:space="preserve">a list of #GrssFeedChannels.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="FeedChannel"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="hub_switch" c:identifier="grss_feeds_publisher_hub_switch">
        <doc xml:space="preserve">Permits to start and stop the webserver implemented by this object.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pub" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsPublisher.</doc>
            <type name="FeedsPublisher" c:type="GrssFeedsPublisher*"/>
          </instance-parameter>
          <parameter name="run" transfer-ownership="none">
            <doc xml:space="preserve">%TRUE to run the local server, %FALSE to stop it.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="publish_file"
              c:identifier="grss_feeds_publisher_publish_file"
              throws="1">
        <doc xml:space="preserve">Dump the given @channel in an Atom formatted file in @path. If the local
PubSubHubbub hub has been activated (with grss_feeds_publisher_hub_switch())
notifies remote subscribers about the new items which has been added since
previous invocation of this function for the same #GrssFeedChannel.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the file is successfully written, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pub" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsPublisher.</doc>
            <type name="FeedsPublisher" c:type="GrssFeedsPublisher*"/>
          </instance-parameter>
          <parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">the #GrssFeedChannel to dump in the file.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </parameter>
          <parameter name="items" transfer-ownership="none">
            <doc xml:space="preserve">list of #GrssFeedItems to be added in
        the feed.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="FeedItem"/>
            </type>
          </parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve">URI of the file to write. The full path must exists.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="publish_web"
              c:identifier="grss_feeds_publisher_publish_web"
              throws="1">
        <doc xml:space="preserve">If the local web server has been executed (with
grss_feeds_publisher_hub_switch()) this function exposes the given @channel
as an Atom formatted file avalable to http://[LOCAL_IP:DEFINED_PORT]/@id .</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the file is successfully written, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pub" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsPublisher.</doc>
            <type name="FeedsPublisher" c:type="GrssFeedsPublisher*"/>
          </instance-parameter>
          <parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">the #GrssFeedChannel to dump in the file.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </parameter>
          <parameter name="items" transfer-ownership="none">
            <doc xml:space="preserve">list of #GrssFeedItems to be added in
        the feed.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="FeedItem"/>
            </type>
          </parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">name used in the external URL of the feed.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="FeedsPublisherPrivate"
              c:type="GrssFeedsPublisherPrivate*"/>
      </field>
      <glib:signal name="delete-subscription" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="FeedChannel"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="new-subscription" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="FeedChannel"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="FeedsPublisherClass"
            c:type="GrssFeedsPublisherClass"
            glib:is-gtype-struct-for="FeedsPublisher">
      <field name="parent">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="new_subscription">
        <callback name="new_subscription">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="pub" transfer-ownership="none">
              <type name="FeedsPublisher" c:type="GrssFeedsPublisher*"/>
            </parameter>
            <parameter name="topic" transfer-ownership="none">
              <type name="FeedChannel" c:type="GrssFeedChannel*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="delete_subscription">
        <callback name="delete_subscription">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="pub" transfer-ownership="none">
              <type name="FeedsPublisher" c:type="GrssFeedsPublisher*"/>
            </parameter>
            <parameter name="topic" transfer-ownership="none">
              <type name="FeedChannel" c:type="GrssFeedChannel*"/>
            </parameter>
            <parameter name="callback" transfer-ownership="none">
              <type name="utf8" c:type="gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="FeedsPublisherPrivate"
            c:type="GrssFeedsPublisherPrivate"
            disguised="1">
    </record>
    <class name="FeedsStore"
           c:symbol-prefix="feeds_store"
           c:type="GrssFeedsStore"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="GrssFeedsStore"
           glib:get-type="grss_feeds_store_get_type"
           glib:type-struct="FeedsStoreClass">
      <virtual-method name="add_item_in_channel" invoker="add_item_in_channel">
        <doc xml:space="preserve">To save a new #GrssFeedItem into the @store. It performs a check to grant
@item is not already saved.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsStore.</doc>
            <type name="FeedsStore" c:type="GrssFeedsStore*"/>
          </instance-parameter>
          <parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">parent feed for the new item.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </parameter>
          <parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">new item to permanently save.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_channels" invoker="get_channels">
        <doc xml:space="preserve">To retrieve list of feeds permanently saved into the store.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">list
of #GrssFeedChannel found in the @store. Do not modify or free it.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="FeedChannel"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsStore.</doc>
            <type name="FeedsStore" c:type="GrssFeedsStore*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_items_by_channel"
                      invoker="get_items_by_channel">
        <doc xml:space="preserve">To retrieve list of items saved into the store, assigned to the given
@channel.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">list of
#GrssFeedItem found in the @store. Do not modify or free it.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="FeedItem"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsStore.</doc>
            <type name="FeedsStore" c:type="GrssFeedsStore*"/>
          </instance-parameter>
          <parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">parent feed containing required items.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="has_item" invoker="has_item">
        <doc xml:space="preserve">To retrieve an item into a feed, given his unique ID.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the specified item exists, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsStore.</doc>
            <type name="FeedsStore" c:type="GrssFeedsStore*"/>
          </instance-parameter>
          <parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">parent feed containing required item.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">unique ID to look for.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_item_in_channel"
              c:identifier="grss_feeds_store_add_item_in_channel">
        <doc xml:space="preserve">To save a new #GrssFeedItem into the @store. It performs a check to grant
@item is not already saved.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsStore.</doc>
            <type name="FeedsStore" c:type="GrssFeedsStore*"/>
          </instance-parameter>
          <parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">parent feed for the new item.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </parameter>
          <parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">new item to permanently save.</doc>
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_channels" c:identifier="grss_feeds_store_get_channels">
        <doc xml:space="preserve">To retrieve list of feeds permanently saved into the store.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">list
of #GrssFeedChannel found in the @store. Do not modify or free it.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="FeedChannel"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsStore.</doc>
            <type name="FeedsStore" c:type="GrssFeedsStore*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_items_by_channel"
              c:identifier="grss_feeds_store_get_items_by_channel">
        <doc xml:space="preserve">To retrieve list of items saved into the store, assigned to the given
@channel.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">list of
#GrssFeedItem found in the @store. Do not modify or free it.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="FeedItem"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsStore.</doc>
            <type name="FeedsStore" c:type="GrssFeedsStore*"/>
          </instance-parameter>
          <parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">parent feed containing required items.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_item" c:identifier="grss_feeds_store_has_item">
        <doc xml:space="preserve">To retrieve an item into a feed, given his unique ID.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the specified item exists, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsStore.</doc>
            <type name="FeedsStore" c:type="GrssFeedsStore*"/>
          </instance-parameter>
          <parameter name="channel" transfer-ownership="none">
            <doc xml:space="preserve">parent feed containing required item.</doc>
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">unique ID to look for.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="switch" c:identifier="grss_feeds_store_switch">
        <doc xml:space="preserve">This is to permit the @store to auto-update itself: it creates an internal
#GrssFeedsPool and listens for his signals, so to implement the whole loop
fetch-parse-save trasparently.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="store" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsStore.</doc>
            <type name="FeedsStore" c:type="GrssFeedsStore*"/>
          </instance-parameter>
          <parameter name="run" transfer-ownership="none">
            <doc xml:space="preserve">%TRUE to run the @store, %FALSE to stop.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="FeedsStorePrivate" c:type="GrssFeedsStorePrivate*"/>
      </field>
    </class>
    <record name="FeedsStoreClass"
            c:type="GrssFeedsStoreClass"
            glib:is-gtype-struct-for="FeedsStore">
      <field name="parent">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="get_channels">
        <callback name="get_channels">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">list
of #GrssFeedChannel found in the @store. Do not modify or free it.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="FeedChannel"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="store" transfer-ownership="none">
              <doc xml:space="preserve">a #GrssFeedsStore.</doc>
              <type name="FeedsStore" c:type="GrssFeedsStore*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_items_by_channel">
        <callback name="get_items_by_channel">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">list of
#GrssFeedItem found in the @store. Do not modify or free it.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="FeedItem"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="store" transfer-ownership="none">
              <doc xml:space="preserve">a #GrssFeedsStore.</doc>
              <type name="FeedsStore" c:type="GrssFeedsStore*"/>
            </parameter>
            <parameter name="channel" transfer-ownership="none">
              <doc xml:space="preserve">parent feed containing required items.</doc>
              <type name="FeedChannel" c:type="GrssFeedChannel*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="has_item">
        <callback name="has_item">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">%TRUE if the specified item exists, %FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="store" transfer-ownership="none">
              <doc xml:space="preserve">a #GrssFeedsStore.</doc>
              <type name="FeedsStore" c:type="GrssFeedsStore*"/>
            </parameter>
            <parameter name="channel" transfer-ownership="none">
              <doc xml:space="preserve">parent feed containing required item.</doc>
              <type name="FeedChannel" c:type="GrssFeedChannel*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <doc xml:space="preserve">unique ID to look for.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_item_in_channel">
        <callback name="add_item_in_channel">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="store" transfer-ownership="none">
              <doc xml:space="preserve">a #GrssFeedsStore.</doc>
              <type name="FeedsStore" c:type="GrssFeedsStore*"/>
            </parameter>
            <parameter name="channel" transfer-ownership="none">
              <doc xml:space="preserve">parent feed for the new item.</doc>
              <type name="FeedChannel" c:type="GrssFeedChannel*"/>
            </parameter>
            <parameter name="item" transfer-ownership="none">
              <doc xml:space="preserve">new item to permanently save.</doc>
              <type name="FeedItem" c:type="GrssFeedItem*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="FeedsStorePrivate"
            c:type="GrssFeedsStorePrivate"
            disguised="1">
    </record>
    <class name="FeedsSubscriber"
           c:symbol-prefix="feeds_subscriber"
           c:type="GrssFeedsSubscriber"
           parent="GObject.Object"
           glib:type-name="GrssFeedsSubscriber"
           glib:get-type="grss_feeds_subscriber_get_type"
           glib:type-struct="FeedsSubscriberClass">
      <constructor name="new" c:identifier="grss_feeds_subscriber_new">
        <doc xml:space="preserve">Allocates a new #GrssFeedsSubscriber.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GrssFeedsSubscriber.</doc>
          <type name="FeedsSubscriber" c:type="GrssFeedsSubscriber*"/>
        </return-value>
      </constructor>
      <virtual-method name="notification_received">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="sub" transfer-ownership="none">
            <type name="FeedsSubscriber" c:type="GrssFeedsSubscriber*"/>
          </instance-parameter>
          <parameter name="feed" transfer-ownership="none">
            <type name="FeedChannel" c:type="GrssFeedChannel*"/>
          </parameter>
          <parameter name="item" transfer-ownership="none">
            <type name="FeedItem" c:type="GrssFeedItem*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_address"
              c:identifier="grss_feeds_subscriber_get_address">
        <doc xml:space="preserve">This function returns the Internet address where @sub is listening for
external events. It is often required by #GrssFeedsSubscriberHandlers while
subscribing contents to specify the local endpoint for communications.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #GInetAddress used by @sub, or
%NULL if the #GrssFeedsSubscriber is switched off.</doc>
          <type name="Gio.InetAddress" c:type="GInetAddress*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sub" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsSubscriber.</doc>
            <type name="FeedsSubscriber" c:type="GrssFeedsSubscriber*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_listened"
              c:identifier="grss_feeds_subscriber_get_listened">
        <doc xml:space="preserve">Returns the list of feeds currently managed by @sub.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">a
list of #GrssFeedChannel, to be freed with g_list_free() when no
longer in use. Do not modify elements found in this list.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="FeedChannel"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="sub" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsSubscriber.</doc>
            <type name="FeedsSubscriber" c:type="GrssFeedsSubscriber*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_port" c:identifier="grss_feeds_subscriber_get_port">
        <doc xml:space="preserve">This function returns the Internet port where @sub is listening for
external events. It is often required by #GrssFeedsSubscriberHandlers while
subscribing contents to specify the local endpoint for communications.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the port of the socket locally opened by @sub.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="sub" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsSubscriber.</doc>
            <type name="FeedsSubscriber" c:type="GrssFeedsSubscriber*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_session"
              c:identifier="grss_feeds_subscriber_get_session">
        <doc xml:space="preserve">To obtain the internal #SoupSession of a #GrssFeedsSubscriber, so to re-use
it in #GrssFeedsSubscriberHandlers or similar tasks.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #SoupSession used by the provided
#GrssFeedsSubscriber.</doc>
          <type name="Soup.Session" c:type="SoupSession*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sub" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsSubscriber.</doc>
            <type name="FeedsSubscriber" c:type="GrssFeedsSubscriber*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="listen" c:identifier="grss_feeds_subscriber_listen">
        <doc xml:space="preserve">To set the list of feeds to be managed by @sub. The previous list, if any,
is invalidated. After invokation to the function, grss_feeds_subscriber_switch()
must be call to run the subscription.
The list in @feeds can be freed after calling this; linked #GrssFeedChannel
are g_object_ref'd here.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if all #GrssFeedChannels involved in @feeds are valid
and can be listened with one of the implemented procotols, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="sub" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsSubscriber.</doc>
            <type name="FeedsSubscriber" c:type="GrssFeedsSubscriber*"/>
          </instance-parameter>
          <parameter name="feeds" transfer-ownership="none">
            <doc xml:space="preserve">a list of #GrssFeedChannel.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="FeedChannel"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_port" c:identifier="grss_feeds_subscriber_set_port">
        <doc xml:space="preserve">To customize the port opened by the local server to catch incoming
publishers' events. By default this is 8444. Changing the port while the
subscriber is running imply restart the local server.
Pay attention to the fact many publishers' implementations accept only
certain ports.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="sub" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsSubscriber.</doc>
            <type name="FeedsSubscriber" c:type="GrssFeedsSubscriber*"/>
          </instance-parameter>
          <parameter name="port" transfer-ownership="none">
            <doc xml:space="preserve">new listening port for the server.</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="switch" c:identifier="grss_feeds_subscriber_switch">
        <doc xml:space="preserve">Permits to pause or resume @sub listening for events.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="sub" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssFeedsSubscriber.</doc>
            <type name="FeedsSubscriber" c:type="GrssFeedsSubscriber*"/>
          </instance-parameter>
          <parameter name="run" transfer-ownership="none">
            <doc xml:space="preserve">%TRUE to run the subscriber, %FALSE to pause it.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="FeedsSubscriberPrivate"
              c:type="GrssFeedsSubscriberPrivate*"/>
      </field>
      <glib:signal name="notification-received" when="last">
        <doc xml:space="preserve">Emitted when a notification has been received and parsed. The
@item is cached and unref'd when the #GrssFeedsSubscriber is
destroyed or a new set of feeds is provided.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="feed" transfer-ownership="none">
            <doc xml:space="preserve">the #GrssFeedChannel which has been updated.</doc>
            <type name="GObject.Object"/>
          </parameter>
          <parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">the #GrssFeedItem received.</doc>
            <type name="GObject.Object"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="FeedsSubscriberClass"
            c:type="GrssFeedsSubscriberClass"
            glib:is-gtype-struct-for="FeedsSubscriber">
      <field name="parent">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="notification_received">
        <callback name="notification_received">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="sub" transfer-ownership="none">
              <type name="FeedsSubscriber" c:type="GrssFeedsSubscriber*"/>
            </parameter>
            <parameter name="feed" transfer-ownership="none">
              <type name="FeedChannel" c:type="GrssFeedChannel*"/>
            </parameter>
            <parameter name="item" transfer-ownership="none">
              <type name="FeedItem" c:type="GrssFeedItem*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="FeedsSubscriberPrivate"
            c:type="GrssFeedsSubscriberPrivate"
            disguised="1">
    </record>
    <record name="Person"
            c:type="GrssPerson"
            version="0.7"
            glib:type-name="GrssPerson"
            glib:get-type="grss_person_get_type"
            c:symbol-prefix="person">
      <doc xml:space="preserve">`GrssPerson` is an opaque structure whose members
cannot be accessed directly.</doc>
      <constructor name="new" c:identifier="grss_person_new" version="0.7">
        <doc xml:space="preserve">Creates a new #GrssPerson.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GrssPerson, or %NULL</doc>
          <type name="Person" c:type="GrssPerson*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">the name of the person</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="email"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the email of the person, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="uri"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the homepage (uri) of the person, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_email"
              c:identifier="grss_person_get_email"
              version="0.7">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the email of person. The returned
         string is owned by #GrssPerson and it should
         not be modified or freed.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="person" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssPerson</doc>
            <type name="Person" c:type="GrssPerson*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name"
              c:identifier="grss_person_get_name"
              version="0.7">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the name of person. The returned
         string is owned by #GrssPerson and it should
         not be modified or freed.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="person" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssPerson</doc>
            <type name="Person" c:type="GrssPerson*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uri" c:identifier="grss_person_get_uri" version="0.7">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the website (uri) of person. The returned
         string is owned by #GrssPerson and it should
         not be modified or freed.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="person" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssPerson</doc>
            <type name="Person" c:type="GrssPerson*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="grss_person_ref" version="0.7">
        <doc xml:space="preserve">Atomically increments the reference count of @person by one.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the #GrssPerson with the reference count increased</doc>
          <type name="Person" c:type="GrssPerson*"/>
        </return-value>
        <parameters>
          <instance-parameter name="person" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssPerson</doc>
            <type name="Person" c:type="GrssPerson*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="grss_person_unref" version="0.7">
        <doc xml:space="preserve">Atomically decrements the reference count of @person by one.

When the reference count reaches zero, the resources allocated by
@person are freed</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="person" transfer-ownership="none">
            <doc xml:space="preserve">a #GrssPerson</doc>
            <type name="Person" c:type="GrssPerson*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
  </namespace>
</repository>
