1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>Sequences</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
7 <link rel="home" href="index.html" title="GLib Reference Manual">
8 <link rel="up" href="glib-data-types.html" title="GLib Data Types">
9 <link rel="prev" href="glib-Double-ended-Queues.html" title="Double-ended Queues">
10 <link rel="next" href="glib-Trash-Stacks.html" title="Trash Stacks">
11 <meta name="generator" content="GTK-Doc V1.13 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 <link rel="chapter" href="glib.html" title="GLib Overview">
14 <link rel="chapter" href="glib-fundamentals.html" title="GLib Fundamentals">
15 <link rel="chapter" href="glib-core.html" title="GLib Core Application Support">
16 <link rel="chapter" href="glib-utilities.html" title="GLib Utilities">
17 <link rel="chapter" href="glib-data-types.html" title="GLib Data Types">
18 <link rel="chapter" href="tools.html" title="GLib Tools">
19 <link rel="index" href="api-index-full.html" title="Index">
20 <link rel="index" href="api-index-deprecated.html" title="Index of deprecated symbols">
21 <link rel="index" href="api-index-2-2.html" title="Index of new symbols in 2.2">
22 <link rel="index" href="api-index-2-4.html" title="Index of new symbols in 2.4">
23 <link rel="index" href="api-index-2-6.html" title="Index of new symbols in 2.6">
24 <link rel="index" href="api-index-2-8.html" title="Index of new symbols in 2.8">
25 <link rel="index" href="api-index-2-10.html" title="Index of new symbols in 2.10">
26 <link rel="index" href="api-index-2-12.html" title="Index of new symbols in 2.12">
27 <link rel="index" href="api-index-2-14.html" title="Index of new symbols in 2.14">
28 <link rel="index" href="api-index-2-16.html" title="Index of new symbols in 2.16">
29 <link rel="index" href="api-index-2-18.html" title="Index of new symbols in 2.18">
30 <link rel="index" href="api-index-2-20.html" title="Index of new symbols in 2.20">
31 <link rel="index" href="api-index-2-22.html" title="Index of new symbols in 2.22">
32 <link rel="index" href="api-index-2-24.html" title="Index of new symbols in 2.24">
34 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
35 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
37 <td><a accesskey="p" href="glib-Double-ended-Queues.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
38 <td><a accesskey="u" href="glib-data-types.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
39 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
40 <th width="100%" align="center">GLib Reference Manual</th>
41 <td><a accesskey="n" href="glib-Trash-Stacks.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
43 <tr><td colspan="5" class="shortcuts">
44 <a href="#glib-Sequences.synopsis" class="shortcut">Top</a>
46 <a href="#glib-Sequences.description" class="shortcut">Description</a>
49 <div class="refentry" title="Sequences">
50 <a name="glib-Sequences"></a><div class="titlepage"></div>
51 <div class="refnamediv"><table width="100%"><tr>
53 <h2><span class="refentrytitle"><a name="glib-Sequences.top_of_page"></a>Sequences</span></h2>
54 <p>Sequences — scalable lists</p>
56 <td valign="top" align="right"></td>
58 <div class="refsynopsisdiv" title="Synopsis">
59 <a name="glib-Sequences.synopsis"></a><h2>Synopsis</h2>
60 <pre class="synopsis">
61 #include <glib.h>
63 <a class="link" href="glib-Sequences.html#GSequence" title="GSequence">GSequence</a>;
64 typedef <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter">GSequenceIter</a>;
65 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> (<a class="link" href="glib-Sequences.html#GSequenceIterCompareFunc" title="GSequenceIterCompareFunc ()">*GSequenceIterCompareFunc</a>) (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *a,
66 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *b,
67 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data);
69 <a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> * <a class="link" href="glib-Sequences.html#g-sequence-new" title="g_sequence_new ()">g_sequence_new</a> (<a class="link" href="glib-Datasets.html#GDestroyNotify" title="GDestroyNotify ()"><span class="returnvalue">GDestroyNotify</span></a> data_destroy);
70 <span class="returnvalue">void</span> <a class="link" href="glib-Sequences.html#g-sequence-free" title="g_sequence_free ()">g_sequence_free</a> (<a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> *seq);
71 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> <a class="link" href="glib-Sequences.html#g-sequence-get-length" title="g_sequence_get_length ()">g_sequence_get_length</a> (<a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> *seq);
72 <span class="returnvalue">void</span> <a class="link" href="glib-Sequences.html#g-sequence-foreach" title="g_sequence_foreach ()">g_sequence_foreach</a> (<a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> *seq,
73 <a class="link" href="glib-Doubly-Linked-Lists.html#GFunc" title="GFunc ()"><span class="returnvalue">GFunc</span></a> func,
74 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> user_data);
75 <span class="returnvalue">void</span> <a class="link" href="glib-Sequences.html#g-sequence-foreach-range" title="g_sequence_foreach_range ()">g_sequence_foreach_range</a> (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *begin,
76 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *end,
77 <a class="link" href="glib-Doubly-Linked-Lists.html#GFunc" title="GFunc ()"><span class="returnvalue">GFunc</span></a> func,
78 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> user_data);
79 <span class="returnvalue">void</span> <a class="link" href="glib-Sequences.html#g-sequence-sort" title="g_sequence_sort ()">g_sequence_sort</a> (<a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> *seq,
80 <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="returnvalue">GCompareDataFunc</span></a> cmp_func,
81 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> cmp_data);
82 <span class="returnvalue">void</span> <a class="link" href="glib-Sequences.html#g-sequence-sort-iter" title="g_sequence_sort_iter ()">g_sequence_sort_iter</a> (<a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> *seq,
83 <a class="link" href="glib-Sequences.html#GSequenceIterCompareFunc" title="GSequenceIterCompareFunc ()"><span class="returnvalue">GSequenceIterCompareFunc</span></a> cmp_func,
84 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> cmp_data);
86 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> * <a class="link" href="glib-Sequences.html#g-sequence-get-begin-iter" title="g_sequence_get_begin_iter ()">g_sequence_get_begin_iter</a> (<a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> *seq);
87 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> * <a class="link" href="glib-Sequences.html#g-sequence-get-end-iter" title="g_sequence_get_end_iter ()">g_sequence_get_end_iter</a> (<a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> *seq);
88 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> * <a class="link" href="glib-Sequences.html#g-sequence-get-iter-at-pos" title="g_sequence_get_iter_at_pos ()">g_sequence_get_iter_at_pos</a> (<a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> *seq,
89 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> pos);
90 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> * <a class="link" href="glib-Sequences.html#g-sequence-append" title="g_sequence_append ()">g_sequence_append</a> (<a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> *seq,
91 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data);
92 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> * <a class="link" href="glib-Sequences.html#g-sequence-prepend" title="g_sequence_prepend ()">g_sequence_prepend</a> (<a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> *seq,
93 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data);
94 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> * <a class="link" href="glib-Sequences.html#g-sequence-insert-before" title="g_sequence_insert_before ()">g_sequence_insert_before</a> (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *iter,
95 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data);
96 <span class="returnvalue">void</span> <a class="link" href="glib-Sequences.html#g-sequence-move" title="g_sequence_move ()">g_sequence_move</a> (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *src,
97 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *dest);
98 <span class="returnvalue">void</span> <a class="link" href="glib-Sequences.html#g-sequence-swap" title="g_sequence_swap ()">g_sequence_swap</a> (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *a,
99 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *b);
100 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> * <a class="link" href="glib-Sequences.html#g-sequence-insert-sorted" title="g_sequence_insert_sorted ()">g_sequence_insert_sorted</a> (<a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> *seq,
101 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data,
102 <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="returnvalue">GCompareDataFunc</span></a> cmp_func,
103 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> cmp_data);
104 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> * <a class="link" href="glib-Sequences.html#g-sequence-insert-sorted-iter" title="g_sequence_insert_sorted_iter ()">g_sequence_insert_sorted_iter</a> (<a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> *seq,
105 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data,
106 <a class="link" href="glib-Sequences.html#GSequenceIterCompareFunc" title="GSequenceIterCompareFunc ()"><span class="returnvalue">GSequenceIterCompareFunc</span></a> iter_cmp,
107 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> cmp_data);
108 <span class="returnvalue">void</span> <a class="link" href="glib-Sequences.html#g-sequence-sort-changed" title="g_sequence_sort_changed ()">g_sequence_sort_changed</a> (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *iter,
109 <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="returnvalue">GCompareDataFunc</span></a> cmp_func,
110 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> cmp_data);
111 <span class="returnvalue">void</span> <a class="link" href="glib-Sequences.html#g-sequence-sort-changed-iter" title="g_sequence_sort_changed_iter ()">g_sequence_sort_changed_iter</a> (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *iter,
112 <a class="link" href="glib-Sequences.html#GSequenceIterCompareFunc" title="GSequenceIterCompareFunc ()"><span class="returnvalue">GSequenceIterCompareFunc</span></a> iter_cmp,
113 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> cmp_data);
114 <span class="returnvalue">void</span> <a class="link" href="glib-Sequences.html#g-sequence-remove" title="g_sequence_remove ()">g_sequence_remove</a> (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *iter);
115 <span class="returnvalue">void</span> <a class="link" href="glib-Sequences.html#g-sequence-remove-range" title="g_sequence_remove_range ()">g_sequence_remove_range</a> (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *begin,
116 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *end);
117 <span class="returnvalue">void</span> <a class="link" href="glib-Sequences.html#g-sequence-move-range" title="g_sequence_move_range ()">g_sequence_move_range</a> (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *dest,
118 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *begin,
119 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *end);
120 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> * <a class="link" href="glib-Sequences.html#g-sequence-search" title="g_sequence_search ()">g_sequence_search</a> (<a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> *seq,
121 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data,
122 <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="returnvalue">GCompareDataFunc</span></a> cmp_func,
123 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> cmp_data);
124 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> * <a class="link" href="glib-Sequences.html#g-sequence-search-iter" title="g_sequence_search_iter ()">g_sequence_search_iter</a> (<a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> *seq,
125 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data,
126 <a class="link" href="glib-Sequences.html#GSequenceIterCompareFunc" title="GSequenceIterCompareFunc ()"><span class="returnvalue">GSequenceIterCompareFunc</span></a> iter_cmp,
127 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> cmp_data);
129 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> <a class="link" href="glib-Sequences.html#g-sequence-get" title="g_sequence_get ()">g_sequence_get</a> (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *iter);
130 <span class="returnvalue">void</span> <a class="link" href="glib-Sequences.html#g-sequence-set" title="g_sequence_set ()">g_sequence_set</a> (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *iter,
131 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data);
133 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-Sequences.html#g-sequence-iter-is-begin" title="g_sequence_iter_is_begin ()">g_sequence_iter_is_begin</a> (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *iter);
134 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-Sequences.html#g-sequence-iter-is-end" title="g_sequence_iter_is_end ()">g_sequence_iter_is_end</a> (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *iter);
135 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> * <a class="link" href="glib-Sequences.html#g-sequence-iter-next" title="g_sequence_iter_next ()">g_sequence_iter_next</a> (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *iter);
136 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> * <a class="link" href="glib-Sequences.html#g-sequence-iter-prev" title="g_sequence_iter_prev ()">g_sequence_iter_prev</a> (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *iter);
137 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> <a class="link" href="glib-Sequences.html#g-sequence-iter-get-position" title="g_sequence_iter_get_position ()">g_sequence_iter_get_position</a> (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *iter);
138 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> * <a class="link" href="glib-Sequences.html#g-sequence-iter-move" title="g_sequence_iter_move ()">g_sequence_iter_move</a> (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *iter,
139 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> delta);
140 <a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> * <a class="link" href="glib-Sequences.html#g-sequence-iter-get-sequence" title="g_sequence_iter_get_sequence ()">g_sequence_iter_get_sequence</a> (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *iter);
142 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> <a class="link" href="glib-Sequences.html#g-sequence-iter-compare" title="g_sequence_iter_compare ()">g_sequence_iter_compare</a> (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *a,
143 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *b);
144 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> * <a class="link" href="glib-Sequences.html#g-sequence-range-get-midpoint" title="g_sequence_range_get_midpoint ()">g_sequence_range_get_midpoint</a> (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *begin,
145 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *end);
148 <div class="refsect1" title="Description">
149 <a name="glib-Sequences.description"></a><h2>Description</h2>
151 The <a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="type">GSequence</span></a> data structure has the API of a list, but is
152 implemented internally with a balanced binary tree. This means that
153 it is possible to maintain a sorted list of n elements in time O(n
154 log n). The data contained in each element can be either integer
155 values, by using of the <a class="link" href="glib-Type-Conversion-Macros.html" title="Type Conversion Macros">Type Conversion Macros</a>,
156 or simply pointers to any type of data.
159 A <a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="type">GSequence</span></a> is accessed through <em class="firstterm">iterators</em>,
160 represented by a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a>. An iterator represents a position
161 between two elements of the sequence. For example, the
162 <em class="firstterm">begin</em> iterator represents the gap immediately
163 before the first element of the sequence, and the
164 <em class="firstterm">end</em> iterator represents the gap immediately
165 after the last element. In an empty sequence, the begin and end
166 iterators are the same.
169 Some methods on <a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="type">GSequence</span></a> operate on ranges of items. For example
170 <a class="link" href="glib-Sequences.html#g-sequence-foreach-range" title="g_sequence_foreach_range ()"><code class="function">g_sequence_foreach_range()</code></a> will call a user-specified function on
171 each element with the given range. The range is delimited by the
172 gaps represented by the passed-in iterators, so if you pass in the
173 begin and end iterators, the range in question is the entire
177 The function <a class="link" href="glib-Sequences.html#g-sequence-get" title="g_sequence_get ()"><code class="function">g_sequence_get()</code></a> is used with an iterator to access the
178 element immediately following the gap that the iterator represents.
179 The iterator is said to <em class="firstterm">point</em> to that element.
182 Iterators are stable across most operations on a <a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="type">GSequence</span></a>. For
183 example an iterator pointing to some element of a sequence will
184 continue to point to that element even after the sequence is sorted.
185 Even moving an element to another sequence using for example
186 <a class="link" href="glib-Sequences.html#g-sequence-move-range" title="g_sequence_move_range ()"><code class="function">g_sequence_move_range()</code></a> will not invalidate the iterators pointing
187 to it. The only operation that will invalidate an iterator is when
188 the element it points to is removed from any sequence.</p>
190 <div class="refsect1" title="Details">
191 <a name="glib-Sequences.details"></a><h2>Details</h2>
192 <div class="refsect2" title="GSequence">
193 <a name="GSequence"></a><h3>GSequence</h3>
194 <pre class="programlisting">typedef struct _GSequence GSequence;</pre>
196 The <a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="type">GSequence</span></a> struct is an opaque data type representing a
197 <a class="link" href="glib-Sequences.html" title="Sequences">Sequence</a> data type.</p>
200 <div class="refsect2" title="GSequenceIter">
201 <a name="GSequenceIter"></a><h3>GSequenceIter</h3>
202 <pre class="programlisting">typedef struct _GSequenceNode GSequenceIter;
205 The <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a> struct is an opaque data type representing an
206 iterator pointing into a <a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="type">GSequence</span></a>.</p>
209 <div class="refsect2" title="GSequenceIterCompareFunc ()">
210 <a name="GSequenceIterCompareFunc"></a><h3>GSequenceIterCompareFunc ()</h3>
211 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> (*GSequenceIterCompareFunc) (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *a,
212 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *b,
213 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data);</pre>
215 A <a class="link" href="glib-Sequences.html#GSequenceIterCompareFunc" title="GSequenceIterCompareFunc ()"><span class="type">GSequenceIterCompareFunc</span></a> is a function used to compare iterators.
216 It must return zero if the iterators compare equal, a negative value
217 if <em class="parameter"><code>a</code></em> comes before <em class="parameter"><code>b</code></em>, and a positive value if <em class="parameter"><code>b</code></em> comes before <em class="parameter"><code>a</code></em>.</p>
218 <div class="variablelist"><table border="0">
219 <col align="left" valign="top">
222 <td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
223 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a>
227 <td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
228 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a>
232 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
237 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
238 <td> zero if the iterators are equal, a negative value if <em class="parameter"><code>a</code></em>
239 comes before <em class="parameter"><code>b</code></em>, and a positive value if <em class="parameter"><code>b</code></em> comes before
240 <em class="parameter"><code>a</code></em>.
247 <div class="refsect2" title="g_sequence_new ()">
248 <a name="g-sequence-new"></a><h3>g_sequence_new ()</h3>
249 <pre class="programlisting"><a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> * g_sequence_new (<a class="link" href="glib-Datasets.html#GDestroyNotify" title="GDestroyNotify ()"><span class="returnvalue">GDestroyNotify</span></a> data_destroy);</pre>
251 Creates a new GSequence. The <em class="parameter"><code>data_destroy</code></em> function, if non-<a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> will
252 be called on all items when the sequence is destroyed and on items that
253 are removed from the sequence.</p>
254 <div class="variablelist"><table border="0">
255 <col align="left" valign="top">
258 <td><p><span class="term"><em class="parameter"><code>data_destroy</code></em> :</span></p></td>
259 <td> a <a class="link" href="glib-Datasets.html#GDestroyNotify" title="GDestroyNotify ()"><span class="type">GDestroyNotify</span></a> function, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>
263 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
264 <td> a new <a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="type">GSequence</span></a>
270 <p class="since">Since 2.14</p>
273 <div class="refsect2" title="g_sequence_free ()">
274 <a name="g-sequence-free"></a><h3>g_sequence_free ()</h3>
275 <pre class="programlisting"><span class="returnvalue">void</span> g_sequence_free (<a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> *seq);</pre>
277 Frees the memory allocated for <em class="parameter"><code>seq</code></em>. If <em class="parameter"><code>seq</code></em> has a data destroy
278 function associated with it, that function is called on all items in
279 <em class="parameter"><code>seq</code></em>.</p>
280 <div class="variablelist"><table border="0">
281 <col align="left" valign="top">
283 <td><p><span class="term"><em class="parameter"><code>seq</code></em> :</span></p></td>
284 <td> a <a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="type">GSequence</span></a>
288 <p class="since">Since 2.14</p>
291 <div class="refsect2" title="g_sequence_get_length ()">
292 <a name="g-sequence-get-length"></a><h3>g_sequence_get_length ()</h3>
293 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> g_sequence_get_length (<a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> *seq);</pre>
295 Returns the length of <em class="parameter"><code>seq</code></em></p>
296 <div class="variablelist"><table border="0">
297 <col align="left" valign="top">
300 <td><p><span class="term"><em class="parameter"><code>seq</code></em> :</span></p></td>
301 <td> a <a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="type">GSequence</span></a>
305 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
306 <td> the length of <em class="parameter"><code>seq</code></em>
312 <p class="since">Since 2.14</p>
315 <div class="refsect2" title="g_sequence_foreach ()">
316 <a name="g-sequence-foreach"></a><h3>g_sequence_foreach ()</h3>
317 <pre class="programlisting"><span class="returnvalue">void</span> g_sequence_foreach (<a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> *seq,
318 <a class="link" href="glib-Doubly-Linked-Lists.html#GFunc" title="GFunc ()"><span class="returnvalue">GFunc</span></a> func,
319 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> user_data);</pre>
321 Calls <em class="parameter"><code>func</code></em> for each item in the sequence passing <em class="parameter"><code>user_data</code></em>
323 <div class="variablelist"><table border="0">
324 <col align="left" valign="top">
327 <td><p><span class="term"><em class="parameter"><code>seq</code></em> :</span></p></td>
328 <td> a <a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="type">GSequence</span></a>
332 <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
333 <td> the function to call for each item in <em class="parameter"><code>seq</code></em>
337 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
338 <td> user data passed to <em class="parameter"><code>func</code></em>
343 <p class="since">Since 2.14</p>
346 <div class="refsect2" title="g_sequence_foreach_range ()">
347 <a name="g-sequence-foreach-range"></a><h3>g_sequence_foreach_range ()</h3>
348 <pre class="programlisting"><span class="returnvalue">void</span> g_sequence_foreach_range (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *begin,
349 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *end,
350 <a class="link" href="glib-Doubly-Linked-Lists.html#GFunc" title="GFunc ()"><span class="returnvalue">GFunc</span></a> func,
351 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> user_data);</pre>
353 Calls <em class="parameter"><code>func</code></em> for each item in the range (<em class="parameter"><code>begin</code></em>, <em class="parameter"><code>end</code></em>) passing
354 <em class="parameter"><code>user_data</code></em> to the function.</p>
355 <div class="variablelist"><table border="0">
356 <col align="left" valign="top">
359 <td><p><span class="term"><em class="parameter"><code>begin</code></em> :</span></p></td>
360 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a>
364 <td><p><span class="term"><em class="parameter"><code>end</code></em> :</span></p></td>
365 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a>
369 <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
370 <td> a <a class="link" href="glib-Doubly-Linked-Lists.html#GFunc" title="GFunc ()"><span class="type">GFunc</span></a>
374 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
375 <td> user data passed to <em class="parameter"><code>func</code></em>
380 <p class="since">Since 2.14</p>
383 <div class="refsect2" title="g_sequence_sort ()">
384 <a name="g-sequence-sort"></a><h3>g_sequence_sort ()</h3>
385 <pre class="programlisting"><span class="returnvalue">void</span> g_sequence_sort (<a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> *seq,
386 <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="returnvalue">GCompareDataFunc</span></a> cmp_func,
387 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> cmp_data);</pre>
389 Sorts <em class="parameter"><code>seq</code></em> using <em class="parameter"><code>cmp_func</code></em>.</p>
390 <div class="variablelist"><table border="0">
391 <col align="left" valign="top">
394 <td><p><span class="term"><em class="parameter"><code>seq</code></em> :</span></p></td>
395 <td> a <a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="type">GSequence</span></a>
399 <td><p><span class="term"><em class="parameter"><code>cmp_func</code></em> :</span></p></td>
400 <td> the <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="type">GCompareDataFunc</span></a> used to sort <em class="parameter"><code>seq</code></em>. This function is
401 passed two items of <em class="parameter"><code>seq</code></em> and should return 0 if they are equal,
402 a negative value if the first comes before the second, and a
403 positive value if the second comes before the first.
407 <td><p><span class="term"><em class="parameter"><code>cmp_data</code></em> :</span></p></td>
408 <td> user data passed to <em class="parameter"><code>cmp_func</code></em>
413 <p class="since">Since 2.14</p>
416 <div class="refsect2" title="g_sequence_sort_iter ()">
417 <a name="g-sequence-sort-iter"></a><h3>g_sequence_sort_iter ()</h3>
418 <pre class="programlisting"><span class="returnvalue">void</span> g_sequence_sort_iter (<a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> *seq,
419 <a class="link" href="glib-Sequences.html#GSequenceIterCompareFunc" title="GSequenceIterCompareFunc ()"><span class="returnvalue">GSequenceIterCompareFunc</span></a> cmp_func,
420 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> cmp_data);</pre>
422 Like <a class="link" href="glib-Sequences.html#g-sequence-sort" title="g_sequence_sort ()"><code class="function">g_sequence_sort()</code></a>, but uses a <a class="link" href="glib-Sequences.html#GSequenceIterCompareFunc" title="GSequenceIterCompareFunc ()"><span class="type">GSequenceIterCompareFunc</span></a> instead
423 of a GCompareDataFunc as the compare function</p>
424 <div class="variablelist"><table border="0">
425 <col align="left" valign="top">
428 <td><p><span class="term"><em class="parameter"><code>seq</code></em> :</span></p></td>
429 <td> a <a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="type">GSequence</span></a>
433 <td><p><span class="term"><em class="parameter"><code>cmp_func</code></em> :</span></p></td>
434 <td> the <span class="type">GSequenceItercompare</span> used to compare iterators in the
435 sequence. It is called with two iterators pointing into <em class="parameter"><code>seq</code></em>. It should
436 return 0 if the iterators are equal, a negative value if the first
437 iterator comes before the second, and a positive value if the second
438 iterator comes before the first.
442 <td><p><span class="term"><em class="parameter"><code>cmp_data</code></em> :</span></p></td>
443 <td> user data passed to <em class="parameter"><code>cmp_func</code></em>
448 <p class="since">Since 2.14</p>
451 <div class="refsect2" title="g_sequence_get_begin_iter ()">
452 <a name="g-sequence-get-begin-iter"></a><h3>g_sequence_get_begin_iter ()</h3>
453 <pre class="programlisting"><a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> * g_sequence_get_begin_iter (<a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> *seq);</pre>
455 Returns the begin iterator for <em class="parameter"><code>seq</code></em>.</p>
456 <div class="variablelist"><table border="0">
457 <col align="left" valign="top">
460 <td><p><span class="term"><em class="parameter"><code>seq</code></em> :</span></p></td>
461 <td> a <a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="type">GSequence</span></a>
465 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
466 <td> the begin iterator for <em class="parameter"><code>seq</code></em>.
472 <p class="since">Since 2.14</p>
475 <div class="refsect2" title="g_sequence_get_end_iter ()">
476 <a name="g-sequence-get-end-iter"></a><h3>g_sequence_get_end_iter ()</h3>
477 <pre class="programlisting"><a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> * g_sequence_get_end_iter (<a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> *seq);</pre>
479 Returns the end iterator for <em class="parameter"><code>seg</code></em></p>
480 <div class="variablelist"><table border="0">
481 <col align="left" valign="top">
484 <td><p><span class="term"><em class="parameter"><code>seq</code></em> :</span></p></td>
485 <td> a <a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="type">GSequence</span></a>
489 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
490 <td> the end iterator for <em class="parameter"><code>seq</code></em>
496 <p class="since">Since 2.14</p>
499 <div class="refsect2" title="g_sequence_get_iter_at_pos ()">
500 <a name="g-sequence-get-iter-at-pos"></a><h3>g_sequence_get_iter_at_pos ()</h3>
501 <pre class="programlisting"><a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> * g_sequence_get_iter_at_pos (<a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> *seq,
502 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> pos);</pre>
504 Returns the iterator at position <em class="parameter"><code>pos</code></em>. If <em class="parameter"><code>pos</code></em> is negative or larger
505 than the number of items in <em class="parameter"><code>seq</code></em>, the end iterator is returned.</p>
506 <div class="variablelist"><table border="0">
507 <col align="left" valign="top">
510 <td><p><span class="term"><em class="parameter"><code>seq</code></em> :</span></p></td>
511 <td> a <a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="type">GSequence</span></a>
515 <td><p><span class="term"><em class="parameter"><code>pos</code></em> :</span></p></td>
516 <td> a position in <em class="parameter"><code>seq</code></em>, or -1 for the end.
520 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
521 <td> The <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a> at position <em class="parameter"><code>pos</code></em>
527 <p class="since">Since 2.14</p>
530 <div class="refsect2" title="g_sequence_append ()">
531 <a name="g-sequence-append"></a><h3>g_sequence_append ()</h3>
532 <pre class="programlisting"><a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> * g_sequence_append (<a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> *seq,
533 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data);</pre>
535 Adds a new item to the end of <em class="parameter"><code>seq</code></em>.</p>
536 <div class="variablelist"><table border="0">
537 <col align="left" valign="top">
540 <td><p><span class="term"><em class="parameter"><code>seq</code></em> :</span></p></td>
541 <td> a <span class="type">GSequencePointer</span>
545 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
546 <td> the data for the new item
550 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
551 <td> an iterator pointing to the new item
557 <p class="since">Since 2.14</p>
560 <div class="refsect2" title="g_sequence_prepend ()">
561 <a name="g-sequence-prepend"></a><h3>g_sequence_prepend ()</h3>
562 <pre class="programlisting"><a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> * g_sequence_prepend (<a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> *seq,
563 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data);</pre>
565 Adds a new item to the front of <em class="parameter"><code>seq</code></em></p>
566 <div class="variablelist"><table border="0">
567 <col align="left" valign="top">
570 <td><p><span class="term"><em class="parameter"><code>seq</code></em> :</span></p></td>
571 <td> a <a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="type">GSequence</span></a>
575 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
576 <td> the data for the new item
580 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
581 <td> an iterator pointing to the new item
587 <p class="since">Since 2.14</p>
590 <div class="refsect2" title="g_sequence_insert_before ()">
591 <a name="g-sequence-insert-before"></a><h3>g_sequence_insert_before ()</h3>
592 <pre class="programlisting"><a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> * g_sequence_insert_before (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *iter,
593 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data);</pre>
595 Inserts a new item just before the item pointed to by <em class="parameter"><code>iter</code></em>.</p>
596 <div class="variablelist"><table border="0">
597 <col align="left" valign="top">
600 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
601 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a>
605 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
606 <td> the data for the new item
610 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
611 <td> an iterator pointing to the new item
617 <p class="since">Since 2.14</p>
620 <div class="refsect2" title="g_sequence_move ()">
621 <a name="g-sequence-move"></a><h3>g_sequence_move ()</h3>
622 <pre class="programlisting"><span class="returnvalue">void</span> g_sequence_move (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *src,
623 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *dest);</pre>
625 Moves the item pointed to by <em class="parameter"><code>src</code></em> to the position indicated by <em class="parameter"><code>dest</code></em>.
626 After calling this function <em class="parameter"><code>dest</code></em> will point to the position immediately
627 after <em class="parameter"><code>src</code></em>. It is allowed for <em class="parameter"><code>src</code></em> and <em class="parameter"><code>dest</code></em> to point into different
629 <div class="variablelist"><table border="0">
630 <col align="left" valign="top">
633 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
634 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a> pointing to the item to move
638 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
639 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a> pointing to the position to which
645 <p class="since">Since 2.14</p>
648 <div class="refsect2" title="g_sequence_swap ()">
649 <a name="g-sequence-swap"></a><h3>g_sequence_swap ()</h3>
650 <pre class="programlisting"><span class="returnvalue">void</span> g_sequence_swap (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *a,
651 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *b);</pre>
653 Swaps the items pointed to by <em class="parameter"><code>a</code></em> and <em class="parameter"><code>b</code></em>. It is allowed for <em class="parameter"><code>a</code></em> and <em class="parameter"><code>b</code></em>
654 to point into difference sequences.</p>
655 <div class="variablelist"><table border="0">
656 <col align="left" valign="top">
659 <td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
660 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a>
664 <td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
665 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a>
670 <p class="since">Since 2.14</p>
673 <div class="refsect2" title="g_sequence_insert_sorted ()">
674 <a name="g-sequence-insert-sorted"></a><h3>g_sequence_insert_sorted ()</h3>
675 <pre class="programlisting"><a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> * g_sequence_insert_sorted (<a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> *seq,
676 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data,
677 <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="returnvalue">GCompareDataFunc</span></a> cmp_func,
678 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> cmp_data);</pre>
680 Inserts <em class="parameter"><code>data</code></em> into <em class="parameter"><code>sequence</code></em> using <em class="parameter"><code>func</code></em> to determine the new position.
681 The sequence must already be sorted according to <em class="parameter"><code>cmp_func</code></em>; otherwise the
682 new position of <em class="parameter"><code>data</code></em> is undefined.</p>
683 <div class="variablelist"><table border="0">
684 <col align="left" valign="top">
687 <td><p><span class="term"><em class="parameter"><code>seq</code></em> :</span></p></td>
688 <td> a <a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="type">GSequence</span></a>
692 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
693 <td> the data to insert
697 <td><p><span class="term"><em class="parameter"><code>cmp_func</code></em> :</span></p></td>
698 <td> the <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="type">GCompareDataFunc</span></a> used to compare items in the sequence. It
699 is called with two items of the <em class="parameter"><code>seq</code></em> and <em class="parameter"><code>user_data</code></em>. It should
700 return 0 if the items are equal, a negative value if the first
701 item comes before the second, and a positive value if the second
702 item comes before the first.
706 <td><p><span class="term"><em class="parameter"><code>cmp_data</code></em> :</span></p></td>
707 <td> user data passed to <em class="parameter"><code>cmp_func</code></em>.
711 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
712 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a> pointing to the new item.
718 <p class="since">Since 2.14</p>
721 <div class="refsect2" title="g_sequence_insert_sorted_iter ()">
722 <a name="g-sequence-insert-sorted-iter"></a><h3>g_sequence_insert_sorted_iter ()</h3>
723 <pre class="programlisting"><a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> * g_sequence_insert_sorted_iter (<a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> *seq,
724 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data,
725 <a class="link" href="glib-Sequences.html#GSequenceIterCompareFunc" title="GSequenceIterCompareFunc ()"><span class="returnvalue">GSequenceIterCompareFunc</span></a> iter_cmp,
726 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> cmp_data);</pre>
728 Like <a class="link" href="glib-Sequences.html#g-sequence-insert-sorted" title="g_sequence_insert_sorted ()"><code class="function">g_sequence_insert_sorted()</code></a>, but uses
729 a <a class="link" href="glib-Sequences.html#GSequenceIterCompareFunc" title="GSequenceIterCompareFunc ()"><span class="type">GSequenceIterCompareFunc</span></a> instead of a <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="type">GCompareDataFunc</span></a> as
730 the compare function.</p>
731 <div class="variablelist"><table border="0">
732 <col align="left" valign="top">
735 <td><p><span class="term"><em class="parameter"><code>seq</code></em> :</span></p></td>
736 <td> a <a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="type">GSequence</span></a>
740 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
741 <td> data for the new item
745 <td><p><span class="term"><em class="parameter"><code>iter_cmp</code></em> :</span></p></td>
746 <td> the <span class="type">GSequenceItercompare</span> used to compare iterators in the
747 sequence. It is called with two iterators pointing into <em class="parameter"><code>seq</code></em>. It should
748 return 0 if the iterators are equal, a negative value if the first
749 iterator comes before the second, and a positive value if the second
750 iterator comes before the first.
754 <td><p><span class="term"><em class="parameter"><code>cmp_data</code></em> :</span></p></td>
755 <td> user data passed to <em class="parameter"><code>cmp_func</code></em>
759 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
760 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a> pointing to the new item
766 <p class="since">Since 2.14</p>
769 <div class="refsect2" title="g_sequence_sort_changed ()">
770 <a name="g-sequence-sort-changed"></a><h3>g_sequence_sort_changed ()</h3>
771 <pre class="programlisting"><span class="returnvalue">void</span> g_sequence_sort_changed (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *iter,
772 <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="returnvalue">GCompareDataFunc</span></a> cmp_func,
773 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> cmp_data);</pre>
775 Moves the data pointed to a new position as indicated by <em class="parameter"><code>cmp_func</code></em>. This
776 function should be called for items in a sequence already sorted according
777 to <em class="parameter"><code>cmp_func</code></em> whenever some aspect of an item changes so that <em class="parameter"><code>cmp_func</code></em>
778 may return different values for that item.</p>
779 <div class="variablelist"><table border="0">
780 <col align="left" valign="top">
783 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
784 <td> A <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a>
788 <td><p><span class="term"><em class="parameter"><code>cmp_func</code></em> :</span></p></td>
789 <td> the <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="type">GCompareDataFunc</span></a> used to compare items in the sequence. It
790 is called with two items of the <em class="parameter"><code>seq</code></em> and <em class="parameter"><code>user_data</code></em>. It should
791 return 0 if the items are equal, a negative value if the first
792 item comes before the second, and a positive value if the second
793 item comes before the first.
797 <td><p><span class="term"><em class="parameter"><code>cmp_data</code></em> :</span></p></td>
798 <td> user data passed to <em class="parameter"><code>cmp_func</code></em>.
803 <p class="since">Since 2.14</p>
806 <div class="refsect2" title="g_sequence_sort_changed_iter ()">
807 <a name="g-sequence-sort-changed-iter"></a><h3>g_sequence_sort_changed_iter ()</h3>
808 <pre class="programlisting"><span class="returnvalue">void</span> g_sequence_sort_changed_iter (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *iter,
809 <a class="link" href="glib-Sequences.html#GSequenceIterCompareFunc" title="GSequenceIterCompareFunc ()"><span class="returnvalue">GSequenceIterCompareFunc</span></a> iter_cmp,
810 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> cmp_data);</pre>
812 Like <a class="link" href="glib-Sequences.html#g-sequence-sort-changed" title="g_sequence_sort_changed ()"><code class="function">g_sequence_sort_changed()</code></a>, but uses
813 a <a class="link" href="glib-Sequences.html#GSequenceIterCompareFunc" title="GSequenceIterCompareFunc ()"><span class="type">GSequenceIterCompareFunc</span></a> instead of a <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="type">GCompareDataFunc</span></a> as
814 the compare function.</p>
815 <div class="variablelist"><table border="0">
816 <col align="left" valign="top">
819 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
820 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a>
824 <td><p><span class="term"><em class="parameter"><code>iter_cmp</code></em> :</span></p></td>
825 <td> the <span class="type">GSequenceItercompare</span> used to compare iterators in the
826 sequence. It is called with two iterators pointing into <em class="parameter"><code>seq</code></em>. It should
827 return 0 if the iterators are equal, a negative value if the first
828 iterator comes before the second, and a positive value if the second
829 iterator comes before the first.
833 <td><p><span class="term"><em class="parameter"><code>cmp_data</code></em> :</span></p></td>
834 <td> user data passed to <em class="parameter"><code>cmp_func</code></em>
839 <p class="since">Since 2.14</p>
842 <div class="refsect2" title="g_sequence_remove ()">
843 <a name="g-sequence-remove"></a><h3>g_sequence_remove ()</h3>
844 <pre class="programlisting"><span class="returnvalue">void</span> g_sequence_remove (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *iter);</pre>
846 Removes the item pointed to by <em class="parameter"><code>iter</code></em>. It is an error to pass the
847 end iterator to this function.
850 If the sequnce has a data destroy function associated with it, this
851 function is called on the data for the removed item.</p>
852 <div class="variablelist"><table border="0">
853 <col align="left" valign="top">
855 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
856 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a>
860 <p class="since">Since 2.14</p>
863 <div class="refsect2" title="g_sequence_remove_range ()">
864 <a name="g-sequence-remove-range"></a><h3>g_sequence_remove_range ()</h3>
865 <pre class="programlisting"><span class="returnvalue">void</span> g_sequence_remove_range (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *begin,
866 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *end);</pre>
868 Removes all items in the (<em class="parameter"><code>begin</code></em>, <em class="parameter"><code>end</code></em>) range.
871 If the sequence has a data destroy function associated with it, this
872 function is called on the data for the removed items.</p>
873 <div class="variablelist"><table border="0">
874 <col align="left" valign="top">
877 <td><p><span class="term"><em class="parameter"><code>begin</code></em> :</span></p></td>
878 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a>
882 <td><p><span class="term"><em class="parameter"><code>end</code></em> :</span></p></td>
883 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a>
888 <p class="since">Since 2.14</p>
891 <div class="refsect2" title="g_sequence_move_range ()">
892 <a name="g-sequence-move-range"></a><h3>g_sequence_move_range ()</h3>
893 <pre class="programlisting"><span class="returnvalue">void</span> g_sequence_move_range (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *dest,
894 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *begin,
895 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *end);</pre>
897 Inserts the (<em class="parameter"><code>begin</code></em>, <em class="parameter"><code>end</code></em>) range at the destination pointed to by ptr.
898 The <em class="parameter"><code>begin</code></em> and <em class="parameter"><code>end</code></em> iters must point into the same sequence. It is
899 allowed for <em class="parameter"><code>dest</code></em> to point to a different sequence than the one pointed
900 into by <em class="parameter"><code>begin</code></em> and <em class="parameter"><code>end</code></em>.
903 If <em class="parameter"><code>dest</code></em> is NULL, the range indicated by <em class="parameter"><code>begin</code></em> and <em class="parameter"><code>end</code></em> is
904 removed from the sequence. If <em class="parameter"><code>dest</code></em> iter points to a place within
905 the (<em class="parameter"><code>begin</code></em>, <em class="parameter"><code>end</code></em>) range, the range does not move.</p>
906 <div class="variablelist"><table border="0">
907 <col align="left" valign="top">
910 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
911 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a>
915 <td><p><span class="term"><em class="parameter"><code>begin</code></em> :</span></p></td>
916 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a>
920 <td><p><span class="term"><em class="parameter"><code>end</code></em> :</span></p></td>
921 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a>
926 <p class="since">Since 2.14</p>
929 <div class="refsect2" title="g_sequence_search ()">
930 <a name="g-sequence-search"></a><h3>g_sequence_search ()</h3>
931 <pre class="programlisting"><a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> * g_sequence_search (<a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> *seq,
932 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data,
933 <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="returnvalue">GCompareDataFunc</span></a> cmp_func,
934 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> cmp_data);</pre>
936 Returns an iterator pointing to the position where <em class="parameter"><code>data</code></em> would
937 be inserted according to <em class="parameter"><code>cmp_func</code></em> and <em class="parameter"><code>cmp_data</code></em>.</p>
938 <div class="variablelist"><table border="0">
939 <col align="left" valign="top">
942 <td><p><span class="term"><em class="parameter"><code>seq</code></em> :</span></p></td>
943 <td> a <a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="type">GSequence</span></a>
947 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
948 <td> data for the new item
952 <td><p><span class="term"><em class="parameter"><code>cmp_func</code></em> :</span></p></td>
953 <td> the <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="type">GCompareDataFunc</span></a> used to compare items in the sequence. It
954 is called with two items of the <em class="parameter"><code>seq</code></em> and <em class="parameter"><code>user_data</code></em>. It should
955 return 0 if the items are equal, a negative value if the first
956 item comes before the second, and a positive value if the second
957 item comes before the first.
961 <td><p><span class="term"><em class="parameter"><code>cmp_data</code></em> :</span></p></td>
962 <td> user data passed to <em class="parameter"><code>cmp_func</code></em>.
966 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
967 <td> an <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a> pointing to the position where <em class="parameter"><code>data</code></em>
968 would have been inserted according to <em class="parameter"><code>cmp_func</code></em> and <em class="parameter"><code>cmp_data</code></em>.
974 <p class="since">Since 2.14</p>
977 <div class="refsect2" title="g_sequence_search_iter ()">
978 <a name="g-sequence-search-iter"></a><h3>g_sequence_search_iter ()</h3>
979 <pre class="programlisting"><a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> * g_sequence_search_iter (<a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> *seq,
980 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data,
981 <a class="link" href="glib-Sequences.html#GSequenceIterCompareFunc" title="GSequenceIterCompareFunc ()"><span class="returnvalue">GSequenceIterCompareFunc</span></a> iter_cmp,
982 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> cmp_data);</pre>
984 Like <a class="link" href="glib-Sequences.html#g-sequence-search" title="g_sequence_search ()"><code class="function">g_sequence_search()</code></a>, but uses
985 a <a class="link" href="glib-Sequences.html#GSequenceIterCompareFunc" title="GSequenceIterCompareFunc ()"><span class="type">GSequenceIterCompareFunc</span></a> instead of a <a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="type">GCompareDataFunc</span></a> as
986 the compare function.</p>
987 <div class="variablelist"><table border="0">
988 <col align="left" valign="top">
991 <td><p><span class="term"><em class="parameter"><code>seq</code></em> :</span></p></td>
992 <td> a <a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="type">GSequence</span></a>
996 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
997 <td> data for the new item
1001 <td><p><span class="term"><em class="parameter"><code>iter_cmp</code></em> :</span></p></td>
1002 <td> the <span class="type">GSequenceIterCompare</span> function used to compare iterators
1003 in the sequence. It is called with two iterators pointing into <em class="parameter"><code>seq</code></em>.
1004 It should return 0 if the iterators are equal, a negative value if the
1005 first iterator comes before the second, and a positive value if the
1006 second iterator comes before the first.
1010 <td><p><span class="term"><em class="parameter"><code>cmp_data</code></em> :</span></p></td>
1011 <td> user data passed to <em class="parameter"><code>iter_cmp</code></em>
1015 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1016 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a> pointing to the position in <em class="parameter"><code>seq</code></em>
1017 where <em class="parameter"><code>data</code></em> would have been inserted according to <em class="parameter"><code>iter_cmp</code></em> and <em class="parameter"><code>cmp_data</code></em>.
1023 <p class="since">Since 2.14</p>
1026 <div class="refsect2" title="g_sequence_get ()">
1027 <a name="g-sequence-get"></a><h3>g_sequence_get ()</h3>
1028 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> g_sequence_get (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *iter);</pre>
1030 Returns the data that <em class="parameter"><code>iter</code></em> points to.</p>
1031 <div class="variablelist"><table border="0">
1032 <col align="left" valign="top">
1035 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
1036 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a>
1040 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1041 <td> the data that <em class="parameter"><code>iter</code></em> points to
1047 <p class="since">Since 2.14</p>
1050 <div class="refsect2" title="g_sequence_set ()">
1051 <a name="g-sequence-set"></a><h3>g_sequence_set ()</h3>
1052 <pre class="programlisting"><span class="returnvalue">void</span> g_sequence_set (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *iter,
1053 <a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="returnvalue">gpointer</span></a> data);</pre>
1055 Changes the data for the item pointed to by <em class="parameter"><code>iter</code></em> to be <em class="parameter"><code>data</code></em>. If
1056 the sequence has a data destroy function associated with it, that
1057 function is called on the existing data that <em class="parameter"><code>iter</code></em> pointed to.</p>
1058 <div class="variablelist"><table border="0">
1059 <col align="left" valign="top">
1062 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
1063 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a>
1067 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
1068 <td> new data for the item
1073 <p class="since">Since 2.14</p>
1076 <div class="refsect2" title="g_sequence_iter_is_begin ()">
1077 <a name="g-sequence-iter-is-begin"></a><h3>g_sequence_iter_is_begin ()</h3>
1078 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_sequence_iter_is_begin (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *iter);</pre>
1080 Returns whether <em class="parameter"><code>iter</code></em> is the begin iterator</p>
1081 <div class="variablelist"><table border="0">
1082 <col align="left" valign="top">
1085 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
1086 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a>
1090 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1091 <td> whether <em class="parameter"><code>iter</code></em> is the begin iterator
1097 <p class="since">Since 2.14</p>
1100 <div class="refsect2" title="g_sequence_iter_is_end ()">
1101 <a name="g-sequence-iter-is-end"></a><h3>g_sequence_iter_is_end ()</h3>
1102 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_sequence_iter_is_end (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *iter);</pre>
1104 Returns whether <em class="parameter"><code>iter</code></em> is the end iterator</p>
1105 <div class="variablelist"><table border="0">
1106 <col align="left" valign="top">
1109 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
1110 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a>
1114 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1115 <td> Whether <em class="parameter"><code>iter</code></em> is the end iterator.
1121 <p class="since">Since 2.14</p>
1124 <div class="refsect2" title="g_sequence_iter_next ()">
1125 <a name="g-sequence-iter-next"></a><h3>g_sequence_iter_next ()</h3>
1126 <pre class="programlisting"><a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> * g_sequence_iter_next (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *iter);</pre>
1128 Returns an iterator pointing to the next position after <em class="parameter"><code>iter</code></em>. If
1129 <em class="parameter"><code>iter</code></em> is the end iterator, the end iterator is returned.</p>
1130 <div class="variablelist"><table border="0">
1131 <col align="left" valign="top">
1134 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
1135 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a>
1139 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1140 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a> pointing to the next position after <em class="parameter"><code>iter</code></em>.
1146 <p class="since">Since 2.14</p>
1149 <div class="refsect2" title="g_sequence_iter_prev ()">
1150 <a name="g-sequence-iter-prev"></a><h3>g_sequence_iter_prev ()</h3>
1151 <pre class="programlisting"><a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> * g_sequence_iter_prev (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *iter);</pre>
1153 Returns an iterator pointing to the previous position before <em class="parameter"><code>iter</code></em>. If
1154 <em class="parameter"><code>iter</code></em> is the begin iterator, the begin iterator is returned.</p>
1155 <div class="variablelist"><table border="0">
1156 <col align="left" valign="top">
1159 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
1160 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a>
1164 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1165 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a> pointing to the previous position before
1166 <em class="parameter"><code>iter</code></em>.
1172 <p class="since">Since 2.14</p>
1175 <div class="refsect2" title="g_sequence_iter_get_position ()">
1176 <a name="g-sequence-iter-get-position"></a><h3>g_sequence_iter_get_position ()</h3>
1177 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> g_sequence_iter_get_position (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *iter);</pre>
1179 Returns the position of <em class="parameter"><code>iter</code></em></p>
1180 <div class="variablelist"><table border="0">
1181 <col align="left" valign="top">
1184 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
1185 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a>
1189 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1190 <td> the position of <em class="parameter"><code>iter</code></em>
1196 <p class="since">Since 2.14</p>
1199 <div class="refsect2" title="g_sequence_iter_move ()">
1200 <a name="g-sequence-iter-move"></a><h3>g_sequence_iter_move ()</h3>
1201 <pre class="programlisting"><a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> * g_sequence_iter_move (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *iter,
1202 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> delta);</pre>
1204 Returns the <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a> which is <em class="parameter"><code>delta</code></em> positions away from <em class="parameter"><code>iter</code></em>.
1205 If <em class="parameter"><code>iter</code></em> is closer than -<em class="parameter"><code>delta</code></em> positions to the beginning of the sequence,
1206 the begin iterator is returned. If <em class="parameter"><code>iter</code></em> is closer than <em class="parameter"><code>delta</code></em> positions
1207 to the end of the sequence, the end iterator is returned.</p>
1208 <div class="variablelist"><table border="0">
1209 <col align="left" valign="top">
1212 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
1213 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a>
1217 <td><p><span class="term"><em class="parameter"><code>delta</code></em> :</span></p></td>
1218 <td> A positive or negative number indicating how many positions away
1219 from <em class="parameter"><code>iter</code></em> the returned <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a> will be.
1223 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1224 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a> which is <em class="parameter"><code>delta</code></em> positions away from <em class="parameter"><code>iter</code></em>.
1230 <p class="since">Since 2.14</p>
1233 <div class="refsect2" title="g_sequence_iter_get_sequence ()">
1234 <a name="g-sequence-iter-get-sequence"></a><h3>g_sequence_iter_get_sequence ()</h3>
1235 <pre class="programlisting"><a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="returnvalue">GSequence</span></a> * g_sequence_iter_get_sequence (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *iter);</pre>
1237 Returns the <a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="type">GSequence</span></a> that <em class="parameter"><code>iter</code></em> points into.</p>
1238 <div class="variablelist"><table border="0">
1239 <col align="left" valign="top">
1242 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
1243 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a>
1247 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1248 <td> the <a class="link" href="glib-Sequences.html#GSequence" title="GSequence"><span class="type">GSequence</span></a> that <em class="parameter"><code>iter</code></em> points into.
1254 <p class="since">Since 2.14</p>
1257 <div class="refsect2" title="g_sequence_iter_compare ()">
1258 <a name="g-sequence-iter-compare"></a><h3>g_sequence_iter_compare ()</h3>
1259 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> g_sequence_iter_compare (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *a,
1260 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *b);</pre>
1262 Returns a negative number if <em class="parameter"><code>a</code></em> comes before <em class="parameter"><code>b</code></em>, 0 if they are equal,
1263 and a positive number if <em class="parameter"><code>a</code></em> comes after <em class="parameter"><code>b</code></em>.
1266 The <em class="parameter"><code>a</code></em> and <em class="parameter"><code>b</code></em> iterators must point into the same sequence.</p>
1267 <div class="variablelist"><table border="0">
1268 <col align="left" valign="top">
1271 <td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
1272 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a>
1276 <td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
1277 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a>
1281 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1282 <td> A negative number if <em class="parameter"><code>a</code></em> comes before <em class="parameter"><code>b</code></em>, 0 if they are
1283 equal, and a positive number if <em class="parameter"><code>a</code></em> comes after <em class="parameter"><code>b</code></em>.
1289 <p class="since">Since 2.14</p>
1292 <div class="refsect2" title="g_sequence_range_get_midpoint ()">
1293 <a name="g-sequence-range-get-midpoint"></a><h3>g_sequence_range_get_midpoint ()</h3>
1294 <pre class="programlisting"><a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> * g_sequence_range_get_midpoint (<a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *begin,
1295 <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *end);</pre>
1297 Finds an iterator somewhere in the range (<em class="parameter"><code>begin</code></em>, <em class="parameter"><code>end</code></em>). This
1298 iterator will be close to the middle of the range, but is not
1299 guaranteed to be <span class="emphasis"><em>exactly</em></span> in the middle.
1302 The <em class="parameter"><code>begin</code></em> and <em class="parameter"><code>end</code></em> iterators must both point to the same sequence and
1303 <em class="parameter"><code>begin</code></em> must come before or be equal to <em class="parameter"><code>end</code></em> in the sequence.</p>
1304 <div class="variablelist"><table border="0">
1305 <col align="left" valign="top">
1308 <td><p><span class="term"><em class="parameter"><code>begin</code></em> :</span></p></td>
1309 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a>
1313 <td><p><span class="term"><em class="parameter"><code>end</code></em> :</span></p></td>
1314 <td> a <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a>
1318 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1319 <td> A <a class="link" href="glib-Sequences.html#GSequenceIter" title="GSequenceIter"><span class="type">GSequenceIter</span></a> pointing somewhere in the
1320 (<em class="parameter"><code>begin</code></em>, <em class="parameter"><code>end</code></em>) range.
1326 <p class="since">Since 2.14</p>
1330 <div class="footer">
1332 Generated by GTK-Doc V1.13</div>