<refentry id="libnetdude-libnd-protocol-plugin">
<refmeta>
<refentrytitle id="top_of_page">libnd_protocol_plugin</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>LIBNETDUDE Library</refmiscinfo>
</refmeta>

<refnamediv>
<refname>libnd_protocol_plugin</refname>
<refpurpose></refpurpose>
<!--[<xref linkend="desc" endterm="desc.title"/>]-->
</refnamediv>

<refsynopsisdiv id="synopsis">
<title id="synopsis.title">Synopsis</title>

<synopsis>



<link linkend="void">void</link>        (<link linkend="LND-ProtoPluginFunc">*LND_ProtoPluginFunc</link>)          (<link linkend="LND-ProtoPlugin">LND_ProtoPlugin</link> *plugin,
                                             <link linkend="void">void</link> *user_data);
<link linkend="void">void</link>        <link linkend="libnd-proto-plugin-init">libnd_proto_plugin_init</link>         (void);
const <link linkend="char">char</link>* <link linkend="libnd-proto-plugin-get-name">libnd_proto_plugin_get_name</link>     (<link linkend="LND-ProtoPlugin">LND_ProtoPlugin</link> *pp);
const <link linkend="char">char</link>* <link linkend="libnd-proto-plugin-get-description">libnd_proto_plugin_get_description</link>
                                            (<link linkend="LND-ProtoPlugin">LND_ProtoPlugin</link> *pp);
const <link linkend="char">char</link>* <link linkend="libnd-proto-plugin-get-version">libnd_proto_plugin_get_version</link>  (<link linkend="LND-ProtoPlugin">LND_ProtoPlugin</link> *pp);
const <link linkend="char">char</link>* <link linkend="libnd-proto-plugin-get-author">libnd_proto_plugin_get_author</link>   (<link linkend="LND-ProtoPlugin">LND_ProtoPlugin</link> *pp);
<link linkend="void">void</link>        <link linkend="libnd-proto-plugin-foreach">libnd_proto_plugin_foreach</link>      (<link linkend="LND-ProtoPluginFunc">LND_ProtoPluginFunc</link> callback,
                                             <link linkend="void">void</link> *user_data);
</synopsis>
</refsynopsisdiv>









<refsect1 id="desc">
<title id="desc.title">Description</title>
<para>

</para>
</refsect1>

<refsect1 id="details">
<title id="details.title">Details</title>
<refsect2>
<title><anchor id="LND-ProtoPluginFunc" role="function">LND_ProtoPluginFunc ()</title>
<indexterm><primary>LND_ProtoPluginFunc</primary></indexterm><programlisting><link linkend="void">void</link>        (*LND_ProtoPluginFunc)          (<link linkend="LND-ProtoPlugin">LND_ProtoPlugin</link> *plugin,
                                             <link linkend="void">void</link> *user_data);</programlisting>
<para>
This is the signature of functions that can be passed to
<link linkend="libnd-plugin-foreach"><function>libnd_plugin_foreach()</function></link>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>plugin</parameter>&nbsp;:</term>
<listitem><simpara> iterated plugin.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>user_data</parameter>&nbsp;:</term>
<listitem><simpara> arbitrary user data.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="libnd-proto-plugin-init" role="function">libnd_proto_plugin_init ()</title>
<indexterm><primary>libnd_proto_plugin_init</primary></indexterm><programlisting><link linkend="void">void</link>        libnd_proto_plugin_init         (void);</programlisting>
<para>
The function scans the plugin directories, reads in the
plugins it finds and hooks them into the main window
and the plugin registry.</para>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="libnd-proto-plugin-get-name" role="function">libnd_proto_plugin_get_name ()</title>
<indexterm><primary>libnd_proto_plugin_get_name</primary></indexterm><programlisting>const <link linkend="char">char</link>* libnd_proto_plugin_get_name     (<link linkend="LND-ProtoPlugin">LND_ProtoPlugin</link> *pp);</programlisting>
<para>
The function returns a pointer to statically allocated memory
containing a string with the plugin's name.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>pp</parameter>&nbsp;:</term>
<listitem><simpara> plugin to query.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> name of the protocol plugin.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="libnd-proto-plugin-get-description" role="function">libnd_proto_plugin_get_description ()</title>
<indexterm><primary>libnd_proto_plugin_get_description</primary></indexterm><programlisting>const <link linkend="char">char</link>* libnd_proto_plugin_get_description
                                            (<link linkend="LND-ProtoPlugin">LND_ProtoPlugin</link> *pp);</programlisting>
<para>
The function returns a pointer to statically allocated memory
containing a string describing the plugin.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>pp</parameter>&nbsp;:</term>
<listitem><simpara> plugin to query.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> description string.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="libnd-proto-plugin-get-version" role="function">libnd_proto_plugin_get_version ()</title>
<indexterm><primary>libnd_proto_plugin_get_version</primary></indexterm><programlisting>const <link linkend="char">char</link>* libnd_proto_plugin_get_version  (<link linkend="LND-ProtoPlugin">LND_ProtoPlugin</link> *pp);</programlisting>
<para>
The function returns a pointer to statically allocated memory
containing a string describing the plugin version.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>pp</parameter>&nbsp;:</term>
<listitem><simpara> plugin to query.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> version string.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="libnd-proto-plugin-get-author" role="function">libnd_proto_plugin_get_author ()</title>
<indexterm><primary>libnd_proto_plugin_get_author</primary></indexterm><programlisting>const <link linkend="char">char</link>* libnd_proto_plugin_get_author   (<link linkend="LND-ProtoPlugin">LND_ProtoPlugin</link> *pp);</programlisting>
<para>
The function returns a pointer to statically allocated memory
containing a string with the author's name.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>pp</parameter>&nbsp;:</term>
<listitem><simpara> plugin to query.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> author name string.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="libnd-proto-plugin-foreach" role="function">libnd_proto_plugin_foreach ()</title>
<indexterm><primary>libnd_proto_plugin_foreach</primary></indexterm><programlisting><link linkend="void">void</link>        libnd_proto_plugin_foreach      (<link linkend="LND-ProtoPluginFunc">LND_ProtoPluginFunc</link> callback,
                                             <link linkend="void">void</link> *user_data);</programlisting>
<para>
The function iterates over the registered protocol plugins and applies
a callback function to each of them.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>callback</parameter>&nbsp;:</term>
<listitem><simpara> callback to call for each protocol plugin.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>user_data</parameter>&nbsp;:</term>
<listitem><simpara> arbitrary user data passed through to <parameter>callback</parameter>.
</simpara></listitem></varlistentry>
</variablelist></refsect2>

</refsect1>




</refentry>
