<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>FsPlugin: Farstream Reference Manual</title> <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"> <link rel="home" href="index.html" title="Farstream Reference Manual"> <link rel="up" href="ch05.html" title="Farstream Plugins Infrastructure"> <link rel="prev" href="ch05.html" title="Farstream Plugins Infrastructure"> <meta name="generator" content="GTK-Doc V1.32 (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="#farstream-libs-FsPlugin.description" class="shortcut">Description</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="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><img src="right-insensitive.png" width="16" height="16" border="0"></td> </tr></table> <div class="refentry"> <a name="farstream-libs-FsPlugin"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2><span class="refentrytitle"><a name="farstream-libs-FsPlugin.top_of_page"></a>FsPlugin</span></h2> <p>FsPlugin — A class for defining Farstream plugins</p> </td> <td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="farstream-libs-FsPlugin.functions"></a><h2>Functions</h2> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="functions_proto_type"> <col class="functions_proto_name"> </colgroup> <tbody> <tr> <td class="function_type"> <span class="returnvalue">GObject</span> * </td> <td class="function_name"> <a class="link" href="farstream-libs-FsPlugin.html#fs-plugin-create-valist" title="fs_plugin_create_valist ()">fs_plugin_create_valist</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <span class="returnvalue">GObject</span> * </td> <td class="function_name"> <a class="link" href="farstream-libs-FsPlugin.html#fs-plugin-create" title="fs_plugin_create ()">fs_plugin_create</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"> <a class="link" href="farstream-libs-FsPlugin.html#FS-INIT-PLUGIN:CAPS" title="FS_INIT_PLUGIN()">FS_INIT_PLUGIN</a><span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <span class="returnvalue">gchar</span> ** </td> <td class="function_name"> <a class="link" href="farstream-libs-FsPlugin.html#fs-plugin-list-available" title="fs_plugin_list_available ()">fs_plugin_list_available</a> <span class="c_punctuation">()</span> </td> </tr> </tbody> </table></div> </div> <div class="refsect1"> <a name="farstream-libs-FsPlugin.other"></a><h2>Types and Values</h2> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="other_proto_type"> <col class="other_proto_name"> </colgroup> <tbody><tr> <td class="datatype_keyword">struct</td> <td class="function_name"><a class="link" href="farstream-libs-FsPlugin.html#FsPlugin" title="struct FsPlugin">FsPlugin</a></td> </tr></tbody> </table></div> </div> <div class="refsect1"> <a name="farstream-libs-FsPlugin.includes"></a><h2>Includes</h2> <pre class="synopsis">#include <farstream/fs-plugin.h> </pre> </div> <div class="refsect1"> <a name="farstream-libs-FsPlugin.description"></a><h2>Description</h2> <p>This class is a generic class to load GType plugins based on their name. With this simple class, you can only have one type per plugin.</p> </div> <div class="refsect1"> <a name="farstream-libs-FsPlugin.functions_details"></a><h2>Functions</h2> <div class="refsect2"> <a name="fs-plugin-create-valist"></a><h3>fs_plugin_create_valist ()</h3> <pre class="programlisting"><span class="returnvalue">GObject</span> * fs_plugin_create_valist (<em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>, <em class="parameter"><code>const <span class="type">gchar</span> *type_suffix</code></em>, <em class="parameter"><code><span class="type">GError</span> **error</code></em>, <em class="parameter"><code>const <span class="type">gchar</span> *first_property_name</code></em>, <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre> <p>Loads the appropriate plugin if necessary and creates a GObject of the requested type</p> <div class="refsect3"> <a name="fs-plugin-create-valist.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>name</p></td> <td class="parameter_description"><p>The name of the plugin to load</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>type_suffix</p></td> <td class="parameter_description"><p>The type of plugin to load (normally "transmitter")</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>error</p></td> <td class="parameter_description"><p>location of a <span class="type">GError</span>, or NULL if no error occured</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>first_property_name</p></td> <td class="parameter_description"><p>The name of the first property to be set on the object</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>var_args</p></td> <td class="parameter_description"><p>The rest of the arguments</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="fs-plugin-create-valist.returns"></a><h4>Returns</h4> <p>The object created (or NULL if there is an error). </p> <p><span class="annotation">[<a href="http://foldoc.org/transfer%20full"><span class="acronym">transfer full</span></a>]</span></p> </div> </div> <hr> <div class="refsect2"> <a name="fs-plugin-create"></a><h3>fs_plugin_create ()</h3> <pre class="programlisting"><span class="returnvalue">GObject</span> * fs_plugin_create (<em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>, <em class="parameter"><code>const <span class="type">gchar</span> *type_suffix</code></em>, <em class="parameter"><code><span class="type">GError</span> **error</code></em>, <em class="parameter"><code>const <span class="type">gchar</span> *first_property_name</code></em>, <em class="parameter"><code>...</code></em>);</pre> <p>Loads the appropriate plugin if necessary and creates a GObject of the requested type</p> <div class="refsect3"> <a name="fs-plugin-create.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>name</p></td> <td class="parameter_description"><p>The name of the plugin to load</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>type_suffix</p></td> <td class="parameter_description"><p>The type of plugin to load (normally "transmitter")</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>error</p></td> <td class="parameter_description"><p>location of a <span class="type">GError</span>, or NULL if no error occured</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>first_property_name</p></td> <td class="parameter_description"><p>The name of the first property to be set on the object</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>...</p></td> <td class="parameter_description"><p>The NULL-terminated list of properties to set on the transmitter</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="fs-plugin-create.returns"></a><h4>Returns</h4> <p>The object created (or NULL if there is an error). </p> <p><span class="annotation">[<a href="http://foldoc.org/transfer%20full"><span class="acronym">transfer full</span></a>]</span></p> </div> </div> <hr> <div class="refsect2"> <a name="FS-INIT-PLUGIN:CAPS"></a><h3>FS_INIT_PLUGIN()</h3> <pre class="programlisting">#define FS_INIT_PLUGIN(name,type)</pre> <p>This macro is used to declare Farstream plugins and must be used once in any farstream plugin.</p> <div class="refsect3"> <a name="FS-INIT-PLUGIN.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>type_register_func</p></td> <td class="parameter_description"><p>A function that register a <span class="type">GType</span> and returns it</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="fs-plugin-list-available"></a><h3>fs_plugin_list_available ()</h3> <pre class="programlisting"><span class="returnvalue">gchar</span> ** fs_plugin_list_available (<em class="parameter"><code>const <span class="type">gchar</span> *type_suffix</code></em>);</pre> <p>Gets the list of all available plugins of a certain type</p> <div class="refsect3"> <a name="fs-plugin-list-available.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>type_suffix</p></td> <td class="parameter_description"><p>Get list of plugins with this type suffix</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="fs-plugin-list-available.returns"></a><h4>Returns</h4> <p>a newly allocated NULL terminated array of strings or <a href="../liboil/liboil-liboiljunk.html#NULL--CAPS"><code class="literal">NULL</code></a> if no strings were found. It should be freed with <code class="function">g_strfreev()</code>. </p> <p><span class="annotation">[<a href="http://foldoc.org/transfer%20full"><span class="acronym">transfer full</span></a>]</span></p> </div> </div> </div> <div class="refsect1"> <a name="farstream-libs-FsPlugin.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="FsPlugin"></a><h3>struct FsPlugin</h3> <pre class="programlisting">struct FsPlugin { GTypeModule parent; }; </pre> <p>This structure represents a plugin, it is opaque.</p> <div class="refsect3"> <a name="FsPlugin.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><span class="type">GTypeModule</span> <em class="structfield"><code><a name="FsPlugin.parent"></a>parent</code></em>;</p></td> <td class="struct_member_description"><p>the parent object</p></td> <td class="struct_member_annotations"> </td> </tr></tbody> </table></div> </div> </div> </div> </div> <div class="footer"> <hr>Generated by GTK-Doc V1.32</div> </body> </html>