1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
|
<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<refentry id="libedataserver-e-trie">
<refmeta>
<refentrytitle role="top_of_page">ETrie</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>LIBEDATASERVER Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>ETrie</refname>
<refpurpose>A trie data structure.</refpurpose>
<!--[<xref linkend="desc" endterm="desc.title"/>]-->
</refnamediv>
<refsynopsisdiv role="synopsis">
<title role="synopsis.title">Synopsis</title>
<synopsis>
<link linkend="ETrie">ETrie</link>;
<link linkend="ETrie">ETrie</link>* <link linkend="e-trie-new">e_trie_new</link> (<link linkend="gboolean">gboolean</link> icase);
<link linkend="void">void</link> <link linkend="e-trie-free">e_trie_free</link> (<link linkend="ETrie">ETrie</link> *trie);
<link linkend="void">void</link> <link linkend="e-trie-add">e_trie_add</link> (<link linkend="ETrie">ETrie</link> *trie,
const <link linkend="char">char</link> *pattern,
<link linkend="int">int</link> pattern_id);
const <link linkend="char">char</link>* <link linkend="e-trie-search">e_trie_search</link> (<link linkend="ETrie">ETrie</link> *trie,
const <link linkend="char">char</link> *buffer,
<link linkend="size-t">size_t</link> buflen,
<link linkend="int">int</link> *matched_id);
</synopsis>
</refsynopsisdiv>
<refsect1 role="desc">
<title role="desc.title">Description</title>
<para>
</para>
</refsect1>
<refsect1 role="details">
<title role="details.title">Details</title>
<refsect2>
<title><anchor id="ETrie" role="struct"/>ETrie</title>
<indexterm><primary>ETrie</primary></indexterm><programlisting>typedef struct _ETrie ETrie;</programlisting>
<para>
A trie data structure.</para>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="e-trie-new" role="function"/>e_trie_new ()</title>
<indexterm><primary>e_trie_new</primary></indexterm><programlisting><link linkend="ETrie">ETrie</link>* e_trie_new (<link linkend="gboolean">gboolean</link> icase);</programlisting>
<para>
Creates a new <link linkend="ETrie"><type>ETrie</type></link>. If <parameter>icase</parameter> is <link linkend="TRUE:CAPS"><literal>TRUE</literal></link>, then pattern matching
done by the ETrie will be case insensitive.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>icase</parameter> :</term>
<listitem><simpara> Case sensitivity for the <link linkend="ETrie"><type>ETrie</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The newly-created <link linkend="ETrie"><type>ETrie</type></link>.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-trie-free" role="function"/>e_trie_free ()</title>
<indexterm><primary>e_trie_free</primary></indexterm><programlisting><link linkend="void">void</link> e_trie_free (<link linkend="ETrie">ETrie</link> *trie);</programlisting>
<para>
Frees the memory associated with the <link linkend="ETrie"><type>ETrie</type></link> <parameter>trie</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>trie</parameter> :</term>
<listitem><simpara> The <link linkend="ETrie"><type>ETrie</type></link> to free.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-trie-add" role="function"/>e_trie_add ()</title>
<indexterm><primary>e_trie_add</primary></indexterm><programlisting><link linkend="void">void</link> e_trie_add (<link linkend="ETrie">ETrie</link> *trie,
const <link linkend="char">char</link> *pattern,
<link linkend="int">int</link> pattern_id);</programlisting>
<para>
Add a new pattern to the <link linkend="ETrie"><type>ETrie</type></link> <parameter>trie</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>trie</parameter> :</term>
<listitem><simpara> The <link linkend="ETrie"><type>ETrie</type></link> to add a pattern to.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>pattern</parameter> :</term>
<listitem><simpara> The pattern to add.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>pattern_id</parameter> :</term>
<listitem><simpara> The id to use for the pattern.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-trie-search" role="function"/>e_trie_search ()</title>
<indexterm><primary>e_trie_search</primary></indexterm><programlisting>const <link linkend="char">char</link>* e_trie_search (<link linkend="ETrie">ETrie</link> *trie,
const <link linkend="char">char</link> *buffer,
<link linkend="size-t">size_t</link> buflen,
<link linkend="int">int</link> *matched_id);</programlisting>
<para>
Try to match the string <parameter>buffer</parameter> with a pattern in <parameter>trie</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>trie</parameter> :</term>
<listitem><simpara> The <link linkend="ETrie"><type>ETrie</type></link> to search in.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>buffer</parameter> :</term>
<listitem><simpara> The string to match against a pattern in <parameter>trie</parameter>.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>buflen</parameter> :</term>
<listitem><simpara> The length of <parameter>buffer</parameter>.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>matched_id</parameter> :</term>
<listitem><simpara> An integer address to store the matched pattern id in.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The matched pattern, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if no pattern is matched.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
</refsect1>
</refentry>
|