rendered paste body<?xml version="1.0"?>
<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="GLib" version="2.0"/>
<include name="Gee" version="1.0"/>
<package name="folks"/>
<c:include name="config.h"/>
<c:include name="folks.h"/>
<namespace name="Folks" version="1.0" c:prefix="Folks">
<enumeration name="TrustLevel" c:type="FolksTrustLevel" glib:type-name="FolksTrustLevel" glib:get-type="folks_trust_level_get_type">
<member name="none" c:identifier="FOLKS_TRUST_LEVEL_NONE" value="0"/>
<member name="personas" c:identifier="FOLKS_TRUST_LEVEL_PERSONAS" value="1"/>
</enumeration>
<enumeration name="PersonaStoreTrust" c:type="FolksPersonaStoreTrust" glib:type-name="FolksPersonaStoreTrust" glib:get-type="folks_persona_store_trust_get_type">
<member name="none" c:identifier="FOLKS_PERSONA_STORE_TRUST_NONE" value="0"/>
<member name="partial" c:identifier="FOLKS_PERSONA_STORE_TRUST_PARTIAL" value="1"/>
<member name="full" c:identifier="FOLKS_PERSONA_STORE_TRUST_FULL" value="2"/>
</enumeration>
<enumeration name="PresenceType" c:type="FolksPresenceType" glib:type-name="FolksPresenceType" glib:get-type="folks_presence_type_get_type">
<member name="unset" c:identifier="FOLKS_PRESENCE_TYPE_UNSET" value="0"/>
<member name="offline" c:identifier="FOLKS_PRESENCE_TYPE_OFFLINE" value="1"/>
<member name="available" c:identifier="FOLKS_PRESENCE_TYPE_AVAILABLE" value="2"/>
<member name="away" c:identifier="FOLKS_PRESENCE_TYPE_AWAY" value="3"/>
<member name="extended_away" c:identifier="FOLKS_PRESENCE_TYPE_EXTENDED_AWAY" value="4"/>
<member name="hidden" c:identifier="FOLKS_PRESENCE_TYPE_HIDDEN" value="5"/>
<member name="busy" c:identifier="FOLKS_PRESENCE_TYPE_BUSY" value="6"/>
<member name="unknown" c:identifier="FOLKS_PRESENCE_TYPE_UNKNOWN" value="7"/>
<member name="error" c:identifier="FOLKS_PRESENCE_TYPE_ERROR" value="8"/>
</enumeration>
<enumeration name="MaybeBool" c:type="FolksMaybeBool" glib:type-name="FolksMaybeBool" glib:get-type="folks_maybe_bool_get_type">
<member name="unset" c:identifier="FOLKS_MAYBE_BOOL_UNSET" value="0"/>
<member name="false" c:identifier="FOLKS_MAYBE_BOOL_FALSE" value="1"/>
<member name="true" c:identifier="FOLKS_MAYBE_BOOL_TRUE" value="2"/>
</enumeration>
<errordomain name="IndividualAggregatorError" get-quark="folks_individual_aggregator_error_quark" codes="IndividualAggregatorError">
</errordomain>
<enumeration name="IndividualAggregatorError" c:type="FolksIndividualAggregatorError">
<member name="store_not_found" c:identifier="FOLKS_INDIVIDUAL_AGGREGATOR_ERROR_STORE_NOT_FOUND" value="0"/>
<member name="add_failed" c:identifier="FOLKS_INDIVIDUAL_AGGREGATOR_ERROR_ADD_FAILED" value="1"/>
<member name="no_writeable_store" c:identifier="FOLKS_INDIVIDUAL_AGGREGATOR_ERROR_NO_WRITEABLE_STORE" value="2"/>
<member name="store_offline" c:identifier="FOLKS_INDIVIDUAL_AGGREGATOR_ERROR_STORE_OFFLINE" value="3"/>
</enumeration>
<errordomain name="PersonaStoreError" get-quark="folks_persona_store_error_quark" codes="PersonaStoreError">
</errordomain>
<enumeration name="PersonaStoreError" c:type="FolksPersonaStoreError">
<member name="invalid_argument" c:identifier="FOLKS_PERSONA_STORE_ERROR_INVALID_ARGUMENT" value="0"/>
<member name="create_failed" c:identifier="FOLKS_PERSONA_STORE_ERROR_CREATE_FAILED" value="1"/>
<member name="unsupported_on_user" c:identifier="FOLKS_PERSONA_STORE_ERROR_UNSUPPORTED_ON_USER" value="2"/>
<member name="store_offline" c:identifier="FOLKS_PERSONA_STORE_ERROR_STORE_OFFLINE" value="3"/>
</enumeration>
<class name="Backend" c:type="FolksBackend" glib:type-name="FolksBackend" glib:get-type="folks_backend_get_type" glib:type-struct="BackendClass" parent="GObject.Object" abstract="1">
<field name="parent_instance">
<type name="GObject.Object" c:type="GObject"/>
</field>
<field name="priv">
<type name="BackendPrivate" c:type="FolksBackendPrivate*"/>
</field>
<method name="prepare" c:identifier="folks_backend_prepare">
<parameters>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<method name="prepare_finish" c:identifier="folks_backend_prepare_finish" throws="1">
<parameters>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<virtual-method name="prepare" invoker="prepare">
<parameters>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</virtual-method>
<virtual-method name="prepare_finish" invoker="prepare_finish" throws="1">
<parameters>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</virtual-method>
<method name="unprepare" c:identifier="folks_backend_unprepare">
<parameters>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<method name="unprepare_finish" c:identifier="folks_backend_unprepare_finish" throws="1">
<parameters>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<virtual-method name="unprepare" invoker="unprepare">
<parameters>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</virtual-method>
<virtual-method name="unprepare_finish" invoker="unprepare_finish" throws="1">
<parameters>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</virtual-method>
<constructor name="new" c:identifier="folks_backend_new">
<return-value transfer-ownership="full">
<type name="Folks.Backend" c:type="FolksBackend*"/>
</return-value>
</constructor>
<property name="is-prepared">
<type name="gboolean" c:type="gboolean"/>
</property>
<property name="name">
<type name="utf8" c:type="gchar*"/>
</property>
<property name="persona-stores">
<type name="GLib.HashTable" c:type="GHashTable*">
<type name="utf8" c:type="gchar*"/>
<type name="Folks.PersonaStore" c:type="FolksPersonaStore*"/>
</type>
</property>
<glib:signal name="persona_store_added">
<parameters>
<parameter name="store" transfer-ownership="none">
<type name="Folks.PersonaStore" c:type="FolksPersonaStore*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</glib:signal>
<glib:signal name="persona_store_removed">
<parameters>
<parameter name="store" transfer-ownership="none">
<type name="Folks.PersonaStore" c:type="FolksPersonaStore*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</glib:signal>
</class>
<record name="BackendClass" c:type="FolksBackendClass" glib:is-gtype-struct-for="Backend">
<field name="parent_class">
<type name="GObject.ObjectClass" c:type="GObjectClass"/>
</field>
<field name="prepare">
<callback name="prepare" c:type="prepare">
<parameters>
<parameter name="self" transfer-ownership="none">
<type name="Folks.Backend" c:type="FolksBackend*"/>
</parameter>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</callback>
<callback name="prepare_finish" c:type="prepare_finish" throws="1">
<parameters>
<parameter name="self" transfer-ownership="none">
<type name="Folks.Backend" c:type="FolksBackend*"/>
</parameter>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</callback>
</field>
<field name="unprepare">
<callback name="unprepare" c:type="unprepare">
<parameters>
<parameter name="self" transfer-ownership="none">
<type name="Folks.Backend" c:type="FolksBackend*"/>
</parameter>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</callback>
<callback name="unprepare_finish" c:type="unprepare_finish" throws="1">
<parameters>
<parameter name="self" transfer-ownership="none">
<type name="Folks.Backend" c:type="FolksBackend*"/>
</parameter>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</callback>
</field>
</record>
<record name="BackendPrivate" c:type="FolksBackendPrivate" disguised="1"/>
<class name="BackendStore" c:type="FolksBackendStore" glib:type-name="FolksBackendStore" glib:get-type="folks_backend_store_get_type" glib:type-struct="BackendStoreClass" parent="GObject.Object">
<field name="parent_instance">
<type name="GObject.Object" c:type="GObject"/>
</field>
<field name="priv">
<type name="BackendStorePrivate" c:type="FolksBackendStorePrivate*"/>
</field>
<function name="dup" c:identifier="folks_backend_store_dup">
<return-value transfer-ownership="full">
<type name="Folks.BackendStore" c:type="FolksBackendStore*"/>
</return-value>
</function>
<method name="prepare" c:identifier="folks_backend_store_prepare">
<parameters>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<method name="prepare_finish" c:identifier="folks_backend_store_prepare_finish">
<parameters>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<method name="load_backends" c:identifier="folks_backend_store_load_backends">
<parameters>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<method name="load_backends_finish" c:identifier="folks_backend_store_load_backends_finish" throws="1">
<parameters>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<method name="add_backend" c:identifier="folks_backend_store_add_backend">
<parameters>
<parameter name="backend" transfer-ownership="none">
<type name="Folks.Backend" c:type="FolksBackend*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<method name="get_backend_by_name" c:identifier="folks_backend_store_get_backend_by_name">
<parameters>
<parameter name="name" transfer-ownership="none">
<type name="utf8" c:type="const gchar*"/>
</parameter>
</parameters>
<return-value transfer-ownership="full" allow-none="1">
<type name="Folks.Backend" c:type="FolksBackend*"/>
</return-value>
</method>
<method name="list_backends" c:identifier="folks_backend_store_list_backends">
<return-value transfer-ownership="full">
<type name="Gee.Collection" c:type="GeeCollection*">
<type name="Folks.Backend" c:type="FolksBackend*"/>
</type>
</return-value>
</method>
<method name="enable_backend" c:identifier="folks_backend_store_enable_backend">
<parameters>
<parameter name="name" transfer-ownership="none">
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<method name="enable_backend_finish" c:identifier="folks_backend_store_enable_backend_finish">
<parameters>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<method name="disable_backend" c:identifier="folks_backend_store_disable_backend">
<parameters>
<parameter name="name" transfer-ownership="none">
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<method name="disable_backend_finish" c:identifier="folks_backend_store_disable_backend_finish">
<parameters>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<property name="enabled-backends" writable="1">
<type name="GLib.List" c:type="GList*">
<type name="Folks.Backend" c:type="FolksBackend*"/>
</type>
</property>
<property name="is-prepared" writable="1">
<type name="gboolean" c:type="gboolean"/>
</property>
<glib:signal name="backend_available">
<parameters>
<parameter name="backend" transfer-ownership="none">
<type name="Folks.Backend" c:type="FolksBackend*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</glib:signal>
</class>
<record name="BackendStoreClass" c:type="FolksBackendStoreClass" glib:is-gtype-struct-for="BackendStore">
<field name="parent_class">
<type name="GObject.ObjectClass" c:type="GObjectClass"/>
</field>
</record>
<record name="BackendStorePrivate" c:type="FolksBackendStorePrivate" disguised="1"/>
<class name="Individual" c:type="FolksIndividual" glib:type-name="FolksIndividual" glib:get-type="folks_individual_get_type" glib:type-struct="IndividualClass" parent="GObject.Object">
<implements name="Folks.Aliasable"/>
<implements name="Folks.Avatar"/>
<implements name="Folks.Favourite"/>
<implements name="Folks.Groupable"/>
<implements name="Folks.IMable"/>
<implements name="Folks.Presence"/>
<field name="parent_instance">
<type name="GObject.Object" c:type="GObject"/>
</field>
<field name="priv">
<type name="IndividualPrivate" c:type="FolksIndividualPrivate*"/>
</field>
<constructor name="new" c:identifier="folks_individual_new">
<parameters>
<parameter name="personas" transfer-ownership="none" allow-none="1">
<type name="GLib.List" c:type="GList*">
<type name="Folks.Persona" c:type="FolksPersona*"/>
</type>
</parameter>
</parameters>
<return-value transfer-ownership="full">
<type name="Folks.Individual" c:type="FolksIndividual*"/>
</return-value>
</constructor>
<property name="trust-level" writable="1">
<type name="Folks.TrustLevel" c:type="FolksTrustLevel"/>
</property>
<property name="is-user" writable="1">
<type name="gboolean" c:type="gboolean"/>
</property>
<property name="id" writable="1">
<type name="utf8" c:type="gchar*"/>
</property>
<property name="personas" writable="1">
<type name="GLib.List" c:type="GList*">
<type name="Folks.Persona" c:type="FolksPersona*"/>
</type>
</property>
<glib:signal name="removed">
<parameters>
<parameter name="replacement_individual" transfer-ownership="none" allow-none="1">
<type name="Folks.Individual" c:type="FolksIndividual*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</glib:signal>
<glib:signal name="personas_changed">
<parameters>
<parameter name="added" transfer-ownership="none" allow-none="1">
<type name="GLib.List" c:type="GList*">
<type name="Folks.Persona" c:type="FolksPersona*"/>
</type>
</parameter>
<parameter name="removed" transfer-ownership="none" allow-none="1">
<type name="GLib.List" c:type="GList*">
<type name="Folks.Persona" c:type="FolksPersona*"/>
</type>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</glib:signal>
</class>
<record name="IndividualClass" c:type="FolksIndividualClass" glib:is-gtype-struct-for="Individual">
<field name="parent_class">
<type name="GObject.ObjectClass" c:type="GObjectClass"/>
</field>
</record>
<record name="IndividualPrivate" c:type="FolksIndividualPrivate" disguised="1"/>
<class name="IndividualAggregator" c:type="FolksIndividualAggregator" glib:type-name="FolksIndividualAggregator" glib:get-type="folks_individual_aggregator_get_type" glib:type-struct="IndividualAggregatorClass" parent="GObject.Object">
<field name="parent_instance">
<type name="GObject.Object" c:type="GObject"/>
</field>
<field name="priv">
<type name="IndividualAggregatorPrivate" c:type="FolksIndividualAggregatorPrivate*"/>
</field>
<constructor name="new" c:identifier="folks_individual_aggregator_new">
<return-value transfer-ownership="full">
<type name="Folks.IndividualAggregator" c:type="FolksIndividualAggregator*"/>
</return-value>
</constructor>
<method name="prepare" c:identifier="folks_individual_aggregator_prepare">
<parameters>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<method name="prepare_finish" c:identifier="folks_individual_aggregator_prepare_finish" throws="1">
<parameters>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<method name="add_persona_from_details" c:identifier="folks_individual_aggregator_add_persona_from_details">
<parameters>
<parameter name="parent" transfer-ownership="none" allow-none="1">
<type name="Folks.Individual" c:type="FolksIndividual*"/>
</parameter>
<parameter name="persona_store_type" transfer-ownership="none">
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="persona_store_id" transfer-ownership="none">
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="details" transfer-ownership="none">
<type name="GLib.HashTable" c:type="GHashTable*">
<type name="utf8" c:type="gchar*"/>
<type name="GObject.Value" c:type="GValue*"/>
</type>
</parameter>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="6">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<method name="add_persona_from_details_finish" c:identifier="folks_individual_aggregator_add_persona_from_details_finish" throws="1">
<parameters>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="full" allow-none="1">
<type name="Folks.Persona" c:type="FolksPersona*"/>
</return-value>
</method>
<method name="remove_individual" c:identifier="folks_individual_aggregator_remove_individual">
<parameters>
<parameter name="individual" transfer-ownership="none">
<type name="Folks.Individual" c:type="FolksIndividual*"/>
</parameter>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<method name="remove_individual_finish" c:identifier="folks_individual_aggregator_remove_individual_finish" throws="1">
<parameters>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<method name="remove_persona" c:identifier="folks_individual_aggregator_remove_persona">
<parameters>
<parameter name="persona" transfer-ownership="none">
<type name="Folks.Persona" c:type="FolksPersona*"/>
</parameter>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<method name="remove_persona_finish" c:identifier="folks_individual_aggregator_remove_persona_finish" throws="1">
<parameters>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<method name="link_personas" c:identifier="folks_individual_aggregator_link_personas">
<parameters>
<parameter name="_personas" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<method name="link_personas_finish" c:identifier="folks_individual_aggregator_link_personas_finish" throws="1">
<parameters>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<method name="unlink_individual" c:identifier="folks_individual_aggregator_unlink_individual">
<parameters>
<parameter name="individual" transfer-ownership="none">
<type name="Folks.Individual" c:type="FolksIndividual*"/>
</parameter>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<method name="unlink_individual_finish" c:identifier="folks_individual_aggregator_unlink_individual_finish" throws="1">
<parameters>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<property name="is-prepared">
<type name="gboolean" c:type="gboolean"/>
</property>
<property name="individuals" writable="1">
<type name="GLib.HashTable" c:type="GHashTable*">
<type name="utf8" c:type="gchar*"/>
<type name="Folks.Individual" c:type="FolksIndividual*"/>
</type>
</property>
<property name="user" writable="1">
<type name="Folks.Individual" c:type="FolksIndividual*"/>
</property>
<glib:signal name="individuals_changed">
<parameters>
<parameter name="added" transfer-ownership="none" allow-none="1">
<type name="GLib.List" c:type="GList*">
<type name="Folks.Individual" c:type="FolksIndividual*"/>
</type>
</parameter>
<parameter name="removed" transfer-ownership="none" allow-none="1">
<type name="GLib.List" c:type="GList*">
<type name="Folks.Individual" c:type="FolksIndividual*"/>
</type>
</parameter>
<parameter name="message" transfer-ownership="none" allow-none="1">
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="actor" transfer-ownership="none" allow-none="1">
<type name="Folks.Persona" c:type="FolksPersona*"/>
</parameter>
<parameter name="reason" transfer-ownership="none">
<type name="Folks.Groupable.ChangeReason" c:type="FolksGroupableChangeReason"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</glib:signal>
</class>
<record name="IndividualAggregatorClass" c:type="FolksIndividualAggregatorClass" glib:is-gtype-struct-for="IndividualAggregator">
<field name="parent_class">
<type name="GObject.ObjectClass" c:type="GObjectClass"/>
</field>
</record>
<record name="IndividualAggregatorPrivate" c:type="FolksIndividualAggregatorPrivate" disguised="1"/>
<class name="Persona" c:type="FolksPersona" glib:type-name="FolksPersona" glib:get-type="folks_persona_get_type" glib:type-struct="PersonaClass" parent="GObject.Object" abstract="1">
<field name="parent_instance">
<type name="GObject.Object" c:type="GObject"/>
</field>
<field name="priv">
<type name="PersonaPrivate" c:type="FolksPersonaPrivate*"/>
</field>
<method name="linkable_property_to_links" c:identifier="folks_persona_linkable_property_to_links">
<parameters>
<parameter name="prop_name" transfer-ownership="none">
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="callback" transfer-ownership="none" closure="3">
<type name="Folks.Persona.LinkablePropertyCallback" c:type="FolksPersonaLinkablePropertyCallback"/>
</parameter>
<parameter name="callback_target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<virtual-method name="linkable_property_to_links" invoker="linkable_property_to_links">
<parameters>
<parameter name="prop_name" transfer-ownership="none">
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="callback" transfer-ownership="none" closure="3">
<type name="Folks.Persona.LinkablePropertyCallback" c:type="FolksPersonaLinkablePropertyCallback"/>
</parameter>
<parameter name="callback_target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</virtual-method>
<function name="build_uid" c:identifier="folks_persona_build_uid">
<parameters>
<parameter name="backend_name" transfer-ownership="none">
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="persona_store_id" transfer-ownership="none">
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="persona_id" transfer-ownership="none">
<type name="utf8" c:type="const gchar*"/>
</parameter>
</parameters>
<return-value transfer-ownership="full">
<type name="utf8" c:type="gchar*"/>
</return-value>
</function>
<function name="split_uid" c:identifier="folks_persona_split_uid">
<parameters>
<parameter name="uid" transfer-ownership="none">
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="backend_name" direction="out" transfer-ownership="full">
<type name="utf8" c:type="gchar*"/>
</parameter>
<parameter name="persona_store_id" direction="out" transfer-ownership="full">
<type name="utf8" c:type="gchar*"/>
</parameter>
<parameter name="persona_id" direction="out" transfer-ownership="full">
<type name="utf8" c:type="gchar*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</function>
<constructor name="new" c:identifier="folks_persona_new">
<return-value transfer-ownership="full">
<type name="Folks.Persona" c:type="FolksPersona*"/>
</return-value>
</constructor>
<property name="iid" writable="1" construct-only="1">
<type name="utf8" c:type="gchar*"/>
</property>
<property name="uid" writable="1" construct-only="1">
<type name="utf8" c:type="gchar*"/>
</property>
<property name="display-id" writable="1" construct-only="1">
<type name="utf8" c:type="gchar*"/>
</property>
<property name="is-user" writable="1" construct-only="1">
<type name="gboolean" c:type="gboolean"/>
</property>
<property name="store" writable="1" construct-only="1">
<type name="Folks.PersonaStore" c:type="FolksPersonaStore*"/>
</property>
<property name="linkable-properties">
<array>
<type name="utf8" c:type="gchar*"/>
</array>
</property>
<callback name="LinkablePropertyCallback" c:type="FolksPersonaLinkablePropertyCallback">
<parameters>
<parameter name="link" transfer-ownership="none">
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" closure="2">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</callback>
</class>
<record name="PersonaClass" c:type="FolksPersonaClass" glib:is-gtype-struct-for="Persona">
<field name="parent_class">
<type name="GObject.ObjectClass" c:type="GObjectClass"/>
</field>
<field name="linkable_property_to_links">
<callback name="linkable_property_to_links" c:type="linkable_property_to_links">
<parameters>
<parameter name="self" transfer-ownership="none">
<type name="Folks.Persona" c:type="FolksPersona*"/>
</parameter>
<parameter name="prop_name" transfer-ownership="none">
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="callback" transfer-ownership="none" closure="4">
<type name="Folks.Persona.LinkablePropertyCallback" c:type="FolksPersonaLinkablePropertyCallback"/>
</parameter>
<parameter name="callback_target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</callback>
</field>
</record>
<record name="PersonaPrivate" c:type="FolksPersonaPrivate" disguised="1"/>
<class name="PersonaStore" c:type="FolksPersonaStore" glib:type-name="FolksPersonaStore" glib:get-type="folks_persona_store_get_type" glib:type-struct="PersonaStoreClass" parent="GObject.Object" abstract="1">
<field name="parent_instance">
<type name="GObject.Object" c:type="GObject"/>
</field>
<field name="priv">
<type name="PersonaStorePrivate" c:type="FolksPersonaStorePrivate*"/>
</field>
<method name="prepare" c:identifier="folks_persona_store_prepare">
<parameters>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<method name="prepare_finish" c:identifier="folks_persona_store_prepare_finish" throws="1">
<parameters>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<virtual-method name="prepare" invoker="prepare">
<parameters>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</virtual-method>
<virtual-method name="prepare_finish" invoker="prepare_finish" throws="1">
<parameters>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</virtual-method>
<method name="flush" c:identifier="folks_persona_store_flush">
<parameters>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<method name="flush_finish" c:identifier="folks_persona_store_flush_finish">
<parameters>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<virtual-method name="flush" invoker="flush">
<parameters>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="2">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</virtual-method>
<virtual-method name="flush_finish" invoker="flush_finish">
<parameters>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</virtual-method>
<method name="add_persona_from_details" c:identifier="folks_persona_store_add_persona_from_details">
<parameters>
<parameter name="details" transfer-ownership="none">
<type name="GLib.HashTable" c:type="GHashTable*">
<type name="utf8" c:type="gchar*"/>
<type name="GObject.Value" c:type="GValue*"/>
</type>
</parameter>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<method name="add_persona_from_details_finish" c:identifier="folks_persona_store_add_persona_from_details_finish" throws="1">
<parameters>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="full" allow-none="1">
<type name="Folks.Persona" c:type="FolksPersona*"/>
</return-value>
</method>
<virtual-method name="add_persona_from_details" invoker="add_persona_from_details">
<parameters>
<parameter name="details" transfer-ownership="none">
<type name="GLib.HashTable" c:type="GHashTable*">
<type name="utf8" c:type="gchar*"/>
<type name="GObject.Value" c:type="GValue*"/>
</type>
</parameter>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</virtual-method>
<virtual-method name="add_persona_from_details_finish" invoker="add_persona_from_details_finish" throws="1">
<parameters>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="full" allow-none="1">
<type name="Folks.Persona" c:type="FolksPersona*"/>
</return-value>
</virtual-method>
<method name="remove_persona" c:identifier="folks_persona_store_remove_persona">
<parameters>
<parameter name="persona" transfer-ownership="none">
<type name="Folks.Persona" c:type="FolksPersona*"/>
</parameter>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<method name="remove_persona_finish" c:identifier="folks_persona_store_remove_persona_finish" throws="1">
<parameters>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<virtual-method name="remove_persona" invoker="remove_persona">
<parameters>
<parameter name="persona" transfer-ownership="none">
<type name="Folks.Persona" c:type="FolksPersona*"/>
</parameter>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</virtual-method>
<virtual-method name="remove_persona_finish" invoker="remove_persona_finish" throws="1">
<parameters>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</virtual-method>
<constructor name="new" c:identifier="folks_persona_store_new">
<return-value transfer-ownership="full">
<type name="Folks.PersonaStore" c:type="FolksPersonaStore*"/>
</return-value>
</constructor>
<property name="type-id">
<type name="utf8" c:type="gchar*"/>
</property>
<property name="display-name" writable="1" construct-only="1">
<type name="utf8" c:type="gchar*"/>
</property>
<property name="id" writable="1" construct-only="1">
<type name="utf8" c:type="gchar*"/>
</property>
<property name="personas">
<type name="GLib.HashTable" c:type="GHashTable*">
<type name="utf8" c:type="gchar*"/>
<type name="Folks.Persona" c:type="FolksPersona*"/>
</type>
</property>
<property name="can-add-personas">
<type name="Folks.MaybeBool" c:type="FolksMaybeBool"/>
</property>
<property name="can-alias-personas">
<type name="Folks.MaybeBool" c:type="FolksMaybeBool"/>
</property>
<property name="can-group-personas">
<type name="Folks.MaybeBool" c:type="FolksMaybeBool"/>
</property>
<property name="can-remove-personas">
<type name="Folks.MaybeBool" c:type="FolksMaybeBool"/>
</property>
<property name="is-prepared">
<type name="gboolean" c:type="gboolean"/>
</property>
<property name="is-writeable" writable="1">
<type name="gboolean" c:type="gboolean"/>
</property>
<property name="trust-level" writable="1">
<type name="Folks.PersonaStoreTrust" c:type="FolksPersonaStoreTrust"/>
</property>
<glib:signal name="personas_changed">
<parameters>
<parameter name="added" transfer-ownership="none" allow-none="1">
<type name="GLib.List" c:type="GList*">
<type name="Folks.Persona" c:type="FolksPersona*"/>
</type>
</parameter>
<parameter name="removed" transfer-ownership="none" allow-none="1">
<type name="GLib.List" c:type="GList*">
<type name="Folks.Persona" c:type="FolksPersona*"/>
</type>
</parameter>
<parameter name="message" transfer-ownership="none" allow-none="1">
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="actor" transfer-ownership="none" allow-none="1">
<type name="Folks.Persona" c:type="FolksPersona*"/>
</parameter>
<parameter name="reason" transfer-ownership="none">
<type name="Folks.Groupable.ChangeReason" c:type="FolksGroupableChangeReason"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</glib:signal>
<glib:signal name="removed">
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</glib:signal>
</class>
<record name="PersonaStoreClass" c:type="FolksPersonaStoreClass" glib:is-gtype-struct-for="PersonaStore">
<field name="parent_class">
<type name="GObject.ObjectClass" c:type="GObjectClass"/>
</field>
<field name="prepare">
<callback name="prepare" c:type="prepare">
<parameters>
<parameter name="self" transfer-ownership="none">
<type name="Folks.PersonaStore" c:type="FolksPersonaStore*"/>
</parameter>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</callback>
<callback name="prepare_finish" c:type="prepare_finish" throws="1">
<parameters>
<parameter name="self" transfer-ownership="none">
<type name="Folks.PersonaStore" c:type="FolksPersonaStore*"/>
</parameter>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</callback>
</field>
<field name="flush">
<callback name="flush" c:type="flush">
<parameters>
<parameter name="self" transfer-ownership="none">
<type name="Folks.PersonaStore" c:type="FolksPersonaStore*"/>
</parameter>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="3">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</callback>
<callback name="flush_finish" c:type="flush_finish">
<parameters>
<parameter name="self" transfer-ownership="none">
<type name="Folks.PersonaStore" c:type="FolksPersonaStore*"/>
</parameter>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</callback>
</field>
<field name="add_persona_from_details">
<callback name="add_persona_from_details" c:type="add_persona_from_details">
<parameters>
<parameter name="self" transfer-ownership="none">
<type name="Folks.PersonaStore" c:type="FolksPersonaStore*"/>
</parameter>
<parameter name="details" transfer-ownership="none">
<type name="GLib.HashTable" c:type="GHashTable*">
<type name="utf8" c:type="gchar*"/>
<type name="GObject.Value" c:type="GValue*"/>
</type>
</parameter>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="4">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</callback>
<callback name="add_persona_from_details_finish" c:type="add_persona_from_details_finish" throws="1">
<parameters>
<parameter name="self" transfer-ownership="none">
<type name="Folks.PersonaStore" c:type="FolksPersonaStore*"/>
</parameter>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="full" allow-none="1">
<type name="Folks.Persona" c:type="FolksPersona*"/>
</return-value>
</callback>
</field>
<field name="remove_persona">
<callback name="remove_persona" c:type="remove_persona">
<parameters>
<parameter name="self" transfer-ownership="none">
<type name="Folks.PersonaStore" c:type="FolksPersonaStore*"/>
</parameter>
<parameter name="persona" transfer-ownership="none">
<type name="Folks.Persona" c:type="FolksPersona*"/>
</parameter>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="4">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</callback>
<callback name="remove_persona_finish" c:type="remove_persona_finish" throws="1">
<parameters>
<parameter name="self" transfer-ownership="none">
<type name="Folks.PersonaStore" c:type="FolksPersonaStore*"/>
</parameter>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</callback>
</field>
</record>
<record name="PersonaStorePrivate" c:type="FolksPersonaStorePrivate" disguised="1"/>
<interface name="Aliasable" c:type="FolksAliasable" glib:type-name="FolksAliasable" glib:get-type="folks_aliasable_get_type" glib:type-struct="AliasableIface">
<prerequisite name="GObject.Object"/>
<property name="alias" writable="1">
<type name="utf8" c:type="gchar*"/>
</property>
</interface>
<record name="AliasableIface" c:type="FolksAliasableIface" glib:is-gtype-struct-for="Aliasable">
</record>
<interface name="Avatar" c:type="FolksAvatar" glib:type-name="FolksAvatar" glib:get-type="folks_avatar_get_type" glib:type-struct="AvatarIface">
<prerequisite name="GObject.Object"/>
<property name="avatar" writable="1">
<type name="Gio.File" c:type="GFile*"/>
</property>
</interface>
<record name="AvatarIface" c:type="FolksAvatarIface" glib:is-gtype-struct-for="Avatar">
</record>
<interface name="Favourite" c:type="FolksFavourite" glib:type-name="FolksFavourite" glib:get-type="folks_favourite_get_type" glib:type-struct="FavouriteIface">
<prerequisite name="GObject.Object"/>
<property name="is-favourite" writable="1">
<type name="gboolean" c:type="gboolean"/>
</property>
</interface>
<record name="FavouriteIface" c:type="FolksFavouriteIface" glib:is-gtype-struct-for="Favourite">
</record>
<interface name="Groupable" c:type="FolksGroupable" glib:type-name="FolksGroupable" glib:get-type="folks_groupable_get_type" glib:type-struct="GroupableIface">
<prerequisite name="GObject.Object"/>
<enumeration name="ChangeReason" c:type="FolksGroupableChangeReason" glib:type-name="FolksGroupableChangeReason" glib:get-type="folks_groupable_change_reason_get_type">
<member name="none" c:identifier="FOLKS_GROUPABLE_CHANGE_REASON_NONE" value="0"/>
<member name="offline" c:identifier="FOLKS_GROUPABLE_CHANGE_REASON_OFFLINE" value="1"/>
<member name="kicked" c:identifier="FOLKS_GROUPABLE_CHANGE_REASON_KICKED" value="2"/>
<member name="busy" c:identifier="FOLKS_GROUPABLE_CHANGE_REASON_BUSY" value="3"/>
<member name="invited" c:identifier="FOLKS_GROUPABLE_CHANGE_REASON_INVITED" value="4"/>
<member name="banned" c:identifier="FOLKS_GROUPABLE_CHANGE_REASON_BANNED" value="5"/>
<member name="error" c:identifier="FOLKS_GROUPABLE_CHANGE_REASON_ERROR" value="6"/>
<member name="invalid_member" c:identifier="FOLKS_GROUPABLE_CHANGE_REASON_INVALID_MEMBER" value="7"/>
<member name="no_answer" c:identifier="FOLKS_GROUPABLE_CHANGE_REASON_NO_ANSWER" value="8"/>
<member name="renamed" c:identifier="FOLKS_GROUPABLE_CHANGE_REASON_RENAMED" value="9"/>
<member name="permission_denied" c:identifier="FOLKS_GROUPABLE_CHANGE_REASON_PERMISSION_DENIED" value="10"/>
<member name="separated" c:identifier="FOLKS_GROUPABLE_CHANGE_REASON_SEPARATED" value="11"/>
</enumeration>
<method name="change_group" c:identifier="folks_groupable_change_group">
<parameters>
<parameter name="group" transfer-ownership="none">
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="is_member" transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</parameter>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="4">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<method name="change_group_finish" c:identifier="folks_groupable_change_group_finish" throws="1">
<parameters>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</method>
<virtual-method name="change_group" invoker="change_group">
<parameters>
<parameter name="group" transfer-ownership="none">
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="is_member" transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</parameter>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="4">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</virtual-method>
<virtual-method name="change_group_finish" invoker="change_group_finish" throws="1">
<parameters>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</virtual-method>
<property name="groups" writable="1">
<type name="GLib.HashTable" c:type="GHashTable*">
<type name="utf8" c:type="gchar*"/>
<type name="gboolean" c:type="gboolean"/>
</type>
</property>
<glib:signal name="group_changed">
<parameters>
<parameter name="group" transfer-ownership="none">
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="is_member" transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</glib:signal>
</interface>
<record name="GroupableIface" c:type="FolksGroupableIface" glib:is-gtype-struct-for="Groupable">
<callback name="change_group" c:type="change_group">
<parameters>
<parameter name="self" transfer-ownership="none">
<type name="Folks.Groupable" c:type="FolksGroupable*"/>
</parameter>
<parameter name="group" transfer-ownership="none">
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="is_member" transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</parameter>
<parameter name="_callback_" transfer-ownership="none" allow-none="1" closure="5">
<type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
</parameter>
<parameter name="_callback__target" transfer-ownership="none" allow-none="1">
<type name="gpointer" c:type="void*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</callback>
<callback name="change_group_finish" c:type="change_group_finish" throws="1">
<parameters>
<parameter name="self" transfer-ownership="none">
<type name="Folks.Groupable" c:type="FolksGroupable*"/>
</parameter>
<parameter name="_res_" transfer-ownership="none">
<type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
</parameter>
</parameters>
<return-value transfer-ownership="none">
<type name="none"/>
</return-value>
</callback>
</record>
<interface name="IMable" c:type="FolksIMable" glib:type-name="FolksIMable" glib:get-type="folks_imable_get_type" glib:type-struct="IMableIface">
<prerequisite name="GObject.Object"/>
<function name="normalise_im_address" c:identifier="folks_imable_normalise_im_address">
<parameters>
<parameter name="im_address" transfer-ownership="none">
<type name="utf8" c:type="const gchar*"/>
</parameter>
<parameter name="protocol" transfer-ownership="none">
<type name="utf8" c:type="const gchar*"/>
</parameter>
</parameters>
<return-value transfer-ownership="full">
<type name="utf8" c:type="gchar*"/>
</return-value>
</function>
<property name="im-addresses" writable="1">
<type name="GLib.HashTable" c:type="GHashTable*">
<type name="utf8" c:type="gchar*"/>
<type name="GLib.GenericArray" c:type="GPtrArray*">
<type name="utf8" c:type="gchar*"/>
</type>
</type>
</property>
</interface>
<record name="IMableIface" c:type="FolksIMableIface" glib:is-gtype-struct-for="IMable">
</record>
<interface name="Presence" c:type="FolksPresence" glib:type-name="FolksPresence" glib:get-type="folks_presence_get_type" glib:type-struct="PresenceIface">
<prerequisite name="GObject.Object"/>
<function name="typecmp" c:identifier="folks_presence_typecmp">
<parameters>
<parameter name="type_a" transfer-ownership="none">
<type name="Folks.PresenceType" c:type="FolksPresenceType"/>
</parameter>
<parameter name="type_b" transfer-ownership="none">
<type name="Folks.PresenceType" c:type="FolksPresenceType"/>
</parameter>
</parameters>
<return-value transfer-ownership="full">
<type name="gint" c:type="gint"/>
</return-value>
</function>
<method name="is_online" c:identifier="folks_presence_is_online">
<return-value transfer-ownership="full">
<type name="gboolean" c:type="gboolean"/>
</return-value>
</method>
<property name="presence-type" writable="1">
<type name="Folks.PresenceType" c:type="FolksPresenceType"/>
</property>
<property name="presence-message" writable="1">
<type name="utf8" c:type="gchar*"/>
</property>
</interface>
<record name="PresenceIface" c:type="FolksPresenceIface" glib:is-gtype-struct-for="Presence">
</record>
</namespace>
</repository>