summaryrefslogtreecommitdiffstats
path: root/docs/html/raptor2-section-sequence.html
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--docs/html/raptor2-section-sequence.html870
1 files changed, 870 insertions, 0 deletions
diff --git a/docs/html/raptor2-section-sequence.html b/docs/html/raptor2-section-sequence.html
new file mode 100644
index 0000000..7542fde
--- /dev/null
+++ b/docs/html/raptor2-section-sequence.html
@@ -0,0 +1,870 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>section-sequence: Raptor RDF Syntax Library Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
+<link rel="home" href="index.html" title="Raptor RDF Syntax Library Manual">
+<link rel="up" href="reference-manual.html" title="Part II. Raptor Reference Manual">
+<link rel="prev" href="raptor2-section-sax2.html" title="section-sax2">
+<link rel="next" href="raptor2-section-serializer.html" title="section-serializer">
+<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#raptor2-section-sequence.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="reference-manual.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="raptor2-section-sax2.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="raptor2-section-serializer.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="raptor2-section-sequence"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="raptor2-section-sequence.top_of_page"></a>section-sequence</span></h2>
+<p>section-sequence</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="raptor2-section-sequence.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_proto_type">
+<col class="functions_proto_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="raptor2-section-sequence.html#raptor-sequence" title="raptor_sequence"><span class="returnvalue">raptor_sequence</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="raptor2-section-sequence.html#raptor-new-sequence" title="raptor_new_sequence ()">raptor_new_sequence</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="raptor2-section-sequence.html#raptor-sequence" title="raptor_sequence"><span class="returnvalue">raptor_sequence</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="raptor2-section-sequence.html#raptor-new-sequence-with-context" title="raptor_new_sequence_with_context ()">raptor_new_sequence_with_context</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="raptor2-section-sequence.html#raptor-free-sequence" title="raptor_free_sequence ()">raptor_free_sequence</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span> *
+</td>
+<td class="function_name">
+<a class="link" href="raptor2-section-sequence.html#raptor-sequence-delete-at" title="raptor_sequence_delete_at ()">raptor_sequence_delete_at</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span> *
+</td>
+<td class="function_name">
+<a class="link" href="raptor2-section-sequence.html#raptor-sequence-get-at" title="raptor_sequence_get_at ()">raptor_sequence_get_at</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="raptor2-section-sequence.html#raptor-sequence-join" title="raptor_sequence_join ()">raptor_sequence_join</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="raptor2-section-sequence.html#raptor-sequence-next-permutation" title="raptor_sequence_next_permutation ()">raptor_sequence_next_permutation</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span> *
+</td>
+<td class="function_name">
+<a class="link" href="raptor2-section-sequence.html#raptor-sequence-pop" title="raptor_sequence_pop ()">raptor_sequence_pop</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="raptor2-section-sequence.html#raptor-sequence-print" title="raptor_sequence_print ()">raptor_sequence_print</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="raptor2-section-sequence.html#raptor-sequence-push" title="raptor_sequence_push ()">raptor_sequence_push</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="raptor2-section-sequence.html#raptor-sequence-reverse" title="raptor_sequence_reverse ()">raptor_sequence_reverse</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="raptor2-section-sequence.html#raptor-sequence-set-at" title="raptor_sequence_set_at ()">raptor_sequence_set_at</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="raptor2-section-sequence.html#raptor-sequence-shift" title="raptor_sequence_shift ()">raptor_sequence_shift</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="raptor2-section-sequence.html#raptor-sequence-size" title="raptor_sequence_size ()">raptor_sequence_size</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="raptor2-section-sequence.html#raptor-sequence-sort" title="raptor_sequence_sort ()">raptor_sequence_sort</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="raptor2-section-sequence.html#raptor-sequence-sort-r" title="raptor_sequence_sort_r ()">raptor_sequence_sort_r</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="raptor2-section-sequence.html#raptor-sequence-swap" title="raptor_sequence_swap ()">raptor_sequence_swap</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span> *
+</td>
+<td class="function_name">
+<a class="link" href="raptor2-section-sequence.html#raptor-sequence-unshift" title="raptor_sequence_unshift ()">raptor_sequence_unshift</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="raptor2-section-sequence.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="other_proto_type">
+<col class="other_proto_name">
+</colgroup>
+<tbody><tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="raptor2-section-sequence.html#raptor-sequence" title="raptor_sequence">raptor_sequence</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="raptor2-section-sequence.description"></a><h2>Description</h2>
+</div>
+<div class="refsect1">
+<a name="raptor2-section-sequence.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="raptor-new-sequence"></a><h3>raptor_new_sequence ()</h3>
+<pre class="programlisting"><a class="link" href="raptor2-section-sequence.html#raptor-sequence" title="raptor_sequence"><span class="returnvalue">raptor_sequence</span></a> *
+raptor_new_sequence (<em class="parameter"><code><a class="link" href="raptor2-section-general.html#raptor-data-free-handler" title="raptor_data_free_handler ()"><span class="type">raptor_data_free_handler</span></a> free_handler</code></em>,
+ <em class="parameter"><code><a class="link" href="raptor2-section-general.html#raptor-data-print-handler" title="raptor_data_print_handler ()"><span class="type">raptor_data_print_handler</span></a> print_handler</code></em>);</pre>
+<p>Constructor - create a new sequence with the given handlers.</p>
+<p>This creates a sequence over objects that need only the item data
+pointers in order to print or free the objects.</p>
+<p>For example sequences of strings could use handlers (free, NULL)
+and sequences of <a class="link" href="raptor2-section-uri.html#raptor-uri" title="raptor_uri"><span class="type">raptor_uri</span></a> could use (raptor_free_uri,
+raptor_print_uri)</p>
+<div class="refsect3">
+<a name="raptor-new-sequence.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>free_handler</p></td>
+<td class="parameter_description"><p>handler to free a sequence item</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>print_handler</p></td>
+<td class="parameter_description"><p>handler to print a sequence item to a FILE*</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="raptor-new-sequence.returns"></a><h4>Returns</h4>
+<p> a new <a class="link" href="raptor2-section-sequence.html#raptor-sequence" title="raptor_sequence"><span class="type">raptor_sequence</span></a> or NULL on failure </p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="raptor-new-sequence-with-context"></a><h3>raptor_new_sequence_with_context ()</h3>
+<pre class="programlisting"><a class="link" href="raptor2-section-sequence.html#raptor-sequence" title="raptor_sequence"><span class="returnvalue">raptor_sequence</span></a> *
+raptor_new_sequence_with_context (<em class="parameter"><code><a class="link" href="raptor2-section-general.html#raptor-data-context-free-handler" title="raptor_data_context_free_handler ()"><span class="type">raptor_data_context_free_handler</span></a> free_handler</code></em>,
+ <em class="parameter"><code><a class="link" href="raptor2-section-general.html#raptor-data-context-print-handler" title="raptor_data_context_print_handler ()"><span class="type">raptor_data_context_print_handler</span></a> print_handler</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *handler_context</code></em>);</pre>
+<p>Constructor - create a new sequence with the given handlers and handler context.</p>
+<p>This creates a sequence over objects that need context + item data
+pointers in order to print or free the objects.</p>
+<div class="refsect3">
+<a name="raptor-new-sequence-with-context.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>free_handler</p></td>
+<td class="parameter_description"><p>handler to free a sequence item</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>print_handler</p></td>
+<td class="parameter_description"><p>handler to print a sequence item to a FILE*</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>handler_context</p></td>
+<td class="parameter_description"><p>context information to pass to free/print handlers</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="raptor-new-sequence-with-context.returns"></a><h4>Returns</h4>
+<p> a new <a class="link" href="raptor2-section-sequence.html#raptor-sequence" title="raptor_sequence"><span class="type">raptor_sequence</span></a> or NULL on failure </p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="raptor-free-sequence"></a><h3>raptor_free_sequence ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+raptor_free_sequence (<em class="parameter"><code><a class="link" href="raptor2-section-sequence.html#raptor-sequence" title="raptor_sequence"><span class="type">raptor_sequence</span></a> *seq</code></em>);</pre>
+<p>Destructor - free a <a class="link" href="raptor2-section-sequence.html#raptor-sequence" title="raptor_sequence"><span class="type">raptor_sequence</span></a></p>
+<div class="refsect3">
+<a name="raptor-free-sequence.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>sequence to destroy</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="raptor-sequence-delete-at"></a><h3>raptor_sequence_delete_at ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> *
+raptor_sequence_delete_at (<em class="parameter"><code><a class="link" href="raptor2-section-sequence.html#raptor-sequence" title="raptor_sequence"><span class="type">raptor_sequence</span></a> *seq</code></em>,
+ <em class="parameter"><code><span class="type">int</span> idx</code></em>);</pre>
+<p>Remove an item from a position a sequence, returning it</p>
+<p>The item at the offset <em class="parameter"><code>idx</code></em>
+ in the sequence is replaced with a
+NULL pointer and any existing item is returned. The caller
+owns the resulting item.</p>
+<div class="refsect3">
+<a name="raptor-sequence-delete-at.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>sequence object</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>idx</p></td>
+<td class="parameter_description"><p>index into sequence to operate at</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="raptor-sequence-delete-at.returns"></a><h4>Returns</h4>
+<p> NULL on failure</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="raptor-sequence-get-at"></a><h3>raptor_sequence_get_at ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> *
+raptor_sequence_get_at (<em class="parameter"><code><a class="link" href="raptor2-section-sequence.html#raptor-sequence" title="raptor_sequence"><span class="type">raptor_sequence</span></a> *seq</code></em>,
+ <em class="parameter"><code><span class="type">int</span> idx</code></em>);</pre>
+<p>Retrieve an item at offset <em class="parameter"><code>index</code></em>
+ in the sequence.</p>
+<p>This is efficient to perform. <a class="link" href="raptor2-section-sequence.html#raptor-sequence" title="raptor_sequence"><span class="type">raptor_sequence</span></a> is optimised
+to append/remove from the end of the sequence.</p>
+<p>After this call the item is still owned by the sequence.</p>
+<div class="refsect3">
+<a name="raptor-sequence-get-at.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>sequence to use</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>idx</p></td>
+<td class="parameter_description"><p>index of item to get</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="raptor-sequence-get-at.returns"></a><h4>Returns</h4>
+<p> the object or NULL if <em class="parameter"><code>index</code></em>
+is out of range (0... sequence size - 1)</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="raptor-sequence-join"></a><h3>raptor_sequence_join ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+raptor_sequence_join (<em class="parameter"><code><a class="link" href="raptor2-section-sequence.html#raptor-sequence" title="raptor_sequence"><span class="type">raptor_sequence</span></a> *dest</code></em>,
+ <em class="parameter"><code><a class="link" href="raptor2-section-sequence.html#raptor-sequence" title="raptor_sequence"><span class="type">raptor_sequence</span></a> *src</code></em>);</pre>
+<p>Join two sequences moving all items from one sequence to the end of another.</p>
+<p>After this operation, sequence src will be empty (zero size) but
+will have the same item capacity as before.</p>
+<div class="refsect3">
+<a name="raptor-sequence-join.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>dest</p></td>
+<td class="parameter_description"><p><a class="link" href="raptor2-section-sequence.html#raptor-sequence" title="raptor_sequence"><span class="type">raptor_sequence</span></a> destination sequence</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>src</p></td>
+<td class="parameter_description"><p><a class="link" href="raptor2-section-sequence.html#raptor-sequence" title="raptor_sequence"><span class="type">raptor_sequence</span></a> source sequence</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="raptor-sequence-join.returns"></a><h4>Returns</h4>
+<p> non-0 on failure</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="raptor-sequence-next-permutation"></a><h3>raptor_sequence_next_permutation ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+raptor_sequence_next_permutation (<em class="parameter"><code><a class="link" href="raptor2-section-sequence.html#raptor-sequence" title="raptor_sequence"><span class="type">raptor_sequence</span></a> *seq</code></em>,
+ <em class="parameter"><code><a class="link" href="raptor2-section-general.html#raptor-data-compare-handler" title="raptor_data_compare_handler ()"><span class="type">raptor_data_compare_handler</span></a> compare</code></em>);</pre>
+<p>Get the next permutation of a sequence in lexicographic order</p>
+<p>Assumes the initial order of the items is lexicographically
+increasing. This function alters the order of the items until the
+last permuatation is done at which point the contents is reset to
+the intial order.</p>
+<p>Algorithm used is described in http://en.wikipedia.org/wiki/Permutation</p>
+<p>The comparison function <em class="parameter"><code>compare</code></em>
+ is compatible with that used for
+<code class="function">qsort()</code> and provides the addresses of pointers to the data that
+must be dereferenced to get to the stored sequence data.</p>
+<div class="refsect3">
+<a name="raptor-sequence-next-permutation.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>int seq</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>compare</p></td>
+<td class="parameter_description"><p>comparison function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="raptor-sequence-next-permutation.returns"></a><h4>Returns</h4>
+<p> non-0 at the last permutation</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="raptor-sequence-pop"></a><h3>raptor_sequence_pop ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> *
+raptor_sequence_pop (<em class="parameter"><code><a class="link" href="raptor2-section-sequence.html#raptor-sequence" title="raptor_sequence"><span class="type">raptor_sequence</span></a> *seq</code></em>);</pre>
+<p>Retrieve the item at the end of the sequence.</p>
+<p>Ownership of the item is transferred to the caller,
+i.e. caller is responsible of freeing the item.</p>
+<div class="refsect3">
+<a name="raptor-sequence-pop.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>sequence to use</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="raptor-sequence-pop.returns"></a><h4>Returns</h4>
+<p> the object or NULL if the sequence is empty</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="raptor-sequence-print"></a><h3>raptor_sequence_print ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+raptor_sequence_print (<em class="parameter"><code><a class="link" href="raptor2-section-sequence.html#raptor-sequence" title="raptor_sequence"><span class="type">raptor_sequence</span></a> *seq</code></em>,
+ <em class="parameter"><code><span class="type">FILE</span> *fh</code></em>);</pre>
+<p>Print the sequence contents using the print_handler to print the data items.</p>
+<div class="refsect3">
+<a name="raptor-sequence-print.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>sequence to sort</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>fh</p></td>
+<td class="parameter_description"><p>file handle</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="raptor-sequence-print.returns"></a><h4>Returns</h4>
+<p> non-0 on failure</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="raptor-sequence-push"></a><h3>raptor_sequence_push ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+raptor_sequence_push (<em class="parameter"><code><a class="link" href="raptor2-section-sequence.html#raptor-sequence" title="raptor_sequence"><span class="type">raptor_sequence</span></a> *seq</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *data</code></em>);</pre>
+<p>Add an item to the end of the sequence.</p>
+<p>The sequence takes ownership of the pushed item and frees it with the
+free_handler. On failure, the item is freed immediately.</p>
+<div class="refsect3">
+<a name="raptor-sequence-push.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>sequence to add to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>item to add</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="raptor-sequence-push.returns"></a><h4>Returns</h4>
+<p> non-0 on failure</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="raptor-sequence-reverse"></a><h3>raptor_sequence_reverse ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+raptor_sequence_reverse (<em class="parameter"><code><a class="link" href="raptor2-section-sequence.html#raptor-sequence" title="raptor_sequence"><span class="type">raptor_sequence</span></a> *seq</code></em>,
+ <em class="parameter"><code><span class="type">int</span> start_index</code></em>,
+ <em class="parameter"><code><span class="type">int</span> length</code></em>);</pre>
+<p>Reverse a range of elements</p>
+<div class="refsect3">
+<a name="raptor-sequence-reverse.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>sequence</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>start_index</p></td>
+<td class="parameter_description"><p>starting index</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>length</p></td>
+<td class="parameter_description"><p>number of elements to reverse</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="raptor-sequence-reverse.returns"></a><h4>Returns</h4>
+<p> non-0 if arguments are out of range</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="raptor-sequence-set-at"></a><h3>raptor_sequence_set_at ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+raptor_sequence_set_at (<em class="parameter"><code><a class="link" href="raptor2-section-sequence.html#raptor-sequence" title="raptor_sequence"><span class="type">raptor_sequence</span></a> *seq</code></em>,
+ <em class="parameter"><code><span class="type">int</span> idx</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *data</code></em>);</pre>
+<p>Replace/set an item in a sequence.</p>
+<p>The item at the offset <em class="parameter"><code>idx</code></em>
+ in the sequence is replaced with the
+new item <em class="parameter"><code>data</code></em>
+ (which may be NULL). Any existing item is freed
+with the sequence's free_handler. If necessary the sequence
+is extended (with NULLs) to handle a larger offset.</p>
+<p>The sequence takes ownership of the new data item. On failure, the
+item is freed immediately.</p>
+<div class="refsect3">
+<a name="raptor-sequence-set-at.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>sequence object</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>idx</p></td>
+<td class="parameter_description"><p>index into sequence to operate at</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>new data item.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="raptor-sequence-set-at.returns"></a><h4>Returns</h4>
+<p> non-0 on failure</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="raptor-sequence-shift"></a><h3>raptor_sequence_shift ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+raptor_sequence_shift (<em class="parameter"><code><a class="link" href="raptor2-section-sequence.html#raptor-sequence" title="raptor_sequence"><span class="type">raptor_sequence</span></a> *seq</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *data</code></em>);</pre>
+<p>Add an item to the start of the sequence.</p>
+<p>The sequence takes ownership of the shifted item and frees it with the
+free_handler. On failure, the item is freed immediately.</p>
+<div class="refsect3">
+<a name="raptor-sequence-shift.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>sequence to add to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>item to add</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="raptor-sequence-shift.returns"></a><h4>Returns</h4>
+<p> non-0 on failure</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="raptor-sequence-size"></a><h3>raptor_sequence_size ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+raptor_sequence_size (<em class="parameter"><code><a class="link" href="raptor2-section-sequence.html#raptor-sequence" title="raptor_sequence"><span class="type">raptor_sequence</span></a> *seq</code></em>);</pre>
+<p>Get the number of items in a sequence.</p>
+<div class="refsect3">
+<a name="raptor-sequence-size.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>sequence object</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="raptor-sequence-size.returns"></a><h4>Returns</h4>
+<p> the sequence size (&gt;=0)</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="raptor-sequence-sort"></a><h3>raptor_sequence_sort ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+raptor_sequence_sort (<em class="parameter"><code><a class="link" href="raptor2-section-sequence.html#raptor-sequence" title="raptor_sequence"><span class="type">raptor_sequence</span></a> *seq</code></em>,
+ <em class="parameter"><code><a class="link" href="raptor2-section-general.html#raptor-data-compare-handler" title="raptor_data_compare_handler ()"><span class="type">raptor_data_compare_handler</span></a> compare</code></em>);</pre>
+<p>Sort a sequence inline</p>
+<p>The comparison function <em class="parameter"><code>compare</code></em>
+ is compatible with that used for
+<code class="function">qsort()</code> and provides the addresses of pointers to the data that
+must be dereferenced to get to the stored sequence data.</p>
+<div class="refsect3">
+<a name="raptor-sequence-sort.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>sequence to sort</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>compare</p></td>
+<td class="parameter_description"><p>comparison function with args (a, b)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="raptor-sequence-sort-r"></a><h3>raptor_sequence_sort_r ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+raptor_sequence_sort_r (<em class="parameter"><code><a class="link" href="raptor2-section-sequence.html#raptor-sequence" title="raptor_sequence"><span class="type">raptor_sequence</span></a> *seq</code></em>,
+ <em class="parameter"><code><a class="link" href="raptor2-section-general.html#raptor-data-compare-arg-handler" title="raptor_data_compare_arg_handler ()"><span class="type">raptor_data_compare_arg_handler</span></a> compare</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *user_data</code></em>);</pre>
+<p>Sort a sequence inline with user data</p>
+<p>The comparison function <em class="parameter"><code>compare_r</code></em>
+ is compatible with that used
+for <a class="link" href="raptor2-section-general.html#raptor-sort-r" title="raptor_sort_r ()"><code class="function">raptor_sort_r()</code></a> and provides the addresses of pointers to the
+data that must be dereferenced to get to the stored sequence data.</p>
+<div class="refsect3">
+<a name="raptor-sequence-sort-r.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>sequence to sort</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>compare</p></td>
+<td class="parameter_description"><p>comparison function with args (a, b, user data)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>User data argument for <em class="parameter"><code>compare</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="raptor-sequence-swap"></a><h3>raptor_sequence_swap ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+raptor_sequence_swap (<em class="parameter"><code><a class="link" href="raptor2-section-sequence.html#raptor-sequence" title="raptor_sequence"><span class="type">raptor_sequence</span></a> *seq</code></em>,
+ <em class="parameter"><code><span class="type">int</span> i</code></em>,
+ <em class="parameter"><code><span class="type">int</span> j</code></em>);</pre>
+<p>Swap a pair of elements in a sequence</p>
+<div class="refsect3">
+<a name="raptor-sequence-swap.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>sequence</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>i</p></td>
+<td class="parameter_description"><p>first data index</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>j</p></td>
+<td class="parameter_description"><p>second data index</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="raptor-sequence-swap.returns"></a><h4>Returns</h4>
+<p> non-0 if arguments are out of range</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="raptor-sequence-unshift"></a><h3>raptor_sequence_unshift ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> *
+raptor_sequence_unshift (<em class="parameter"><code><a class="link" href="raptor2-section-sequence.html#raptor-sequence" title="raptor_sequence"><span class="type">raptor_sequence</span></a> *seq</code></em>);</pre>
+<p>Retrieve the item at the start of the sequence.</p>
+<p>Ownership of the item is transferred to the caller,
+i.e. caller is responsible of freeing the item.</p>
+<div class="refsect3">
+<a name="raptor-sequence-unshift.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>sequence to use</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="raptor-sequence-unshift.returns"></a><h4>Returns</h4>
+<p> the object or NULL if the sequence is empty</p>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="raptor2-section-sequence.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="raptor-sequence"></a><h3>raptor_sequence</h3>
+<pre class="programlisting">raptor_sequence* raptor_sequence;
+</pre>
+<p>Raptor sequence class</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.33.1</div>
+</body>
+</html> \ No newline at end of file