<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
               "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
<!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
<!ENTITY version SYSTEM "version.xml">
<!ENTITY pi "&#960;">
<!ENTITY solidus "&#8260;">
]>
<refentry id="GtkSortListModel">
<refmeta>
<refentrytitle role="top_of_page" id="GtkSortListModel.top_of_page">GtkSortListModel</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>GTK4 Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>GtkSortListModel</refname>
<refpurpose>A list model that sorts its items</refpurpose>
</refnamediv>

<refsect1 id="GtkSortListModel.functions" role="functions_proto">
<title role="functions_proto.title">Functions</title>
<informaltable pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="functions_proto_type" colwidth="150px"/>
<colspec colname="functions_proto_name"/>
<tbody>
<row><entry role="function_type"><link linkend="GtkSortListModel"><returnvalue>GtkSortListModel</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gtk-sort-list-model-new">gtk_sort_list_model_new</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-sort-list-model-set-sorter">gtk_sort_list_model_set_sorter</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GtkSorter"><returnvalue>GtkSorter</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gtk-sort-list-model-get-sorter">gtk_sort_list_model_get_sorter</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-sort-list-model-set-model">gtk_sort_list_model_set_model</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GListModel"><returnvalue>GListModel</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gtk-sort-list-model-get-model">gtk_sort_list_model_get_model</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-sort-list-model-set-incremental">gtk_sort_list_model_set_incremental</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-sort-list-model-get-incremental">gtk_sort_list_model_get_incremental</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="guint"><returnvalue>guint</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-sort-list-model-get-pending">gtk_sort_list_model_get_pending</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="GtkSortListModel.properties" role="properties">
<title role="properties.title">Properties</title>
<informaltable frame="none">
<tgroup cols="3">
<colspec colname="properties_type" colwidth="150px"/>
<colspec colname="properties_name" colwidth="300px"/>
<colspec colname="properties_flags" colwidth="200px"/>
<tbody>
<row><entry role="property_type"><link linkend="gboolean"><type>gboolean</type></link></entry><entry role="property_name"><link linkend="GtkSortListModel--incremental">incremental</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="GListModel"><type>GListModel</type></link>&#160;*</entry><entry role="property_name"><link linkend="GtkSortListModel--model">model</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="guint"><type>guint</type></link></entry><entry role="property_name"><link linkend="GtkSortListModel--pending">pending</link></entry><entry role="property_flags">Read</entry></row>
<row><entry role="property_type"><link linkend="GtkSorter"><type>GtkSorter</type></link>&#160;*</entry><entry role="property_name"><link linkend="GtkSortListModel--sorter">sorter</link></entry><entry role="property_flags">Read / Write</entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="GtkSortListModel.other" role="other_proto">
<title role="other_proto.title">Types and Values</title>
<informaltable pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="other_proto_type" colwidth="150px"/>
<colspec colname="other_proto_name"/>
<tbody>
<row><entry role="datatype_keyword"></entry><entry role="function_name"><link linkend="GtkSortListModel-struct">GtkSortListModel</link></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="GtkSortListModel.object-hierarchy" role="object_hierarchy">
<title role="object_hierarchy.title">Object Hierarchy</title>
<screen>    <link linkend="GObject">GObject</link>
    <phrase role="lineart">&#9584;&#9472;&#9472;</phrase> GtkSortListModel
</screen>
</refsect1>
<refsect1 id="GtkSortListModel.implemented-interfaces" role="impl_interfaces">
<title role="impl_interfaces.title">Implemented Interfaces</title>
<para>
GtkSortListModel implements
 <link linkend="GListModel">GListModel</link>.</para>

</refsect1>

<refsect1 id="GtkSortListModel.includes"><title>Includes</title><synopsis>#include &lt;gtk/gtk.h&gt;
</synopsis></refsect1>

<refsect1 id="GtkSortListModel.description" role="desc">
<title role="desc.title">Description</title>
<para><link linkend="GtkSortListModel"><type>GtkSortListModel</type></link> is a list model that takes a list model and
sorts its elements according to a <link linkend="GtkSorter"><type>GtkSorter</type></link>.</para>
<para>The model can be set up to do incremental sorting, so that
sorting long lists doesn't block the UI. See
<link linkend="gtk-sort-list-model-set-incremental"><function>gtk_sort_list_model_set_incremental()</function></link> for details.</para>
<para><link linkend="GtkSortListModel"><type>GtkSortListModel</type></link> is a generic model and because of that it
cannot take advantage of any external knowledge when sorting.
If you run into performance issues with <link linkend="GtkSortListModel"><type>GtkSortListModel</type></link>, it
is strongly recommended that you write your own sorting list
model.</para>

</refsect1>
<refsect1 id="GtkSortListModel.functions_details" role="details">
<title role="details.title">Functions</title>
<refsect2 id="gtk-sort-list-model-new" role="function">
<title>gtk_sort_list_model_new&#160;()</title>
<indexterm zone="gtk-sort-list-model-new"><primary>gtk_sort_list_model_new</primary></indexterm>
<programlisting language="C"><link linkend="GtkSortListModel"><returnvalue>GtkSortListModel</returnvalue></link>&#160;*
gtk_sort_list_model_new (<parameter><link linkend="GListModel"><type>GListModel</type></link> *model</parameter>,
                         <parameter><link linkend="GtkSorter"><type>GtkSorter</type></link> *sorter</parameter>);</programlisting>
<para>Creates a new sort list model that uses the <parameter>sorter</parameter>
 to sort <parameter>model</parameter>
.</para>
<refsect3 id="gtk-sort-list-model-new.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>model</para></entry>
<entry role="parameter_description"><para>the model to sort, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>allow-none</acronym>][<acronym>transfer full</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>sorter</para></entry>
<entry role="parameter_description"><para>the <link linkend="GtkSorter"><type>GtkSorter</type></link> to sort <parameter>model</parameter>
with, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>allow-none</acronym>][<acronym>transfer full</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-sort-list-model-new.returns" role="returns">
<title>Returns</title>
<para> a new <link linkend="GtkSortListModel"><type>GtkSortListModel</type></link></para>
</refsect3></refsect2>
<refsect2 id="gtk-sort-list-model-set-sorter" role="function">
<title>gtk_sort_list_model_set_sorter&#160;()</title>
<indexterm zone="gtk-sort-list-model-set-sorter"><primary>gtk_sort_list_model_set_sorter</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_sort_list_model_set_sorter (<parameter><link linkend="GtkSortListModel"><type>GtkSortListModel</type></link> *self</parameter>,
                                <parameter><link linkend="GtkSorter"><type>GtkSorter</type></link> *sorter</parameter>);</programlisting>
<para>Sets a new sorter on <parameter>self</parameter>
.</para>
<refsect3 id="gtk-sort-list-model-set-sorter.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSortListModel"><type>GtkSortListModel</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>sorter</para></entry>
<entry role="parameter_description"><para>the <link linkend="GtkSorter"><type>GtkSorter</type></link> to sort <parameter>model</parameter>
with. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>allow-none</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-sort-list-model-get-sorter" role="function">
<title>gtk_sort_list_model_get_sorter&#160;()</title>
<indexterm zone="gtk-sort-list-model-get-sorter"><primary>gtk_sort_list_model_get_sorter</primary></indexterm>
<programlisting language="C"><link linkend="GtkSorter"><returnvalue>GtkSorter</returnvalue></link>&#160;*
gtk_sort_list_model_get_sorter (<parameter><link linkend="GtkSortListModel"><type>GtkSortListModel</type></link> *self</parameter>);</programlisting>
<para>Gets the sorter that is used to sort <parameter>self</parameter>
.</para>
<refsect3 id="gtk-sort-list-model-get-sorter.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSortListModel"><type>GtkSortListModel</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-sort-list-model-get-sorter.returns" role="returns">
<title>Returns</title>
<para>the sorter of <link linkend="self"><type>self</type></link>. </para>
<para><emphasis role="annotation">[<acronym>nullable</acronym>][<acronym>transfer none</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gtk-sort-list-model-set-model" role="function">
<title>gtk_sort_list_model_set_model&#160;()</title>
<indexterm zone="gtk-sort-list-model-set-model"><primary>gtk_sort_list_model_set_model</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_sort_list_model_set_model (<parameter><link linkend="GtkSortListModel"><type>GtkSortListModel</type></link> *self</parameter>,
                               <parameter><link linkend="GListModel"><type>GListModel</type></link> *model</parameter>);</programlisting>
<para>Sets the model to be sorted. The <parameter>model</parameter>
's item type must conform to
the item type of <parameter>self</parameter>
.</para>
<refsect3 id="gtk-sort-list-model-set-model.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSortListModel"><type>GtkSortListModel</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>model</para></entry>
<entry role="parameter_description"><para>The model to be sorted. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>allow-none</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-sort-list-model-get-model" role="function">
<title>gtk_sort_list_model_get_model&#160;()</title>
<indexterm zone="gtk-sort-list-model-get-model"><primary>gtk_sort_list_model_get_model</primary></indexterm>
<programlisting language="C"><link linkend="GListModel"><returnvalue>GListModel</returnvalue></link>&#160;*
gtk_sort_list_model_get_model (<parameter><link linkend="GtkSortListModel"><type>GtkSortListModel</type></link> *self</parameter>);</programlisting>
<para>Gets the model currently sorted or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if none.</para>
<refsect3 id="gtk-sort-list-model-get-model.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSortListModel"><type>GtkSortListModel</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-sort-list-model-get-model.returns" role="returns">
<title>Returns</title>
<para>The model that gets sorted. </para>
<para><emphasis role="annotation">[<acronym>nullable</acronym>][<acronym>transfer none</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gtk-sort-list-model-set-incremental" role="function">
<title>gtk_sort_list_model_set_incremental&#160;()</title>
<indexterm zone="gtk-sort-list-model-set-incremental"><primary>gtk_sort_list_model_set_incremental</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_sort_list_model_set_incremental (<parameter><link linkend="GtkSortListModel"><type>GtkSortListModel</type></link> *self</parameter>,
                                     <parameter><link linkend="gboolean"><type>gboolean</type></link> incremental</parameter>);</programlisting>
<para>Sets the sort model to do an incremental sort.</para>
<para>When incremental sorting is enabled, the sortlistmodel will not do
a complete sort immediately, but will instead queue an idle handler that
incrementally sorts the items towards their correct position. This of
course means that items do not instantly appear in the right place. It
also means that the total sorting time is a lot slower.</para>
<para>When your filter blocks the UI while sorting, you might consider
turning this on. Depending on your model and sorters, this may become
interesting around 10,000 to 100,000 items.</para>
<para>By default, incremental sorting is disabled.</para>
<para>See <link linkend="gtk-sort-list-model-get-pending"><function>gtk_sort_list_model_get_pending()</function></link> for progress information
about an ongoing incremental sorting operation.</para>
<refsect3 id="gtk-sort-list-model-set-incremental.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSortListModel"><type>GtkSortListModel</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>incremental</para></entry>
<entry role="parameter_description"><para><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> to sort incrementally</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-sort-list-model-get-incremental" role="function">
<title>gtk_sort_list_model_get_incremental&#160;()</title>
<indexterm zone="gtk-sort-list-model-get-incremental"><primary>gtk_sort_list_model_get_incremental</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gtk_sort_list_model_get_incremental (<parameter><link linkend="GtkSortListModel"><type>GtkSortListModel</type></link> *self</parameter>);</programlisting>
<para>Returns whether incremental sorting was enabled via
<link linkend="gtk-sort-list-model-set-incremental"><function>gtk_sort_list_model_set_incremental()</function></link>.</para>
<refsect3 id="gtk-sort-list-model-get-incremental.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSortListModel"><type>GtkSortListModel</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-sort-list-model-get-incremental.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if incremental sorting is enabled</para>
</refsect3></refsect2>
<refsect2 id="gtk-sort-list-model-get-pending" role="function">
<title>gtk_sort_list_model_get_pending&#160;()</title>
<indexterm zone="gtk-sort-list-model-get-pending"><primary>gtk_sort_list_model_get_pending</primary></indexterm>
<programlisting language="C"><link linkend="guint"><returnvalue>guint</returnvalue></link>
gtk_sort_list_model_get_pending (<parameter><link linkend="GtkSortListModel"><type>GtkSortListModel</type></link> *self</parameter>);</programlisting>
<para>Estimates progress of an ongoing sorting operation</para>
<para>The estimate is the number of items that would still need to be
sorted to finish the sorting operation if this was a linear
algorithm. So this number is not related to how many items are
already correctly sorted.</para>
<para>If you want to estimate the progress, you can use code like this:</para>
<informalexample><programlisting role="example"><![CDATA[
  pending = gtk_sort_list_model_get_pending (self);
  model = gtk_sort_list_model_get_model (self);
  progress = 1.0 - pending / (double) MAX (1, g_list_model_get_n_items (model));
]]></programlisting></informalexample>
<para></para>
<para>If no sort operation is ongoing - in particular when
<link linkend="GtkSortListModel--incremental"><type>“incremental”</type></link> is <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> - this function returns 0.</para>
<refsect3 id="gtk-sort-list-model-get-pending.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSortListModel"><type>GtkSortListModel</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-sort-list-model-get-pending.returns" role="returns">
<title>Returns</title>
<para> a progress estimate of remaining items to sort</para>
</refsect3></refsect2>

</refsect1>
<refsect1 id="GtkSortListModel.other_details" role="details">
<title role="details.title">Types and Values</title>
<refsect2 id="GtkSortListModel-struct" role="struct">
<title>GtkSortListModel</title>
<indexterm zone="GtkSortListModel-struct"><primary>GtkSortListModel</primary></indexterm>
<programlisting language="C">typedef struct _GtkSortListModel GtkSortListModel;</programlisting>
</refsect2>

</refsect1>
<refsect1 id="GtkSortListModel.property-details" role="property_details">
<title role="property_details.title">Property Details</title>
<refsect2 id="GtkSortListModel--incremental" role="property"><title>The <literal>“incremental”</literal> property</title>
<indexterm zone="GtkSortListModel--incremental"><primary>GtkSortListModel:incremental</primary></indexterm>
<programlisting>  “incremental”              <link linkend="gboolean"><type>gboolean</type></link></programlisting>
<para>If the model should sort items incrementally</para>
<para>Owner: GtkSortListModel</para>
<para>Flags: Read / Write</para>
<para>Default value: FALSE</para>
</refsect2>
<refsect2 id="GtkSortListModel--model" role="property"><title>The <literal>“model”</literal> property</title>
<indexterm zone="GtkSortListModel--model"><primary>GtkSortListModel:model</primary></indexterm>
<programlisting>  “model”                    <link linkend="GListModel"><type>GListModel</type></link>&#160;*</programlisting>
<para>The model being sorted</para>
<para>Owner: GtkSortListModel</para>
<para>Flags: Read / Write</para>
</refsect2>
<refsect2 id="GtkSortListModel--pending" role="property"><title>The <literal>“pending”</literal> property</title>
<indexterm zone="GtkSortListModel--pending"><primary>GtkSortListModel:pending</primary></indexterm>
<programlisting>  “pending”                  <link linkend="guint"><type>guint</type></link></programlisting>
<para>Estimate of unsorted items remaining</para>
<para>Owner: GtkSortListModel</para>
<para>Flags: Read</para>
<para>Default value: 0</para>
</refsect2>
<refsect2 id="GtkSortListModel--sorter" role="property"><title>The <literal>“sorter”</literal> property</title>
<indexterm zone="GtkSortListModel--sorter"><primary>GtkSortListModel:sorter</primary></indexterm>
<programlisting>  “sorter”                   <link linkend="GtkSorter"><type>GtkSorter</type></link>&#160;*</programlisting>
<para>The sorter for this model</para>
<para>Owner: GtkSortListModel</para>
<para>Flags: Read / Write</para>
</refsect2>

</refsect1>
<refsect1 id="GtkSortListModel.see-also">
<title>See Also</title>
<para><link linkend="GListModel"><type>GListModel</type></link>, <link linkend="GtkSorter"><type>GtkSorter</type></link></para>

</refsect1>

</refentry>
