Blob Blame History Raw
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GoaProvider: GNOME Online Accounts Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="GNOME Online Accounts Reference Manual">
<link rel="up" href="ch07.html" title="Core">
<link rel="prev" href="goa-goautil.html" title="goautil">
<link rel="next" href="GoaOAuthProvider.html" title="GoaOAuthProvider">
<meta name="generator" content="GTK-Doc V1.28 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                  <a href="#GoaProvider.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                  <a href="#GoaProvider.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                  <a href="#GoaProvider.properties" class="shortcut">Properties</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ch07.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="goa-goautil.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="GoaOAuthProvider.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="GoaProvider"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="GoaProvider.top_of_page"></a>GoaProvider</span></h2>
<p>GoaProvider — Abstract base class for providers</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="GoaProvider.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_return">
<col class="functions_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="GoaProvider.html#goa-provider-get-provider-type" title="goa_provider_get_provider_type ()">goa_provider_get_provider_type</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="GoaProvider.html#goa-provider-get-provider-name" title="goa_provider_get_provider_name ()">goa_provider_get_provider_name</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/gio/GIcon.html#GIcon-struct"><span class="returnvalue">GIcon</span></a> *
</td>
<td class="function_name">
<a class="link" href="GoaProvider.html#goa-provider-get-provider-icon" title="goa_provider_get_provider_icon ()">goa_provider_get_provider_icon</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GoaProvider.html#GoaProviderGroup" title="enum GoaProviderGroup"><span class="returnvalue">GoaProviderGroup</span></a>
</td>
<td class="function_name">
<a class="link" href="GoaProvider.html#goa-provider-get-provider-group" title="goa_provider_get_provider_group ()">goa_provider_get_provider_group</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GoaProvider.html#GoaProviderFeatures" title="enum GoaProviderFeatures"><span class="returnvalue">GoaProviderFeatures</span></a>
</td>
<td class="function_name">
<a class="link" href="GoaProvider.html#goa-provider-get-provider-features" title="goa_provider_get_provider_features ()">goa_provider_get_provider_features</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GoaProvider.html#goa-provider-build-object" title="goa_provider_build_object ()">goa_provider_build_object</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GoaObject.html" title="GoaObject"><span class="returnvalue">GoaObject</span></a> *
</td>
<td class="function_name">
<a class="link" href="GoaProvider.html#goa-provider-add-account" title="goa_provider_add_account ()">goa_provider_add_account</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GoaProvider.html#goa-provider-set-preseed-data" title="goa_provider_set_preseed_data ()">goa_provider_set_preseed_data</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *
</td>
<td class="function_name">
<a class="link" href="GoaProvider.html#goa-provider-get-preseed-data" title="goa_provider_get_preseed_data ()">goa_provider_get_preseed_data</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GoaProvider.html#goa-provider-refresh-account" title="goa_provider_refresh_account ()">goa_provider_refresh_account</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GoaProvider.html#goa-provider-show-account" title="goa_provider_show_account ()">goa_provider_show_account</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GoaProvider.html#goa-provider-ensure-credentials" title="goa_provider_ensure_credentials ()">goa_provider_ensure_credentials</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GoaProvider.html#goa-provider-ensure-credentials-finish" title="goa_provider_ensure_credentials_finish ()">goa_provider_ensure_credentials_finish</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GoaProvider.html#goa-provider-ensure-credentials-sync" title="goa_provider_ensure_credentials_sync ()">goa_provider_ensure_credentials_sync</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
</td>
<td class="function_name">
<a class="link" href="GoaProvider.html#goa-provider-get-credentials-generation" title="goa_provider_get_credentials_generation ()">goa_provider_get_credentials_generation</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GoaProvider.html#goa-provider-get-all" title="goa_provider_get_all ()">goa_provider_get_all</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GoaProvider.html" title="GoaProvider"><span class="returnvalue">GoaProvider</span></a> *
</td>
<td class="function_name">
<a class="link" href="GoaProvider.html#goa-provider-get-for-provider-type" title="goa_provider_get_for_provider_type ()">goa_provider_get_for_provider_type</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GoaProvider.properties"></a><h2>Properties</h2>
<div class="informaltable"><table class="informaltable" border="0">
<colgroup>
<col width="150px" class="properties_type">
<col width="300px" class="properties_name">
<col width="200px" class="properties_flags">
</colgroup>
<tbody><tr>
<td class="property_type">
<a href="/usr/share/gtk-doc/html/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *</td>
<td class="property_name"><a class="link" href="GoaProvider.html#GoaProvider--preseed-data" title="The “preseed-data” property">preseed-data</a></td>
<td class="property_flags">Read / Write</td>
</tr></tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GoaProvider.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="name">
<col class="description">
</colgroup>
<tbody>
<tr>
<td class="datatype_keyword"> </td>
<td class="function_name"><a class="link" href="GoaProvider.html#GoaProvider-struct" title="GoaProvider">GoaProvider</a></td>
</tr>
<tr>
<td class="datatype_keyword"> </td>
<td class="function_name"><a class="link" href="GoaProvider.html#GoaProviderClass" title="GoaProviderClass">GoaProviderClass</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="GoaProvider.html#GoaProviderGroup" title="enum GoaProviderGroup">GoaProviderGroup</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="GoaProvider.html#GoaProviderFeatures" title="enum GoaProviderFeatures">GoaProviderFeatures</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="GoaProvider.html#GOA-PROVIDER-EXTENSION-POINT-NAME:CAPS" title="GOA_PROVIDER_EXTENSION_POINT_NAME">GOA_PROVIDER_EXTENSION_POINT_NAME</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GoaProvider.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
    <span class="lineart">╰──</span> GoaProvider
        <span class="lineart">├──</span> <a class="link" href="GoaOAuthProvider.html" title="GoaOAuthProvider">GoaOAuthProvider</a>
        <span class="lineart">╰──</span> <a class="link" href="GoaOAuth2Provider.html" title="GoaOAuth2Provider">GoaOAuth2Provider</a>
</pre>
</div>
<div class="refsect1">
<a name="GoaProvider.description"></a><h2>Description</h2>
<p><a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a> is the base type for all providers.</p>
</div>
<div class="refsect1">
<a name="GoaProvider.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="goa-provider-get-provider-type"></a><h3>goa_provider_get_provider_type ()</h3>
<pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
goa_provider_get_provider_type (<em class="parameter"><code><a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a> *self</code></em>);</pre>
<p>Gets the type of <em class="parameter"><code>self</code></em>
.</p>
<p>This is a pure virtual method - a subclass must provide an
implementation.</p>
<div class="refsect3">
<a name="goa-provider-get-provider-type.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="goa-provider-get-provider-type.returns"></a><h4>Returns</h4>
<p>A string owned by <em class="parameter"><code>self</code></em>
, do not free. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="goa-provider-get-provider-name"></a><h3>goa_provider_get_provider_name ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
goa_provider_get_provider_name (<em class="parameter"><code><a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a> *self</code></em>,
                                <em class="parameter"><code><a class="link" href="GoaObject.html" title="GoaObject"><span class="type">GoaObject</span></a> *object</code></em>);</pre>
<p>Gets a name for <em class="parameter"><code>self</code></em>
 and <em class="parameter"><code>object</code></em>
 that is suitable for display
in an user interface. The returned value may depend on <em class="parameter"><code>object</code></em>
 (if
it's not <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>) - for example, hosted accounts might return a
different name.</p>
<p>This is a pure virtual method - a subclass must provide an
implementation.</p>
<div class="refsect3">
<a name="goa-provider-get-provider-name.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>object</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaObject.html" title="GoaObject"><span class="type">GoaObject</span></a> for an account. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="goa-provider-get-provider-name.returns"></a><h4>Returns</h4>
<p>A string that should be freed with <a href="/usr/share/gtk-doc/html/glib/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="goa-provider-get-provider-icon"></a><h3>goa_provider_get_provider_icon ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/gio/GIcon.html#GIcon-struct"><span class="returnvalue">GIcon</span></a> *
goa_provider_get_provider_icon (<em class="parameter"><code><a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a> *self</code></em>,
                                <em class="parameter"><code><a class="link" href="GoaObject.html" title="GoaObject"><span class="type">GoaObject</span></a> *object</code></em>);</pre>
<p>Gets an icon for <em class="parameter"><code>self</code></em>
 and <em class="parameter"><code>object</code></em>
 that is suitable for display
in an user interface. The returned value may depend on <em class="parameter"><code>object</code></em>
 -
for example, hosted accounts might return a different icon.</p>
<p>This is a virtual method with a default implementation that returns
a <a href="/usr/share/gtk-doc/html/gio/GThemedIcon.html#GThemedIcon-struct"><span class="type">GThemedIcon</span></a> with fallbacks constructed from the name
<code class="literal">goa-account-TYPE</code> where <code class="literal">TYPE</code>
is the return value of <a class="link" href="GoaProvider.html#goa-provider-get-provider-type" title="goa_provider_get_provider_type ()"><code class="function">goa_provider_get_provider_type()</code></a>.</p>
<div class="refsect3">
<a name="goa-provider-get-provider-icon.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>object</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaObject.html" title="GoaObject"><span class="type">GoaObject</span></a> for an account.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="goa-provider-get-provider-icon.returns"></a><h4>Returns</h4>
<p>An icon that should be freed with <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="goa-provider-get-provider-group"></a><h3>goa_provider_get_provider_group ()</h3>
<pre class="programlisting"><a class="link" href="GoaProvider.html#GoaProviderGroup" title="enum GoaProviderGroup"><span class="returnvalue">GoaProviderGroup</span></a>
goa_provider_get_provider_group (<em class="parameter"><code><a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a> *self</code></em>);</pre>
<div class="warning">
<p><code class="literal">goa_provider_get_provider_group</code> has been deprecated since version 3.10 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GoaProvider.html#goa-provider-get-provider-features" title="goa_provider_get_provider_features ()"><code class="function">goa_provider_get_provider_features()</code></a> instead.</p>
</div>
<p>Gets the group to which <em class="parameter"><code>self</code></em>
 belongs that is suitable for
organizing the providers while displaying them in an user
interface.</p>
<p>This is a pure virtual method - a subclass must provide an
implementation.</p>
<div class="refsect3">
<a name="goa-provider-get-provider-group.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="goa-provider-get-provider-group.returns"></a><h4>Returns</h4>
<p> A <a class="link" href="GoaProvider.html#GoaProviderGroup" title="enum GoaProviderGroup"><span class="type">GoaProviderGroup</span></a>.</p>
</div>
<p class="since">Since: 3.8</p>
</div>
<hr>
<div class="refsect2">
<a name="goa-provider-get-provider-features"></a><h3>goa_provider_get_provider_features ()</h3>
<pre class="programlisting"><a class="link" href="GoaProvider.html#GoaProviderFeatures" title="enum GoaProviderFeatures"><span class="returnvalue">GoaProviderFeatures</span></a>
goa_provider_get_provider_features (<em class="parameter"><code><a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a> *self</code></em>);</pre>
<p>Get the features bitmask (eg. <a class="link" href="GoaProvider.html#GOA-PROVIDER-FEATURE-CHAT:CAPS"><code class="literal">GOA_PROVIDER_FEATURE_CHAT</code></a>|<a class="link" href="GoaProvider.html#GOA-PROVIDER-FEATURE-CONTACTS:CAPS"><code class="literal">GOA_PROVIDER_FEATURE_CONTACTS</code></a>)
supported by the provider.</p>
<div class="refsect3">
<a name="goa-provider-get-provider-features.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="goa-provider-get-provider-features.returns"></a><h4>Returns</h4>
<p> The <a class="link" href="GoaProvider.html#GoaProviderFeatures" title="enum GoaProviderFeatures"><span class="type">GoaProviderFeatures</span></a> bitmask with the provided features.</p>
</div>
<p class="since">Since: 3.10</p>
</div>
<hr>
<div class="refsect2">
<a name="goa-provider-build-object"></a><h3>goa_provider_build_object ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
goa_provider_build_object (<em class="parameter"><code><a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a> *self</code></em>,
                           <em class="parameter"><code><a class="link" href="GoaObject.html#GoaObjectSkeleton"><span class="type">GoaObjectSkeleton</span></a> *object</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Key-value-file-parser.html#GKeyFile"><span class="type">GKeyFile</span></a> *key_file</code></em>,
                           <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *group</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gio/GDBusConnection.html#GDBusConnection-struct"><span class="type">GDBusConnection</span></a> *connection</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> just_added</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>This method is called when construction account <a class="link" href="GoaObject.html" title="GoaObject"><span class="type">GoaObject</span></a>
from configuration data - it basically provides a way to add
provider-specific information.</p>
<p>The passed in <em class="parameter"><code>object</code></em>
 will have a <a class="link" href="GoaAccount.html" title="GoaAccount"><span class="type">GoaAccount</span></a> interface
set. Implementations should validate and use data from <em class="parameter"><code>key_file</code></em>
 to
add more interfaces to <em class="parameter"><code>object</code></em>
.</p>
<p>Note that this may be called on already exported objects - for
example on configuration files reload.</p>
<p>This is a pure virtual method - a subclass must provide an
implementation.</p>
<div class="refsect3">
<a name="goa-provider-build-object.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>object</p></td>
<td class="parameter_description"><p>The <a class="link" href="GoaObject.html#GoaObjectSkeleton"><span class="type">GoaObjectSkeleton</span></a> that is being built.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>key_file</p></td>
<td class="parameter_description"><p>The <a href="/usr/share/gtk-doc/html/glib/glib-Key-value-file-parser.html#GKeyFile"><span class="type">GKeyFile</span></a> with configuation data.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>group</p></td>
<td class="parameter_description"><p>The group in <em class="parameter"><code>key_file</code></em>
to get data from.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>connection</p></td>
<td class="parameter_description"><p>The <a href="/usr/share/gtk-doc/html/gio/GDBusConnection.html#GDBusConnection-struct"><span class="type">GDBusConnection</span></a> used by the daemon to connect to the message bus.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>just_added</p></td>
<td class="parameter_description"><p>Whether the account was newly created or being updated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>Return location for error or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="goa-provider-build-object.returns"></a><h4>Returns</h4>
<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if data was valid, <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em>
is set.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="goa-provider-add-account"></a><h3>goa_provider_add_account ()</h3>
<pre class="programlisting"><a class="link" href="GoaObject.html" title="GoaObject"><span class="returnvalue">GoaObject</span></a> *
goa_provider_add_account (<em class="parameter"><code><a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a> *self</code></em>,
                          <em class="parameter"><code><a class="link" href="GoaClient.html" title="GoaClient"><span class="type">GoaClient</span></a> *client</code></em>,
                          <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gtk3/GtkDialog.html#GtkDialog-struct"><span class="type">GtkDialog</span></a> *dialog</code></em>,
                          <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gtk3/GtkBox.html#GtkBox-struct"><span class="type">GtkBox</span></a> *vbox</code></em>,
                          <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>This method brings up the user interface necessary to create a new
account on <em class="parameter"><code>client</code></em>
 of the type for <em class="parameter"><code>self</code></em>
, interacts with the
user to get all information needed and creates the account.</p>
<p>The passed in <em class="parameter"><code>dialog</code></em>
 widget is guaranteed to be visible with <em class="parameter"><code>vbox</code></em>

being empty and the only visible widget in <em class="parameter"><code>dialog</code></em>
's content
area. The dialog has exactly one action widget, a cancel button
with response id GTK_RESPONSE_CANCEL. Implementations are free to
add additional action widgets, as needed.</p>
<p>If an account was successfully created, a <a class="link" href="GoaObject.html" title="GoaObject"><span class="type">GoaObject</span></a> for the
created account is returned. If <em class="parameter"><code>dialog</code></em>
 is dismissed, <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is
returned and <em class="parameter"><code>error</code></em>
 is set to <a class="link" href="goa-GoaError.html#GOA-ERROR-DIALOG-DISMISSED:CAPS"><code class="literal">GOA_ERROR_DIALOG_DISMISSED</code></a>. If an
account couldn't be created then <em class="parameter"><code>error</code></em>
 is set. In some cases,
for example, when the credentials could not be stored in the
keyring, a <a class="link" href="GoaObject.html" title="GoaObject"><span class="type">GoaObject</span></a> can be returned even if <em class="parameter"><code>error</code></em>
 is set.</p>
<p>The caller will always show an error dialog if <em class="parameter"><code>error</code></em>
 is set unless
the error is <a class="link" href="goa-GoaError.html#GOA-ERROR-DIALOG-DISMISSED:CAPS"><code class="literal">GOA_ERROR_DIALOG_DISMISSED</code></a>.</p>
<p>Implementations should run the default main loop while
interacting with the user and may do so using e.g. <a href="/usr/share/gtk-doc/html/gtk3/GtkDialog.html#gtk-dialog-run"><code class="function">gtk_dialog_run()</code></a>
on <em class="parameter"><code>dialog</code></em>
.</p>
<p>This is a pure virtual method - a subclass must provide an
implementation.</p>
<div class="refsect3">
<a name="goa-provider-add-account.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>client</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaClient.html" title="GoaClient"><span class="type">GoaClient</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>dialog</p></td>
<td class="parameter_description"><p>A <a href="/usr/share/gtk-doc/html/gtk3/GtkDialog.html#GtkDialog-struct"><span class="type">GtkDialog</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>vbox</p></td>
<td class="parameter_description"><p>A vertically oriented <a href="/usr/share/gtk-doc/html/gtk3/GtkBox.html#GtkBox-struct"><span class="type">GtkBox</span></a> to put content in.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>Return location for error or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="goa-provider-add-account.returns"></a><h4>Returns</h4>
<p> The <a class="link" href="GoaObject.html" title="GoaObject"><span class="type">GoaObject</span></a> for the created account (must be relased
with <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>) or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>error</code></em>
is set.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="goa-provider-set-preseed-data"></a><h3>goa_provider_set_preseed_data ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
goa_provider_set_preseed_data (<em class="parameter"><code><a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a> *self</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *preseed_data</code></em>);</pre>
<div class="warning">
<p><code class="literal">goa_provider_set_preseed_data</code> has been deprecated since version 3.28 and should not be used in newly-written code.</p>
<p>This function does nothing.</p>
</div>
<p>Sets the <a class="link" href="GoaProvider.html#GoaProvider--preseed-data" title="The “preseed-data” property"><span class="type">“preseed-data”</span></a> property to feed any information already
collected that can be useful when creating a new account.</p>
<p>If the <em class="parameter"><code>preseed_data</code></em>
 <a href="/usr/share/gtk-doc/html/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> is floating, it is consumed to allow
'inline' use of the <a href="/usr/share/gtk-doc/html/glib/glib-GVariant.html#g-variant-new"><code class="function">g_variant_new()</code></a> family of functions.</p>
<div class="refsect3">
<a name="goa-provider-set-preseed-data.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>The <a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>preseed_data</p></td>
<td class="parameter_description"><p>A <a href="/usr/share/gtk-doc/html/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> of type a{sv}</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="goa-provider-get-preseed-data"></a><h3>goa_provider_get_preseed_data ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *
goa_provider_get_preseed_data (<em class="parameter"><code><a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a> *self</code></em>);</pre>
<div class="warning">
<p><code class="literal">goa_provider_get_preseed_data</code> has been deprecated since version 3.28 and should not be used in newly-written code.</p>
<p>This function does nothing.</p>
</div>
<p>Gets the <a href="/usr/share/gtk-doc/html/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> set through the <a class="link" href="GoaProvider.html#GoaProvider--preseed-data" title="The “preseed-data” property"><span class="type">“preseed-data”</span></a> property.</p>
<div class="refsect3">
<a name="goa-provider-get-preseed-data.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>The <a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="goa-provider-get-preseed-data.returns"></a><h4>Returns</h4>
<p>A <a href="/usr/share/gtk-doc/html/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> that is known to be valid until
the property is overridden or the provider freed. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="goa-provider-refresh-account"></a><h3>goa_provider_refresh_account ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
goa_provider_refresh_account (<em class="parameter"><code><a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a> *self</code></em>,
                              <em class="parameter"><code><a class="link" href="GoaClient.html" title="GoaClient"><span class="type">GoaClient</span></a> *client</code></em>,
                              <em class="parameter"><code><a class="link" href="GoaObject.html" title="GoaObject"><span class="type">GoaObject</span></a> *object</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gtk3/GtkWindow.html#GtkWindow-struct"><span class="type">GtkWindow</span></a> *parent</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>This method brings up the user interface necessary for refreshing
the credentials for the account specified by <em class="parameter"><code>object</code></em>
. This
typically involves having the user log in to the account again.</p>
<p>Implementations should use <em class="parameter"><code>parent</code></em>
 (unless <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>) as the transient
parent of any created windows/dialogs.</p>
<p>Implementations should run the default main loop while
interacting with the user.</p>
<p>This is a pure virtual method - a subclass must provide an
implementation.</p>
<div class="refsect3">
<a name="goa-provider-refresh-account.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>client</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaClient.html" title="GoaClient"><span class="type">GoaClient</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>object</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaObject.html" title="GoaObject"><span class="type">GoaObject</span></a> with a <a class="link" href="GoaAccount.html" title="GoaAccount"><span class="type">GoaAccount</span></a> interface.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>parent</p></td>
<td class="parameter_description"><p>Transient parent of dialogs or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>Return location for error or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="goa-provider-refresh-account.returns"></a><h4>Returns</h4>
<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the account has been refreshed, <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em>
is set.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="goa-provider-show-account"></a><h3>goa_provider_show_account ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
goa_provider_show_account (<em class="parameter"><code><a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a> *self</code></em>,
                           <em class="parameter"><code><a class="link" href="GoaClient.html" title="GoaClient"><span class="type">GoaClient</span></a> *client</code></em>,
                           <em class="parameter"><code><a class="link" href="GoaObject.html" title="GoaObject"><span class="type">GoaObject</span></a> *object</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gtk3/GtkBox.html#GtkBox-struct"><span class="type">GtkBox</span></a> *vbox</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gtk3/GtkGrid.html#GtkGrid-struct"><span class="type">GtkGrid</span></a> *dummy1</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gtk3/GtkGrid.html#GtkGrid-struct"><span class="type">GtkGrid</span></a> *dummy2</code></em>);</pre>
<p>Method used to add widgets in the control panel for the account
represented by <em class="parameter"><code>object</code></em>
.</p>
<p>This is a virtual method where the default implementation adds
one GtkSwitch per service supported by the provider (as reported
by <a class="link" href="GoaProvider.html#goa-provider-get-provider-features" title="goa_provider_get_provider_features ()"><code class="function">goa_provider_get_provider_features()</code></a>).</p>
<div class="refsect3">
<a name="goa-provider-show-account.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>client</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaClient.html" title="GoaClient"><span class="type">GoaClient</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>object</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaObject.html" title="GoaObject"><span class="type">GoaObject</span></a> with a <a class="link" href="GoaAccount.html" title="GoaAccount"><span class="type">GoaAccount</span></a> interface.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>vbox</p></td>
<td class="parameter_description"><p>A vertically oriented <a href="/usr/share/gtk-doc/html/gtk3/GtkBox.html#GtkBox-struct"><span class="type">GtkBox</span></a> to put content in.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>grid</p></td>
<td class="parameter_description"><p>A <a href="/usr/share/gtk-doc/html/gtk3/GtkGrid.html#GtkGrid-struct"><span class="type">GtkGrid</span></a> to put content in.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>dummy</p></td>
<td class="parameter_description"><p>Unused.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="goa-provider-ensure-credentials"></a><h3>goa_provider_ensure_credentials ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
goa_provider_ensure_credentials (<em class="parameter"><code><a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a> *self</code></em>,
                                 <em class="parameter"><code><a class="link" href="GoaObject.html" title="GoaObject"><span class="type">GoaObject</span></a> *object</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gio/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gio/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>Ensures that credentials for <em class="parameter"><code>object</code></em>
 are still valid.</p>
<p>When the result is ready, <em class="parameter"><code>callback</code></em>
 will be called in the the <GTKDOCLINK HREF="g-main-context-push-thread-default">thread-default main
loop</GTKDOCLINK> this function was called from. You can then call
<a class="link" href="GoaProvider.html#goa-provider-ensure-credentials-finish" title="goa_provider_ensure_credentials_finish ()"><code class="function">goa_provider_ensure_credentials_finish()</code></a> to get the result
of the operation.</p>
<p>This is a virtual method where the default implementation simply
throws the <a class="link" href="goa-GoaError.html#GOA-ERROR-NOT-SUPPORTED:CAPS"><code class="literal">GOA_ERROR_NOT_SUPPORTED</code></a> error. A subclass may provide
another implementation.</p>
<div class="refsect3">
<a name="goa-provider-ensure-credentials.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>object</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaObject.html" title="GoaObject"><span class="type">GoaObject</span></a> with a <a class="link" href="GoaAccount.html" title="GoaAccount"><span class="type">GoaAccount</span></a> interface.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>A <a href="/usr/share/gtk-doc/html/gio/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>callback</p></td>
<td class="parameter_description"><p>The function to call when the request is satisfied.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>Pointer to pass to <em class="parameter"><code>callback</code></em>
.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="goa-provider-ensure-credentials-finish"></a><h3>goa_provider_ensure_credentials_finish ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
goa_provider_ensure_credentials_finish
                               (<em class="parameter"><code><a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a> *self</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *out_expires_in</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gio/GAsyncResult.html#GAsyncResult-struct"><span class="type">GAsyncResult</span></a> *res</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Finishes an operation started with <a class="link" href="GoaProvider.html#goa-provider-ensure-credentials" title="goa_provider_ensure_credentials ()"><code class="function">goa_provider_ensure_credentials()</code></a>.</p>
<div class="refsect3">
<a name="goa-provider-ensure-credentials-finish.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>out_expires_in</p></td>
<td class="parameter_description"><p>Return location for how long the expired credentials are good for (0 if unknown) or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>res</p></td>
<td class="parameter_description"><p>A <a href="/usr/share/gtk-doc/html/gio/GAsyncResult.html#GAsyncResult-struct"><span class="type">GAsyncResult</span></a> obtained from the <a href="/usr/share/gtk-doc/html/gio/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> passed to <a class="link" href="GoaProvider.html#goa-provider-ensure-credentials" title="goa_provider_ensure_credentials ()"><code class="function">goa_provider_ensure_credentials()</code></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>Return location for error or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="goa-provider-ensure-credentials-finish.returns"></a><h4>Returns</h4>
<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the credentials for the passed <a class="link" href="GoaObject.html" title="GoaObject"><span class="type">GoaObject</span></a> are valid, <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em>
is set.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="goa-provider-ensure-credentials-sync"></a><h3>goa_provider_ensure_credentials_sync ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
goa_provider_ensure_credentials_sync (<em class="parameter"><code><a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a> *self</code></em>,
                                      <em class="parameter"><code><a class="link" href="GoaObject.html" title="GoaObject"><span class="type">GoaObject</span></a> *object</code></em>,
                                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *out_expires_in</code></em>,
                                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gio/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
                                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Like <a class="link" href="GoaProvider.html#goa-provider-ensure-credentials" title="goa_provider_ensure_credentials ()"><code class="function">goa_provider_ensure_credentials()</code></a> but blocks the
calling thread until an answer is received.</p>
<div class="refsect3">
<a name="goa-provider-ensure-credentials-sync.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>object</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaObject.html" title="GoaObject"><span class="type">GoaObject</span></a> with a <a class="link" href="GoaAccount.html" title="GoaAccount"><span class="type">GoaAccount</span></a> interface.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>out_expires_in</p></td>
<td class="parameter_description"><p>Return location for how long the expired credentials are good for (0 if unknown) or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>A <a href="/usr/share/gtk-doc/html/gio/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>Return location for error or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="goa-provider-ensure-credentials-sync.returns"></a><h4>Returns</h4>
<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the credentials for the passed <a class="link" href="GoaObject.html" title="GoaObject"><span class="type">GoaObject</span></a> are valid, <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if <em class="parameter"><code>error</code></em>
is set.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="goa-provider-get-credentials-generation"></a><h3>goa_provider_get_credentials_generation ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
goa_provider_get_credentials_generation
                               (<em class="parameter"><code><a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a> *self</code></em>);</pre>
<p>Gets the generation of credentials being used for the provider.</p>
<p>Implementations should bump this number when changes are introduced
that may render existing credentials unusable.</p>
<p>For example, if an additional scope is requested (e.g. access to
contacts data) while obtaining credentials, then this number needs
to be bumped since existing credentials are not good for the added
scope.</p>
<p>This is a virtual method where the default implementation returns
0.</p>
<div class="refsect3">
<a name="goa-provider-get-credentials-generation.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>A <a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="goa-provider-get-credentials-generation.returns"></a><h4>Returns</h4>
<p> The current generation of credentials.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="goa-provider-get-all"></a><h3>goa_provider_get_all ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
goa_provider_get_all (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gio/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>Creates a list of all the available <a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a> instances.</p>
<p>When the result is ready, <em class="parameter"><code>callback</code></em>
 will be called in the the <GTKDOCLINK HREF="g-main-context-push-thread-default">thread-default main
loop</GTKDOCLINK> this function was called from. You can then call
<code class="function">goa_provider_get_all_finish()</code> to get the result of the operation.</p>
<p>See <a class="link" href="GoaProvider.html#goa-provider-get-for-provider-type" title="goa_provider_get_for_provider_type ()"><code class="function">goa_provider_get_for_provider_type()</code></a> for details on how the providers
are found.</p>
<div class="refsect3">
<a name="goa-provider-get-all.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>callback</p></td>
<td class="parameter_description"><p>The function to call when the request is satisfied.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>Pointer to pass to <em class="parameter"><code>callback</code></em>
.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="goa-provider-get-for-provider-type"></a><h3>goa_provider_get_for_provider_type ()</h3>
<pre class="programlisting"><a class="link" href="GoaProvider.html" title="GoaProvider"><span class="returnvalue">GoaProvider</span></a> *
goa_provider_get_for_provider_type (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *provider_type</code></em>);</pre>
<p>Returns a <a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a> for <em class="parameter"><code>provider_type</code></em>
 (if available).</p>
<p>If <em class="parameter"><code>provider_type</code></em>
 doesn't contain any "/", a
<a class="link" href="GoaProvider.html#GOA-PROVIDER-EXTENSION-POINT-NAME:CAPS" title="GOA_PROVIDER_EXTENSION_POINT_NAME"><code class="literal">GOA_PROVIDER_EXTENSION_POINT_NAME</code></a> extension for <em class="parameter"><code>provider_type</code></em>
 is looked up
and the newly created <a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a>, if any, is returned.</p>
<p>If <em class="parameter"><code>provider_type</code></em>
 contains a "/", a
<code class="literal">GOA_PROVIDER_FACTORY_EXTENSION_POINT_NAME</code> extension for the first part of
<em class="parameter"><code>provider_type</code></em>
 is looked up. If found, the <span class="type">GoaProviderFactory</span> is used
to create a dynamic <a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a> matching the second part of <em class="parameter"><code>provider_type</code></em>
.</p>
<div class="refsect3">
<a name="goa-provider-get-for-provider-type.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>provider_type</p></td>
<td class="parameter_description"><p>A provider type.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="goa-provider-get-for-provider-type.returns"></a><h4>Returns</h4>
<p>A <a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a> (that must be freed
with <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>) or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not found. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
</div>
<div class="refsect1">
<a name="GoaProvider.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GoaProvider-struct"></a><h3>GoaProvider</h3>
<pre class="programlisting">typedef struct _GoaProvider GoaProvider;</pre>
<p>The <a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a> structure contains only private data and should
only be accessed using the provided API.</p>
</div>
<hr>
<div class="refsect2">
<a name="GoaProviderClass"></a><h3>GoaProviderClass</h3>
<pre class="programlisting">typedef struct {
  GObjectClass parent_class;

  /* pure virtual */
  GoaObject              *(*add_account)                  (GoaProvider            *self,
                                                           GoaClient              *client,
                                                           GtkDialog              *dialog,
                                                           GtkBox                 *vbox,
                                                           GError                **error);
  GoaProviderFeatures     (*get_provider_features)        (GoaProvider            *self);
  GoaProviderGroup        (*get_provider_group)           (GoaProvider            *self);
  gchar                  *(*get_provider_name)            (GoaProvider            *self,
                                                           GoaObject              *object);
  const gchar            *(*get_provider_type)            (GoaProvider            *self);
  gboolean                (*refresh_account)              (GoaProvider            *self,
                                                           GoaClient              *client,
                                                           GoaObject              *object,
                                                           GtkWindow              *parent,
                                                           GError                **error);

  /* virtual but with default implementation */
  gboolean                (*build_object)                 (GoaProvider            *self,
                                                           GoaObjectSkeleton      *object,
                                                           GKeyFile               *key_file,
                                                           const gchar            *group,
                                                           GDBusConnection        *connection,
                                                           gboolean                just_added,
                                                           GError                **error);
  gboolean                (*ensure_credentials_sync)      (GoaProvider            *self,
                                                           GoaObject              *object,
                                                           gint                   *out_expires_in,
                                                           GCancellable           *cancellable,
                                                           GError                **error);
  guint                   (*get_credentials_generation)   (GoaProvider            *self);
  GIcon                  *(*get_provider_icon)            (GoaProvider            *self,
                                                           GoaObject              *object);
  void                    (*initialize)                   (GoaProvider            *self);
  void                    (*remove_account)               (GoaProvider            *self,
                                                           GoaObject              *object,
                                                           GCancellable           *cancellable,
                                                           GAsyncReadyCallback     callback,
                                                           gpointer                user_data);
  gboolean                (*remove_account_finish)        (GoaProvider            *self,
                                                           GAsyncResult           *res,
                                                           GError                **error);
  void                    (*show_account)                 (GoaProvider            *self,
                                                           GoaClient              *client,
                                                           GoaObject              *object,
                                                           GtkBox                 *vbox,
                                                           GtkGrid                *dummy1,
                                                           GtkGrid                *dummy2);
} GoaProviderClass;
</pre>
<p>Class structure for <a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a>.</p>
<div class="refsect3">
<a name="GoaProviderClass.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="struct_members_name">
<col class="struct_members_description">
<col width="200px" class="struct_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GoaProviderClass.add-account"></a>add_account</code></em> ()</p></td>
<td class="struct_member_description"><p>Virtual function for <a class="link" href="GoaProvider.html#goa-provider-add-account" title="goa_provider_add_account ()"><code class="function">goa_provider_add_account()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GoaProviderClass.get-provider-features"></a>get_provider_features</code></em> ()</p></td>
<td class="struct_member_description"><p>Virtual function for <a class="link" href="GoaProvider.html#goa-provider-get-provider-features" title="goa_provider_get_provider_features ()"><code class="function">goa_provider_get_provider_features()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GoaProviderClass.get-provider-group"></a>get_provider_group</code></em> ()</p></td>
<td class="struct_member_description"><p>Virtual function for <a class="link" href="GoaProvider.html#goa-provider-get-provider-group" title="goa_provider_get_provider_group ()"><code class="function">goa_provider_get_provider_group()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GoaProviderClass.get-provider-name"></a>get_provider_name</code></em> ()</p></td>
<td class="struct_member_description"><p>Virtual function for <a class="link" href="GoaProvider.html#goa-provider-get-provider-name" title="goa_provider_get_provider_name ()"><code class="function">goa_provider_get_provider_name()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GoaProviderClass.get-provider-type"></a>get_provider_type</code></em> ()</p></td>
<td class="struct_member_description"><p>Virtual function for <a class="link" href="GoaProvider.html#goa-provider-get-provider-type" title="goa_provider_get_provider_type ()"><code class="function">goa_provider_get_provider_type()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GoaProviderClass.refresh-account"></a>refresh_account</code></em> ()</p></td>
<td class="struct_member_description"><p>Virtual function for <a class="link" href="GoaProvider.html#goa-provider-refresh-account" title="goa_provider_refresh_account ()"><code class="function">goa_provider_refresh_account()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GoaProviderClass.build-object"></a>build_object</code></em> ()</p></td>
<td class="struct_member_description"><p>Virtual function for <a class="link" href="GoaProvider.html#goa-provider-build-object" title="goa_provider_build_object ()"><code class="function">goa_provider_build_object()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GoaProviderClass.ensure-credentials-sync"></a>ensure_credentials_sync</code></em> ()</p></td>
<td class="struct_member_description"><p>Virtual function for <a class="link" href="GoaProvider.html#goa-provider-ensure-credentials-sync" title="goa_provider_ensure_credentials_sync ()"><code class="function">goa_provider_ensure_credentials_sync()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GoaProviderClass.get-credentials-generation"></a>get_credentials_generation</code></em> ()</p></td>
<td class="struct_member_description"><p>Virtual function for <a class="link" href="GoaProvider.html#goa-provider-get-credentials-generation" title="goa_provider_get_credentials_generation ()"><code class="function">goa_provider_get_credentials_generation()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GoaProviderClass.get-provider-icon"></a>get_provider_icon</code></em> ()</p></td>
<td class="struct_member_description"><p>Virtual function for <a class="link" href="GoaProvider.html#goa-provider-get-provider-icon" title="goa_provider_get_provider_icon ()"><code class="function">goa_provider_get_provider_icon()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GoaProviderClass.initialize"></a>initialize</code></em> ()</p></td>
<td class="struct_member_description"><p>Virtual function for <code class="function">goa_provider_initialize()</code>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GoaProviderClass.remove-account"></a>remove_account</code></em> ()</p></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GoaProviderClass.remove-account-finish"></a>remove_account_finish</code></em> ()</p></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GoaProviderClass.show-account"></a>show_account</code></em> ()</p></td>
<td class="struct_member_description"><p>Virtual function for <a class="link" href="GoaProvider.html#goa-provider-show-account" title="goa_provider_show_account ()"><code class="function">goa_provider_show_account()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GoaProviderGroup"></a><h3>enum GoaProviderGroup</h3>
<p>An enum for specifying which group a provider belongs to. This is
can be used to organize the providers while displaying them in an
user interface.</p>
<div class="refsect3">
<a name="GoaProviderGroup.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="GOA-PROVIDER-GROUP-BRANDED:CAPS"></a>GOA_PROVIDER_GROUP_BRANDED</p></td>
<td class="enum_member_description">
<p>Providers with a well-known brand. For
  example, Google and Facebook.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GOA-PROVIDER-GROUP-CONTACTS:CAPS"></a>GOA_PROVIDER_GROUP_CONTACTS</p></td>
<td class="enum_member_description">
<p>Providers that offer address book services.
  For example, CardDAV.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GOA-PROVIDER-GROUP-MAIL:CAPS"></a>GOA_PROVIDER_GROUP_MAIL</p></td>
<td class="enum_member_description">
<p>Providers that offer email-like messaging
  services. For example, IMAP and SMTP.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GOA-PROVIDER-GROUP-TICKETING:CAPS"></a>GOA_PROVIDER_GROUP_TICKETING</p></td>
<td class="enum_member_description">
<p>Providers with ticketing
  capabilities. For example, Kerberos.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GOA-PROVIDER-GROUP-CHAT:CAPS"></a>GOA_PROVIDER_GROUP_CHAT</p></td>
<td class="enum_member_description">
<p>Providers that offer chat-like messaging
  capabilities. For example, XMPP, IRC.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GOA-PROVIDER-GROUP-INVALID:CAPS"></a>GOA_PROVIDER_GROUP_INVALID</p></td>
<td class="enum_member_description">
<p>Used for error handling. No provider
  should belong to this group.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GoaProviderFeatures"></a><h3>enum GoaProviderFeatures</h3>
<p>These flags specify the features exported by each provider. They can be
expecially useful to restrict the list of available providers when
requesting the creation of an account for a specific purpose (eg. from a
chat program).</p>
<div class="refsect3">
<a name="GoaProviderFeatures.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="GOA-PROVIDER-FEATURE-BRANDED:CAPS"></a>GOA_PROVIDER_FEATURE_BRANDED</p></td>
<td class="enum_member_description">
<p>Common providers to be highlighted (ie. Google, OwnCloud).</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GOA-PROVIDER-FEATURE-MAIL:CAPS"></a>GOA_PROVIDER_FEATURE_MAIL</p></td>
<td class="enum_member_description">
<p>Mail services (ie. SMTP, IMAP).</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GOA-PROVIDER-FEATURE-CALENDAR:CAPS"></a>GOA_PROVIDER_FEATURE_CALENDAR</p></td>
<td class="enum_member_description">
<p>Calendaring services (ie. CalDAV).</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GOA-PROVIDER-FEATURE-CONTACTS:CAPS"></a>GOA_PROVIDER_FEATURE_CONTACTS</p></td>
<td class="enum_member_description">
<p>Addressbook services (ie. CardDAV).</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GOA-PROVIDER-FEATURE-CHAT:CAPS"></a>GOA_PROVIDER_FEATURE_CHAT</p></td>
<td class="enum_member_description">
<p>Instant messaging services (ie. XMPP, IRC).</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GOA-PROVIDER-FEATURE-DOCUMENTS:CAPS"></a>GOA_PROVIDER_FEATURE_DOCUMENTS</p></td>
<td class="enum_member_description">
<p>Documents storage services (ie. Google Documents).</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GOA-PROVIDER-FEATURE-PHOTOS:CAPS"></a>GOA_PROVIDER_FEATURE_PHOTOS</p></td>
<td class="enum_member_description">
<p>Photos storage services (ie. Flickr).</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GOA-PROVIDER-FEATURE-FILES:CAPS"></a>GOA_PROVIDER_FEATURE_FILES</p></td>
<td class="enum_member_description">
<p>Files storage services (ie. WebDAV).</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GOA-PROVIDER-FEATURE-TICKETING:CAPS"></a>GOA_PROVIDER_FEATURE_TICKETING</p></td>
<td class="enum_member_description">
<p>Ticketing services (ie. Kerberos).</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GOA-PROVIDER-FEATURE-READ-LATER:CAPS"></a>GOA_PROVIDER_FEATURE_READ_LATER</p></td>
<td class="enum_member_description">
<p>Read later services (eg. Pocket).</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GOA-PROVIDER-FEATURE-PRINTERS:CAPS"></a>GOA_PROVIDER_FEATURE_PRINTERS</p></td>
<td class="enum_member_description">
<p>Network printing services (e.g. Google Cloud Print).</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GOA-PROVIDER-FEATURE-MAPS:CAPS"></a>GOA_PROVIDER_FEATURE_MAPS</p></td>
<td class="enum_member_description">
<p>Maps related services (e.g. Foursquare, Facebook).</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GOA-PROVIDER-FEATURE-MUSIC:CAPS"></a>GOA_PROVIDER_FEATURE_MUSIC</p></td>
<td class="enum_member_description">
<p>Music related services (e.g. Vkontakte).</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GOA-PROVIDER-FEATURE-TODO:CAPS"></a>GOA_PROVIDER_FEATURE_TODO</p></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GOA-PROVIDER-FEATURE-INVALID:CAPS"></a>GOA_PROVIDER_FEATURE_INVALID</p></td>
<td class="enum_member_description">
<p>Used for error handling. No provider
  should provide this feature.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 3.10</p>
</div>
<hr>
<div class="refsect2">
<a name="GOA-PROVIDER-EXTENSION-POINT-NAME:CAPS"></a><h3>GOA_PROVIDER_EXTENSION_POINT_NAME</h3>
<pre class="programlisting">#define GOA_PROVIDER_EXTENSION_POINT_NAME "goa-backend-provider"
</pre>
<p>Extension point for <a class="link" href="GoaProvider.html" title="GoaProvider"><span class="type">GoaProvider</span></a> implementations.</p>
</div>
</div>
<div class="refsect1">
<a name="GoaProvider.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="GoaProvider--preseed-data"></a><h3>The <code class="literal">“preseed-data”</code> property</h3>
<pre class="programlisting">  “preseed-data”             <a href="/usr/share/gtk-doc/html/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *</pre>
<p>An <a href="/usr/share/gtk-doc/html/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> of type a{sv} storing any information already collected that
can be useful when creating a new account. For instance, this can be useful
to reuse the HTTP cookies from an existing browser session to skip the
prompt for username and password in the OAuth2-based providers by passing
a <a href="/usr/share/gtk-doc/html/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> with the following contents:</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="cbracket">{</span>
<span class="normal">  </span><span class="string">"cookies"</span><span class="symbol">:</span><span class="normal"> </span><span class="symbol">[</span>
<span class="normal">    </span><span class="cbracket">{</span>
<span class="normal">      </span><span class="string">"domain"</span><span class="symbol">:</span><span class="normal"> </span><span class="string">"example.com"</span><span class="symbol">,</span>
<span class="normal">      </span><span class="string">"name"</span><span class="symbol">:</span><span class="normal"> </span><span class="string">"LSID"</span><span class="symbol">,</span>
<span class="normal">      </span><span class="string">"value"</span><span class="symbol">:</span><span class="normal"> </span><span class="string">"asdfasdfasdf"</span>
<span class="normal">    </span><span class="cbracket">}</span><span class="symbol">,</span>
<span class="normal">    </span><span class="cbracket">{</span>
<span class="normal">      </span><span class="string">"domain"</span><span class="symbol">:</span><span class="normal"> </span><span class="string">"accounts.example.com"</span><span class="symbol">,</span>
<span class="normal">      </span><span class="string">"name"</span><span class="symbol">:</span><span class="normal"> </span><span class="string">"SSID"</span><span class="symbol">,</span>
<span class="normal">      </span><span class="string">"value"</span><span class="symbol">:</span><span class="normal"> </span><span class="string">"asdfasdfasdf"</span>
<span class="normal">    </span><span class="cbracket">}</span>
<span class="normal">  </span><span class="symbol">]</span>
<span class="cbracket">}</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p>Unknown or unsupported keys will be ignored by providers.</p>
<div class="warning">
<p><code class="literal">GoaProvider:preseed-data</code> has been deprecated since version 3.28 and should not be used in newly-written code.</p>
<p>This property does nothing.</p>
</div>
<p>Flags: Read / Write</p>
<p>Allowed values: GVariant&lt;a{sv}&gt;</p>
<p>Default value: NULL</p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.28</div>
</body>
</html>