57
55
<title role="details.title">Details</title>
58
56
<refsect2 id="TpHeap" role="struct">
59
57
<title>TpHeap</title>
60
<indexterm zone="TpHeap"><primary>TpHeap</primary></indexterm><programlisting>typedef struct _TpHeap TpHeap;</programlisting>
58
<indexterm zone="TpHeap"><primary sortas="TpHeap">TpHeap</primary></indexterm><programlisting>typedef struct _TpHeap TpHeap;</programlisting>
62
60
Structure representing the heap queue. All fields are private.</para>
66
63
<refsect2 id="tp-heap-new" role="function">
67
64
<title>tp_heap_new ()</title>
68
<indexterm zone="tp-heap-new"><primary>tp_heap_new</primary></indexterm><programlisting><link linkend="TpHeap">TpHeap</link>* tp_heap_new (<link linkend="GCompareFunc">GCompareFunc</link> comparator,
65
<indexterm zone="tp-heap-new"><primary sortas="tp_heap_new">tp_heap_new</primary></indexterm><programlisting><link linkend="TpHeap">TpHeap</link> * tp_heap_new (<link linkend="GCompareFunc">GCompareFunc</link> comparator,
69
66
<link linkend="GDestroyNotify">GDestroyNotify</link> destructor);</programlisting>
71
68
<!--Returns: says it all--></para>
74
70
</para><variablelist role="params">
75
<varlistentry><term><parameter>comparator</parameter> :</term>
71
<varlistentry><term><parameter>comparator</parameter> :</term>
76
72
<listitem><simpara> Comparator by which to order the pointers in the heap
77
73
</simpara></listitem></varlistentry>
78
<varlistentry><term><parameter>destructor</parameter> :</term>
74
<varlistentry><term><parameter>destructor</parameter> :</term>
79
75
<listitem><simpara> Function to call on the pointers when the heap is destroyed
80
or cleared, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if this is not needed
76
or cleared, or <link linkend="NULL--CAPS"><literal>NULL</literal></link> if this is not needed
81
77
</simpara></listitem></varlistentry>
82
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> A new, empty heap queue.
78
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> A new, empty heap queue.
83
79
</simpara></listitem></varlistentry>
84
80
</variablelist></refsect2>
85
81
<refsect2 id="tp-heap-destroy" role="function">
86
82
<title>tp_heap_destroy ()</title>
87
<indexterm zone="tp-heap-destroy"><primary>tp_heap_destroy</primary></indexterm><programlisting><link linkend="void">void</link> tp_heap_destroy (<link linkend="TpHeap">TpHeap</link> *heap);</programlisting>
83
<indexterm zone="tp-heap-destroy"><primary sortas="tp_heap_destroy">tp_heap_destroy</primary></indexterm><programlisting><link linkend="void">void</link> tp_heap_destroy (<link linkend="TpHeap">TpHeap</link> *heap);</programlisting>
89
85
Destroy a <link linkend="TpHeap"><type>TpHeap</type></link>. The destructor, if any, is called on all items.</para>
92
87
</para><variablelist role="params">
93
<varlistentry><term><parameter>heap</parameter> :</term>
88
<varlistentry><term><parameter>heap</parameter> :</term>
94
89
<listitem><simpara> The heap queue
95
90
</simpara></listitem></varlistentry>
96
91
</variablelist></refsect2>
97
92
<refsect2 id="tp-heap-clear" role="function">
98
93
<title>tp_heap_clear ()</title>
99
<indexterm zone="tp-heap-clear"><primary>tp_heap_clear</primary></indexterm><programlisting><link linkend="void">void</link> tp_heap_clear (<link linkend="TpHeap">TpHeap</link> *heap);</programlisting>
94
<indexterm zone="tp-heap-clear"><primary sortas="tp_heap_clear">tp_heap_clear</primary></indexterm><programlisting><link linkend="void">void</link> tp_heap_clear (<link linkend="TpHeap">TpHeap</link> *heap);</programlisting>
101
96
Remove all items from a <link linkend="TpHeap"><type>TpHeap</type></link>. The destructor, if any, is called on all
105
99
</para><variablelist role="params">
106
<varlistentry><term><parameter>heap</parameter> :</term>
100
<varlistentry><term><parameter>heap</parameter> :</term>
107
101
<listitem><simpara> The heap queue
108
102
</simpara></listitem></varlistentry>
109
103
</variablelist></refsect2>
110
104
<refsect2 id="tp-heap-add" role="function">
111
105
<title>tp_heap_add ()</title>
112
<indexterm zone="tp-heap-add"><primary>tp_heap_add</primary></indexterm><programlisting><link linkend="void">void</link> tp_heap_add (<link linkend="TpHeap">TpHeap</link> *heap,
106
<indexterm zone="tp-heap-add"><primary sortas="tp_heap_add">tp_heap_add</primary></indexterm><programlisting><link linkend="void">void</link> tp_heap_add (<link linkend="TpHeap">TpHeap</link> *heap,
113
107
<link linkend="gpointer">gpointer</link> element);</programlisting>
115
109
Add element to the heap queue, maintaining correct order.</para>
118
111
</para><variablelist role="params">
119
<varlistentry><term><parameter>heap</parameter> :</term>
112
<varlistentry><term><parameter>heap</parameter> :</term>
120
113
<listitem><simpara> The heap queue
121
114
</simpara></listitem></varlistentry>
122
<varlistentry><term><parameter>element</parameter> :</term>
115
<varlistentry><term><parameter>element</parameter> :</term>
123
116
<listitem><simpara> An element
124
117
</simpara></listitem></varlistentry>
125
118
</variablelist></refsect2>
126
119
<refsect2 id="tp-heap-remove" role="function">
127
120
<title>tp_heap_remove ()</title>
128
<indexterm zone="tp-heap-remove"><primary>tp_heap_remove</primary></indexterm><programlisting><link linkend="void">void</link> tp_heap_remove (<link linkend="TpHeap">TpHeap</link> *heap,
121
<indexterm zone="tp-heap-remove"><primary sortas="tp_heap_remove">tp_heap_remove</primary></indexterm><programlisting><link linkend="void">void</link> tp_heap_remove (<link linkend="TpHeap">TpHeap</link> *heap,
129
122
<link linkend="gpointer">gpointer</link> element);</programlisting>
131
124
Remove <parameter>element</parameter> from <parameter>heap</parameter>, if it's present. The destructor, if any,
132
125
is not called.</para>
135
127
</para><variablelist role="params">
136
<varlistentry><term><parameter>heap</parameter> :</term>
128
<varlistentry><term><parameter>heap</parameter> :</term>
137
129
<listitem><simpara> The heap queue
138
130
</simpara></listitem></varlistentry>
139
<varlistentry><term><parameter>element</parameter> :</term>
131
<varlistentry><term><parameter>element</parameter> :</term>
140
132
<listitem><simpara> An element in the heap
141
133
</simpara></listitem></varlistentry>
142
134
</variablelist></refsect2>
143
135
<refsect2 id="tp-heap-peek-first" role="function">
144
136
<title>tp_heap_peek_first ()</title>
145
<indexterm zone="tp-heap-peek-first"><primary>tp_heap_peek_first</primary></indexterm><programlisting><link linkend="gpointer">gpointer</link> tp_heap_peek_first (<link linkend="TpHeap">TpHeap</link> *heap);</programlisting>
137
<indexterm zone="tp-heap-peek-first"><primary sortas="tp_heap_peek_first">tp_heap_peek_first</primary></indexterm><programlisting><link linkend="gpointer">gpointer</link> tp_heap_peek_first (<link linkend="TpHeap">TpHeap</link> *heap);</programlisting>
147
139
<!--Returns: says it all--></para>
150
141
</para><variablelist role="params">
151
<varlistentry><term><parameter>heap</parameter> :</term>
142
<varlistentry><term><parameter>heap</parameter> :</term>
152
143
<listitem><simpara> The heap queue
153
144
</simpara></listitem></varlistentry>
154
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The first item in the queue, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the queue is empty
145
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The first item in the queue, or <link linkend="NULL--CAPS"><literal>NULL</literal></link> if the queue is empty
155
146
</simpara></listitem></varlistentry>
156
147
</variablelist></refsect2>
157
148
<refsect2 id="tp-heap-extract-first" role="function">
158
149
<title>tp_heap_extract_first ()</title>
159
<indexterm zone="tp-heap-extract-first"><primary>tp_heap_extract_first</primary></indexterm><programlisting><link linkend="gpointer">gpointer</link> tp_heap_extract_first (<link linkend="TpHeap">TpHeap</link> *heap);</programlisting>
150
<indexterm zone="tp-heap-extract-first"><primary sortas="tp_heap_extract_first">tp_heap_extract_first</primary></indexterm><programlisting><link linkend="gpointer">gpointer</link> tp_heap_extract_first (<link linkend="TpHeap">TpHeap</link> *heap);</programlisting>
161
152
Remove and return the first element in the queue. The destructor, if any,
162
153
is not called.</para>
165
155
</para><variablelist role="params">
166
<varlistentry><term><parameter>heap</parameter> :</term>
156
<varlistentry><term><parameter>heap</parameter> :</term>
167
157
<listitem><simpara> The heap queue
168
158
</simpara></listitem></varlistentry>
169
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the removed element
159
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the removed element
170
160
</simpara></listitem></varlistentry>
171
161
</variablelist></refsect2>
172
162
<refsect2 id="tp-heap-size" role="function">
173
163
<title>tp_heap_size ()</title>
174
<indexterm zone="tp-heap-size"><primary>tp_heap_size</primary></indexterm><programlisting><link linkend="guint">guint</link> tp_heap_size (<link linkend="TpHeap">TpHeap</link> *heap);</programlisting>
164
<indexterm zone="tp-heap-size"><primary sortas="tp_heap_size">tp_heap_size</primary></indexterm><programlisting><link linkend="guint">guint</link> tp_heap_size (<link linkend="TpHeap">TpHeap</link> *heap);</programlisting>
176
166
<!--Returns: says it all--></para>
179
168
</para><variablelist role="params">
180
<varlistentry><term><parameter>heap</parameter> :</term>
169
<varlistentry><term><parameter>heap</parameter> :</term>
181
170
<listitem><simpara> The heap queue
182
171
</simpara></listitem></varlistentry>
183
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The number of items in <parameter>heap</parameter>
172
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The number of items in <parameter>heap</parameter>
184
173
</simpara></listitem></varlistentry>
185
174
</variablelist></refsect2>