summaryrefslogtreecommitdiff
path: root/docs/html/GSignondExtension.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/html/GSignondExtension.html')
-rw-r--r--docs/html/GSignondExtension.html298
1 files changed, 298 insertions, 0 deletions
diff --git a/docs/html/GSignondExtension.html b/docs/html/GSignondExtension.html
new file mode 100644
index 0000000..55b6e8a
--- /dev/null
+++ b/docs/html/GSignondExtension.html
@@ -0,0 +1,298 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GSignondExtension</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="gsignond API Reference Manual">
+<link rel="up" href="ch05.html" title="GSignond API for writing platform adaptation extensions">
+<link rel="prev" href="ch05.html" title="GSignond API for writing platform adaptation extensions">
+<link rel="next" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager">
+<meta name="generator" content="GTK-Doc V1.19.1 (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="10"><tr valign="middle">
+<td width="100%" align="left">
+<a href="#" class="shortcut">Top</a>
+  | 
+ <a href="#GSignondExtension.description" class="shortcut">Description</a>
+  | 
+ <a href="#GSignondExtension.object-hierarchy" class="shortcut">Object Hierarchy</a>
+</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="ch05.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="ch05.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="GSignondAccessControlManager.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="GSignondExtension"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="GSignondExtension.top_of_page"></a>GSignondExtension</span></h2>
+<p>GSignondExtension — provides platform adaptation functionality</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="GSignondExtension.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include &lt;gsignond/gsignond-plugin-interface.h&gt;
+
+struct <a class="link" href="GSignondExtension.html#GSignondExtension-struct" title="struct GSignondExtension">GSignondExtension</a>;
+struct <a class="link" href="GSignondExtension.html#GSignondExtensionClass" title="struct GSignondExtensionClass">GSignondExtensionClass</a>;
+<a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="returnvalue">GSignondAccessControlManager</span></a> * <a class="link" href="GSignondExtension.html#gsignond-extension-get-access-control-manager" title="gsignond_extension_get_access_control_manager ()">gsignond_extension_get_access_control_manager</a>
+ (<em class="parameter"><code><a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> *self</code></em>,
+ <em class="parameter"><code><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *config</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="GSignondExtension.html#gsignond-extension-get-name" title="gsignond_extension_get_name ()">gsignond_extension_get_name</a> (<em class="parameter"><code><a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> *self</code></em>);
+<a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="returnvalue">GSignondSecretStorage</span></a> * <a class="link" href="GSignondExtension.html#gsignond-extension-get-secret-storage" title="gsignond_extension_get_secret_storage ()">gsignond_extension_get_secret_storage</a>
+ (<em class="parameter"><code><a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> *self</code></em>,
+ <em class="parameter"><code><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *config</code></em>);
+<a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="returnvalue">GSignondStorageManager</span></a> * <a class="link" href="GSignondExtension.html#gsignond-extension-get-storage-manager" title="gsignond_extension_get_storage_manager ()">gsignond_extension_get_storage_manager</a>
+ (<em class="parameter"><code><a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> *self</code></em>,
+ <em class="parameter"><code><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *config</code></em>);
+<span class="returnvalue">guint32</span> <a class="link" href="GSignondExtension.html#gsignond-extension-get-version" title="gsignond_extension_get_version ()">gsignond_extension_get_version</a> (<em class="parameter"><code><a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> *self</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="GSignondExtension.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+ <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+ +----GSignondExtension
+</pre>
+</div>
+<div class="refsect1">
+<a name="GSignondExtension.description"></a><h2>Description</h2>
+<p>
+<a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> provides access to platform adaptation functionality. It
+contains getter methods for default implementations of <a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a>,
+<a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> and <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a>.
+</p>
+<p>
+gSSO can be adapted to a specific platform environment by implementing a
+custom extension module. The following steps need to be taken:
+</p>
+<p>
+a) subclass and re-implement some (or all) of the functionality of the above
+three classes.
+</p>
+<p>
+b) subclass <a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> and provide implementations of its getter methods for those
+of the adaptation classes that have been changed.
+</p>
+<p>
+d) provide a function <code class="function">GSignondExtension * extensionname_extension_init(void)</code>
+that returns an instance of the <a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> subclass.
+</p>
+<p>
+c) build and install these implementations as a gSSO extension module and
+configure gSSO to use it.
+</p>
+<p>
+Examples of custom extensions can be seen here:
+<a class="ulink" href="https://code.google.com/p/accounts-sso/source/browse/?repo=gsignond#git%2Fsrc%2Fextensions" target="_top">
+https://code.google.com/p/accounts-sso/source/browse/?repo=gsignond#git%2Fsrc%2Fextensions</a>
+and gSSO configuration is described in <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a>.
+</p>
+</div>
+<div class="refsect1">
+<a name="GSignondExtension.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GSignondExtension-struct"></a><h3>struct GSignondExtension</h3>
+<pre class="programlisting">struct GSignondExtension;</pre>
+<p>
+Opaque <a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> data structure.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GSignondExtensionClass"></a><h3>struct GSignondExtensionClass</h3>
+<pre class="programlisting">struct GSignondExtensionClass {
+ GObjectClass parent_class;
+
+ const gchar * (*get_extension_name) (GSignondExtension *self);
+
+ guint32 (*get_extension_version) (GSignondExtension *self);
+
+ GSignondStorageManager * (*get_storage_manager) (GSignondExtension *self,
+ GSignondConfig *config);
+
+ GSignondSecretStorage * (*get_secret_storage) (GSignondExtension *self,
+ GSignondConfig *config);
+
+ GSignondAccessControlManager * (*get_access_control_manager) (
+ GSignondExtension *self,
+ GSignondConfig *config);
+};
+</pre>
+<p>
+<a class="link" href="GSignondExtension.html#GSignondExtensionClass" title="struct GSignondExtensionClass"><span class="type">GSignondExtensionClass</span></a> class containing pointers to class methods.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a> <em class="structfield"><code><a name="GSignondExtensionClass.parent-class"></a>parent_class</code></em>;</span></p></td>
+<td>the parent class</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GSignondExtensionClass.get-extension-name"></a>get_extension_name</code></em> ()</span></p></td>
+<td>implementation of <a class="link" href="GSignondExtension.html#gsignond-extension-get-name" title="gsignond_extension_get_name ()"><code class="function">gsignond_extension_get_name()</code></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GSignondExtensionClass.get-extension-version"></a>get_extension_version</code></em> ()</span></p></td>
+<td>implementation of <a class="link" href="GSignondExtension.html#gsignond-extension-get-version" title="gsignond_extension_get_version ()"><code class="function">gsignond_extension_get_version()</code></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GSignondExtensionClass.get-storage-manager"></a>get_storage_manager</code></em> ()</span></p></td>
+<td>implementation of <a class="link" href="GSignondExtension.html#gsignond-extension-get-storage-manager" title="gsignond_extension_get_storage_manager ()"><code class="function">gsignond_extension_get_storage_manager()</code></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GSignondExtensionClass.get-secret-storage"></a>get_secret_storage</code></em> ()</span></p></td>
+<td>implementation of <a class="link" href="GSignondExtension.html#gsignond-extension-get-secret-storage" title="gsignond_extension_get_secret_storage ()"><code class="function">gsignond_extension_get_secret_storage()</code></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GSignondExtensionClass.get-access-control-manager"></a>get_access_control_manager</code></em> ()</span></p></td>
+<td>implementation of <a class="link" href="GSignondExtension.html#gsignond-extension-get-access-control-manager" title="gsignond_extension_get_access_control_manager ()"><code class="function">gsignond_extension_get_access_control_manager()</code></a>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-extension-get-access-control-manager"></a><h3>gsignond_extension_get_access_control_manager ()</h3>
+<pre class="programlisting"><a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="returnvalue">GSignondAccessControlManager</span></a> * gsignond_extension_get_access_control_manager
+ (<em class="parameter"><code><a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> *self</code></em>,
+ <em class="parameter"><code><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *config</code></em>);</pre>
+<p>
+Factory method to get a singleton access control manager object. See
+<a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager"><span class="type">GSignondAccessControlManager</span></a> for the description of the default implementation.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>object instance.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>configuration object instance.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>access control manager object instance. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-extension-get-name"></a><h3>gsignond_extension_get_name ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gsignond_extension_get_name (<em class="parameter"><code><a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> *self</code></em>);</pre>
+<p>
+Get a human readable name of the extension. Default implementation
+returns "default".
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>object instance.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>name of the extension. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-extension-get-secret-storage"></a><h3>gsignond_extension_get_secret_storage ()</h3>
+<pre class="programlisting"><a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="returnvalue">GSignondSecretStorage</span></a> * gsignond_extension_get_secret_storage
+ (<em class="parameter"><code><a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> *self</code></em>,
+ <em class="parameter"><code><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *config</code></em>);</pre>
+<p>
+Factory method to get a singleton secret storage object. See
+<a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a> for the description of the default implementation.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>object instance.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>configuration object instance.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>secret storage object instance. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-extension-get-storage-manager"></a><h3>gsignond_extension_get_storage_manager ()</h3>
+<pre class="programlisting"><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="returnvalue">GSignondStorageManager</span></a> * gsignond_extension_get_storage_manager
+ (<em class="parameter"><code><a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> *self</code></em>,
+ <em class="parameter"><code><a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a> *config</code></em>);</pre>
+<p>
+Factory method to get a singleton storage manager object. See
+<a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> for the description of the default implementation.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>object instance.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>configuration object instance.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>storage manager object instance. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gsignond-extension-get-version"></a><h3>gsignond_extension_get_version ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint32</span> gsignond_extension_get_version (<em class="parameter"><code><a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> *self</code></em>);</pre>
+<p>
+Get version of the extension, split into four bytes in order from MSB to LSB;
+major, minor, patchlevel, build. Default implementation returns 0.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td>object instance.</td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.19.1</div>
+</body>
+</html> \ No newline at end of file