2
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
3
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
4
<refentry id="libedataserver-e-trie">
6
<refentrytitle id="top_of_page">ETrie</refentrytitle>
7
<manvolnum>3</manvolnum>
8
<refmiscinfo>LIBEDATASERVER Library</refmiscinfo>
12
<refname>ETrie</refname>
13
<refpurpose>A trie data structure.</refpurpose>
14
<!--[<xref linkend="desc" endterm="desc.title"/>]-->
17
<refsynopsisdiv id="synopsis">
18
<title id="synopsis.title">Synopsis</title>
24
<link linkend="ETrie">ETrie</link>;
25
<link linkend="ETrie">ETrie</link>* <link linkend="e-trie-new">e_trie_new</link> (<link linkend="gboolean">gboolean</link> icase);
26
<link linkend="void">void</link> <link linkend="e-trie-free">e_trie_free</link> (<link linkend="ETrie">ETrie</link> *trie);
27
<link linkend="void">void</link> <link linkend="e-trie-add">e_trie_add</link> (<link linkend="ETrie">ETrie</link> *trie,
28
const <link linkend="char">char</link> *pattern,
29
<link linkend="int">int</link> pattern_id);
30
const <link linkend="char">char</link>* <link linkend="e-trie-search">e_trie_search</link> (<link linkend="ETrie">ETrie</link> *trie,
31
const <link linkend="char">char</link> *buffer,
32
<link linkend="size-t">size_t</link> buflen,
33
<link linkend="int">int</link> *matched_id);
46
<title id="desc.title">Description</title>
52
<refsect1 id="details">
53
<title id="details.title">Details</title>
55
<title><anchor id="ETrie"/>ETrie</title>
56
<indexterm><primary>ETrie</primary></indexterm><programlisting>typedef struct _ETrie ETrie;</programlisting>
58
A trie data structure.</para>
63
<title><anchor id="e-trie-new"/>e_trie_new ()</title>
64
<indexterm><primary>e_trie_new</primary></indexterm><programlisting><link linkend="ETrie">ETrie</link>* e_trie_new (<link linkend="gboolean">gboolean</link> icase);</programlisting>
66
Creates a new <link linkend="ETrie"><type>ETrie</type></link>. If <parameter>icase</parameter> is <literal>TRUE</literal>, then pattern matching
67
done by the ETrie will be case insensitive.</para>
70
</para><variablelist role="params">
71
<varlistentry><term><parameter>icase</parameter> :</term>
72
<listitem><simpara> Case sensitivity for the <link linkend="ETrie"><type>ETrie</type></link>.
73
</simpara></listitem></varlistentry>
74
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The newly-created <link linkend="ETrie"><type>ETrie</type></link>.
75
</simpara></listitem></varlistentry>
76
</variablelist></refsect2>
78
<title><anchor id="e-trie-free"/>e_trie_free ()</title>
79
<indexterm><primary>e_trie_free</primary></indexterm><programlisting><link linkend="void">void</link> e_trie_free (<link linkend="ETrie">ETrie</link> *trie);</programlisting>
81
Frees the memory associated with the <link linkend="ETrie"><type>ETrie</type></link> <parameter>trie</parameter>.</para>
84
</para><variablelist role="params">
85
<varlistentry><term><parameter>trie</parameter> :</term>
86
<listitem><simpara> The <link linkend="ETrie"><type>ETrie</type></link> to free.
87
</simpara></listitem></varlistentry>
88
</variablelist></refsect2>
90
<title><anchor id="e-trie-add"/>e_trie_add ()</title>
91
<indexterm><primary>e_trie_add</primary></indexterm><programlisting><link linkend="void">void</link> e_trie_add (<link linkend="ETrie">ETrie</link> *trie,
92
const <link linkend="char">char</link> *pattern,
93
<link linkend="int">int</link> pattern_id);</programlisting>
95
Add a new pattern to the <link linkend="ETrie"><type>ETrie</type></link> <parameter>trie</parameter>.</para>
98
</para><variablelist role="params">
99
<varlistentry><term><parameter>trie</parameter> :</term>
100
<listitem><simpara> The <link linkend="ETrie"><type>ETrie</type></link> to add a pattern to.
101
</simpara></listitem></varlistentry>
102
<varlistentry><term><parameter>pattern</parameter> :</term>
103
<listitem><simpara> The pattern to add.
104
</simpara></listitem></varlistentry>
105
<varlistentry><term><parameter>pattern_id</parameter> :</term>
106
<listitem><simpara> The id to use for the pattern.
107
</simpara></listitem></varlistentry>
108
</variablelist></refsect2>
110
<title><anchor id="e-trie-search"/>e_trie_search ()</title>
111
<indexterm><primary>e_trie_search</primary></indexterm><programlisting>const <link linkend="char">char</link>* e_trie_search (<link linkend="ETrie">ETrie</link> *trie,
112
const <link linkend="char">char</link> *buffer,
113
<link linkend="size-t">size_t</link> buflen,
114
<link linkend="int">int</link> *matched_id);</programlisting>
116
Try to match the string <parameter>buffer</parameter> with a pattern in <parameter>trie</parameter>.</para>
119
</para><variablelist role="params">
120
<varlistentry><term><parameter>trie</parameter> :</term>
121
<listitem><simpara> The <link linkend="ETrie"><type>ETrie</type></link> to search in.
122
</simpara></listitem></varlistentry>
123
<varlistentry><term><parameter>buffer</parameter> :</term>
124
<listitem><simpara> The string to match against a pattern in <parameter>trie</parameter>.
125
</simpara></listitem></varlistentry>
126
<varlistentry><term><parameter>buflen</parameter> :</term>
127
<listitem><simpara> The length of <parameter>buffer</parameter>.
128
</simpara></listitem></varlistentry>
129
<varlistentry><term><parameter>matched_id</parameter> :</term>
130
<listitem><simpara> An integer address to store the matched pattern id in.
131
</simpara></listitem></varlistentry>
132
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The matched pattern, or <literal>NULL</literal> if no pattern is matched.
133
</simpara></listitem></varlistentry>
134
</variablelist></refsect2>