eccodes/html/group__keys__iterator.html

386 lines
21 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>eccodes: Iterating on keys names</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">eccodes
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>C&#160;Interface</span></a></li>
<li><a href="classeccodes.html"><span>F90&#160;Interface</span></a></li>
<li><a href="namespaces.html"><span>Python&#160;Interface</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Iterating on keys names</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcodes__keys__iterator.html">codes_keys_iterator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gaa0b60d176497f5d4bc34564c31e76cf1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys__iterator.html#gaa0b60d176497f5d4bc34564c31e76cf1">CODES_KEYS_ITERATOR_ALL_KEYS</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:gaa0b60d176497f5d4bc34564c31e76cf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga782b83b0b913da3841eb82921642aaa8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys__iterator.html#ga782b83b0b913da3841eb82921642aaa8">CODES_KEYS_ITERATOR_SKIP_READ_ONLY</a>&#160;&#160;&#160;(1&lt;&lt;0)</td></tr>
<tr class="separator:ga782b83b0b913da3841eb82921642aaa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6f7115fdd2c821886a43934e4aa16073"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys__iterator.html#ga6f7115fdd2c821886a43934e4aa16073">CODES_KEYS_ITERATOR_SKIP_OPTIONAL</a>&#160;&#160;&#160;(1&lt;&lt;1)</td></tr>
<tr class="separator:ga6f7115fdd2c821886a43934e4aa16073"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga81f606c554c906f1fed1b9cd432aec00"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys__iterator.html#ga81f606c554c906f1fed1b9cd432aec00">CODES_KEYS_ITERATOR_SKIP_EDITION_SPECIFIC</a>&#160;&#160;&#160;(1&lt;&lt;2)</td></tr>
<tr class="separator:ga81f606c554c906f1fed1b9cd432aec00"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae3286f2212339d42d43938d9c5c6255c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys__iterator.html#gae3286f2212339d42d43938d9c5c6255c">CODES_KEYS_ITERATOR_SKIP_CODED</a>&#160;&#160;&#160;(1&lt;&lt;3)</td></tr>
<tr class="separator:gae3286f2212339d42d43938d9c5c6255c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaecbb01ec3bd2d67a42aad56c96fb775"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys__iterator.html#gaaecbb01ec3bd2d67a42aad56c96fb775">CODES_KEYS_ITERATOR_SKIP_COMPUTED</a>&#160;&#160;&#160;(1&lt;&lt;4)</td></tr>
<tr class="separator:gaaecbb01ec3bd2d67a42aad56c96fb775"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga532be495f6cd54a852288a88bd0a439f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys__iterator.html#ga532be495f6cd54a852288a88bd0a439f">CODES_KEYS_ITERATOR_SKIP_DUPLICATES</a>&#160;&#160;&#160;(1&lt;&lt;5)</td></tr>
<tr class="separator:ga532be495f6cd54a852288a88bd0a439f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga441c09493c38e1ab2fc7f296eb12516f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys__iterator.html#ga441c09493c38e1ab2fc7f296eb12516f">CODES_KEYS_ITERATOR_SKIP_FUNCTION</a>&#160;&#160;&#160;(1&lt;&lt;6)</td></tr>
<tr class="separator:ga441c09493c38e1ab2fc7f296eb12516f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gad3394316cf1f3c779648fe81428adb8f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structcodes__keys__iterator.html">codes_keys_iterator</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys__iterator.html#gad3394316cf1f3c779648fe81428adb8f">codes_keys_iterator_new</a> (<a class="el" href="structcodes__handle.html">codes_handle</a> *h, unsigned long filter_flags, const char *name_space)</td></tr>
<tr class="separator:gad3394316cf1f3c779648fe81428adb8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga804b63ac6be7c95aac71a9050008e409"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys__iterator.html#ga804b63ac6be7c95aac71a9050008e409">codes_keys_iterator_next</a> (<a class="el" href="structcodes__keys__iterator.html">codes_keys_iterator</a> *kiter)</td></tr>
<tr class="separator:ga804b63ac6be7c95aac71a9050008e409"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1049604cb5a47359f9c7f7a42571a48b"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys__iterator.html#ga1049604cb5a47359f9c7f7a42571a48b">codes_keys_iterator_get_name</a> (<a class="el" href="structcodes__keys__iterator.html">codes_keys_iterator</a> *kiter)</td></tr>
<tr class="separator:ga1049604cb5a47359f9c7f7a42571a48b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafdafe484a0e5a82732ddcbaec1e272a5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys__iterator.html#gafdafe484a0e5a82732ddcbaec1e272a5">codes_keys_iterator_delete</a> (<a class="el" href="structcodes__keys__iterator.html">codes_keys_iterator</a> *kiter)</td></tr>
<tr class="separator:gafdafe484a0e5a82732ddcbaec1e272a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2f611291982ea92cabc0ca70691291bf"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__keys__iterator.html#ga2f611291982ea92cabc0ca70691291bf">codes_keys_iterator_rewind</a> (<a class="el" href="structcodes__keys__iterator.html">codes_keys_iterator</a> *kiter)</td></tr>
<tr class="separator:ga2f611291982ea92cabc0ca70691291bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>The keys iterator is designed to get the key names defined in a message. Key names on which the iteration is carried out can be filtered through their attributes or by the namespace they belong to. </p>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="gaa0b60d176497f5d4bc34564c31e76cf1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CODES_KEYS_ITERATOR_ALL_KEYS&#160;&#160;&#160;0</td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">Iteration is carried out on all the keys available in the message
</pre><dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__keys__iterator.html#gad3394316cf1f3c779648fe81428adb8f">codes_keys_iterator_new</a> </dd></dl>
</div>
</div>
<a class="anchor" id="gae3286f2212339d42d43938d9c5c6255c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CODES_KEYS_ITERATOR_SKIP_CODED&#160;&#160;&#160;(1&lt;&lt;3)</td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">coded keys are skipped by keys iterator.
</pre><dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__keys__iterator.html#gad3394316cf1f3c779648fe81428adb8f">codes_keys_iterator_new</a> </dd></dl>
</div>
</div>
<a class="anchor" id="gaaecbb01ec3bd2d67a42aad56c96fb775"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CODES_KEYS_ITERATOR_SKIP_COMPUTED&#160;&#160;&#160;(1&lt;&lt;4)</td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">computed keys are skipped by keys iterator.
</pre><dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__keys__iterator.html#gad3394316cf1f3c779648fe81428adb8f">codes_keys_iterator_new</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga532be495f6cd54a852288a88bd0a439f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CODES_KEYS_ITERATOR_SKIP_DUPLICATES&#160;&#160;&#160;(1&lt;&lt;5)</td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">duplicates of a key are skipped by keys iterator.
</pre><dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__keys__iterator.html#gad3394316cf1f3c779648fe81428adb8f">codes_keys_iterator_new</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga81f606c554c906f1fed1b9cd432aec00"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CODES_KEYS_ITERATOR_SKIP_EDITION_SPECIFIC&#160;&#160;&#160;(1&lt;&lt;2)</td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">edition specific keys are skipped by keys iterator.
</pre><dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__keys__iterator.html#gad3394316cf1f3c779648fe81428adb8f">codes_keys_iterator_new</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga441c09493c38e1ab2fc7f296eb12516f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CODES_KEYS_ITERATOR_SKIP_FUNCTION&#160;&#160;&#160;(1&lt;&lt;6)</td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">function keys are skipped by keys iterator.
</pre><dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__keys__iterator.html#gad3394316cf1f3c779648fe81428adb8f">codes_keys_iterator_new</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga6f7115fdd2c821886a43934e4aa16073"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CODES_KEYS_ITERATOR_SKIP_OPTIONAL&#160;&#160;&#160;(1&lt;&lt;1)</td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">optional keys are skipped by keys iterator.
</pre><dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__keys__iterator.html#gad3394316cf1f3c779648fe81428adb8f">codes_keys_iterator_new</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga782b83b0b913da3841eb82921642aaa8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CODES_KEYS_ITERATOR_SKIP_READ_ONLY&#160;&#160;&#160;(1&lt;&lt;0)</td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">read only keys are skipped by keys iterator.
</pre><dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__keys__iterator.html#gad3394316cf1f3c779648fe81428adb8f">codes_keys_iterator_new</a> </dd></dl>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="gafdafe484a0e5a82732ddcbaec1e272a5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int codes_keys_iterator_delete </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structcodes__keys__iterator.html">codes_keys_iterator</a> *&#160;</td>
<td class="paramname"><em>kiter</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Delete the iterator. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">kiter</td><td>: valid <a class="el" href="structcodes__keys__iterator.html">codes_keys_iterator</a> </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if OK, integer value on error </dd></dl>
</div>
</div>
<a class="anchor" id="ga1049604cb5a47359f9c7f7a42571a48b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* codes_keys_iterator_get_name </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structcodes__keys__iterator.html">codes_keys_iterator</a> *&#160;</td>
<td class="paramname"><em>kiter</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>get the key name from the iterator </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">kiter</td><td>: valid <a class="el" href="structcodes__keys__iterator.html">codes_keys_iterator</a> </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>key name </dd></dl>
</div>
</div>
<a class="anchor" id="gad3394316cf1f3c779648fe81428adb8f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structcodes__keys__iterator.html">codes_keys_iterator</a>* codes_keys_iterator_new </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structcodes__handle.html">codes_handle</a> *&#160;</td>
<td class="paramname"><em>h</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned long&#160;</td>
<td class="paramname"><em>filter_flags</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name_space</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a new iterator from a valid and initialised handle. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">h</td><td>: the handle whose keys you want to iterate </td></tr>
<tr><td class="paramname">filter_flags</td><td>: flags to filter out some of the keys through their attributes </td></tr>
<tr><td class="paramname">name_space</td><td>: if not null the iteration is carried out only on keys belonging to the namespace passed. (NULL for all the keys) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>keys iterator ready to iterate through keys according to filter_flags and namespace </dd></dl>
</div>
</div>
<a class="anchor" id="ga804b63ac6be7c95aac71a9050008e409"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int codes_keys_iterator_next </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structcodes__keys__iterator.html">codes_keys_iterator</a> *&#160;</td>
<td class="paramname"><em>kiter</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Step to the next iterator. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">kiter</td><td>: valid <a class="el" href="structcodes__keys__iterator.html">codes_keys_iterator</a> </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if next iterator exists, 0 if no more elements to iterate on </dd></dl>
</div>
</div>
<a class="anchor" id="ga2f611291982ea92cabc0ca70691291bf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int codes_keys_iterator_rewind </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structcodes__keys__iterator.html">codes_keys_iterator</a> *&#160;</td>
<td class="paramname"><em>kiter</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Rewind the iterator. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">kiter</td><td>: valid <a class="el" href="structcodes__keys__iterator.html">codes_keys_iterator</a> </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if OK, integer value on error </dd></dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</small></address>
</body>
</html>