Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > a52be019fe91cb4e54b877f445289e57 > files > 12

libref_array-devel-0.1.2-5.fc14.i686.rpm

<!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"/>
<title>libref_array: Interface</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.7.4 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">libref_array&#160;<span id="projectnumber">0.1.3</span></div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <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>Modules</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li id="searchli">
        <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>
<div class="header">
  <div class="summary">
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Interface</div>  </div>
</div>
<div class="contents">
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ref__array.html#gabfc89503d377fecbf66617fae2adbecf">ref_array_fn</a> )(void *elem, <a class="el" href="group__ref__array.html#ga0ac2a3e03871cc472a33ff6107f6f813">ref_array_del_enum</a> type, void *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Element cleanup callback.  <a href="#gabfc89503d377fecbf66617fae2adbecf"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ref__array.html#ga0ac2a3e03871cc472a33ff6107f6f813">ref_array_del_enum</a> </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration of the delete modes.  <a href="group__ref__array.html#ga0ac2a3e03871cc472a33ff6107f6f813">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ref__array.html#ga13bdf5bcd330e7df8b753dc651e0cfa7">ref_array_create</a> (struct ref_array **ra, size_t elem, uint32_t grow_by, <a class="el" href="group__ref__array.html#gabfc89503d377fecbf66617fae2adbecf">ref_array_fn</a> cb, void *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create referenced array.  <a href="#ga13bdf5bcd330e7df8b753dc651e0cfa7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct ref_array *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ref__array.html#ga7cab074a24f06fd60fcb092de62f71ca">ref_array_getref</a> (struct ref_array *ra)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get new reference to an array.  <a href="#ga7cab074a24f06fd60fcb092de62f71ca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ref__array.html#gad12fcbb73ffa658e2ef9fc297c0afba3">ref_array_destroy</a> (struct ref_array *ra)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete the array.  <a href="#gad12fcbb73ffa658e2ef9fc297c0afba3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ref__array.html#ga856974365ce14d5bfb1a81020c528c0a">ref_array_append</a> (struct ref_array *ra, void *element)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Add new element to the array.  <a href="#ga856974365ce14d5bfb1a81020c528c0a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ref__array.html#ga49fa7f1a8a3fa7c8dbdcb55b28d5e54c">ref_array_get</a> (struct ref_array *ra, uint32_t idx, void *acptr)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get element data.  <a href="#ga49fa7f1a8a3fa7c8dbdcb55b28d5e54c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ref__array.html#ga4447316ccc23d13fa15cea76f5c5e3c9">ref_array_getlen</a> (struct ref_array *ra, uint32_t *len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get array length.  <a href="#ga4447316ccc23d13fa15cea76f5c5e3c9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ref__array.html#ga0226495cda6dd0b863d3ae82e9c80947">ref_array_len</a> (struct ref_array *ra)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Array length.  <a href="#ga0226495cda6dd0b863d3ae82e9c80947"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ref__array.html#ga89b5b3e4a4fbb1e943fa98055c751652">ref_array_insert</a> (struct ref_array *ra, uint32_t idx, void *element)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Insert a new element into the array.  <a href="#ga89b5b3e4a4fbb1e943fa98055c751652"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ref__array.html#gaf2d7bee061c28c8f932422511121842a">ref_array_replace</a> (struct ref_array *ra, uint32_t idx, void *element)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace element in the array.  <a href="#gaf2d7bee061c28c8f932422511121842a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ref__array.html#ga0ffc16563bf093936f7e716e88a91e38">ref_array_remove</a> (struct ref_array *ra, uint32_t idx)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove element from the array.  <a href="#ga0ffc16563bf093936f7e716e88a91e38"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ref__array.html#gab95cf1c92684f0e0876a612fb1350f89">ref_array_swap</a> (struct ref_array *ra, uint32_t idx1, uint32_t idx2)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap two elements in the array.  <a href="#gab95cf1c92684f0e0876a612fb1350f89"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ref__array.html#ga6a71c9047c106a96c5fab4cfac3837d8">ref_array_reset</a> (struct ref_array *ra)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset array.  <a href="#ga6a71c9047c106a96c5fab4cfac3837d8"></a><br/></td></tr>
</table>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="gabfc89503d377fecbf66617fae2adbecf"></a><!-- doxytag: member="ref_array.h::ref_array_fn" ref="gabfc89503d377fecbf66617fae2adbecf" args=")(void *elem, ref_array_del_enum type, void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* <a class="el" href="group__ref__array.html#gabfc89503d377fecbf66617fae2adbecf">ref_array_fn</a>)(void *elem, <a class="el" href="group__ref__array.html#ga0ac2a3e03871cc472a33ff6107f6f813">ref_array_del_enum</a> type, void *data)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Element cleanup callback. </p>
<p>Callback that can be provided by a caller to free data when the storage is actually destroyed. </p>

</div>
</div>
<hr/><h2>Enumeration Type Documentation</h2>
<a class="anchor" id="ga0ac2a3e03871cc472a33ff6107f6f813"></a><!-- doxytag: member="ref_array.h::ref_array_del_enum" ref="ga0ac2a3e03871cc472a33ff6107f6f813" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__ref__array.html#ga0ac2a3e03871cc472a33ff6107f6f813">ref_array_del_enum</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Enumeration of the delete modes. </p>
<p>When the array is destroyed each element of the array most likely needs to be freed. Same is true when an element is removed from the array. However the caller might need to do different things with the data depending on whether the array is destroyed or whether the element is removed. This enumeration defines constants that you used to indicate which operation was performed. </p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga856974365ce14d5bfb1a81020c528c0a"></a><!-- doxytag: member="ref_array.h::ref_array_append" ref="ga856974365ce14d5bfb1a81020c528c0a" args="(struct ref_array *ra, void *element)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ref_array_append </td>
          <td>(</td>
          <td class="paramtype">struct ref_array *&#160;</td>
          <td class="paramname"><em>ra</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>element</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add new element to the array. </p>
<p>Appends an element to the end of the array.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">ra</td><td>Existing array object. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">element</td><td>Pointer to data. The number of bytes defined at the array creation as the array size will be copied into the array element.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 - Success. </dd>
<dd>
ENOMEM - No memory. </dd>
<dd>
EINVAL - Invalid argument. </dd></dl>

</div>
</div>
<a class="anchor" id="ga13bdf5bcd330e7df8b753dc651e0cfa7"></a><!-- doxytag: member="ref_array.h::ref_array_create" ref="ga13bdf5bcd330e7df8b753dc651e0cfa7" args="(struct ref_array **ra, size_t elem, uint32_t grow_by, ref_array_fn cb, void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ref_array_create </td>
          <td>(</td>
          <td class="paramtype">struct ref_array **&#160;</td>
          <td class="paramname"><em>ra</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>elem</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>grow_by</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__ref__array.html#gabfc89503d377fecbf66617fae2adbecf">ref_array_fn</a>&#160;</td>
          <td class="paramname"><em>cb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create referenced array. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">ra</td><td>Newly created array object. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">elem</td><td>Element size in bytes. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">grow_by</td><td>Defines how many elements should be allocated together as one chunk. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cb</td><td>Cleanup callback. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Caller supplied data passed to cleanup callback.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 - Success. </dd>
<dd>
ENOMEM - No memory. </dd>
<dd>
EINVAL - Invalid argument. </dd></dl>

</div>
</div>
<a class="anchor" id="gad12fcbb73ffa658e2ef9fc297c0afba3"></a><!-- doxytag: member="ref_array.h::ref_array_destroy" ref="gad12fcbb73ffa658e2ef9fc297c0afba3" args="(struct ref_array *ra)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ref_array_destroy </td>
          <td>(</td>
          <td class="paramtype">struct ref_array *&#160;</td>
          <td class="paramname"><em>ra</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Delete the array. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">ra</td><td>Existing array object or a reference. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga49fa7f1a8a3fa7c8dbdcb55b28d5e54c"></a><!-- doxytag: member="ref_array.h::ref_array_get" ref="ga49fa7f1a8a3fa7c8dbdcb55b28d5e54c" args="(struct ref_array *ra, uint32_t idx, void *acptr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* ref_array_get </td>
          <td>(</td>
          <td class="paramtype">struct ref_array *&#160;</td>
          <td class="paramname"><em>ra</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>idx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>acptr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get element data. </p>
<p>Retrieves data from the array element.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">ra</td><td>Existing array object. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">idx</td><td>Index of the array element. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">acptr</td><td>Pointer to the memory where the element's data will be copied. Can be NULL. In this case nothing is copied.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to the data stored in the element. Conventionally it should be a const pointer, however such declaration would make using variable that receives the result of this function immutable. This is very inconvenient because such variable should be able to point to data related to multiple elements of the array.</dd>
<dd>
Pointer to the element's data. </dd>
<dd>
NULL if index is out of range. </dd></dl>

</div>
</div>
<a class="anchor" id="ga4447316ccc23d13fa15cea76f5c5e3c9"></a><!-- doxytag: member="ref_array.h::ref_array_getlen" ref="ga4447316ccc23d13fa15cea76f5c5e3c9" args="(struct ref_array *ra, uint32_t *len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ref_array_getlen </td>
          <td>(</td>
          <td class="paramtype">struct ref_array *&#160;</td>
          <td class="paramname"><em>ra</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get array length. </p>
<p>Determines length of the array.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">ra</td><td>Existing array object. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">len</td><td>Variable will receive the length of the array.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 - Success. </dd>
<dd>
EINVAL - Invalid argument. </dd></dl>

</div>
</div>
<a class="anchor" id="ga7cab074a24f06fd60fcb092de62f71ca"></a><!-- doxytag: member="ref_array.h::ref_array_getref" ref="ga7cab074a24f06fd60fcb092de62f71ca" args="(struct ref_array *ra)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct ref_array* ref_array_getref </td>
          <td>(</td>
          <td class="paramtype">struct ref_array *&#160;</td>
          <td class="paramname"><em>ra</em></td><td>)</td>
          <td><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get new reference to an array. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">ra</td><td>Existing array object.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A new reference to an array object. </dd>
<dd>
NULL - Invalid argument. </dd></dl>

</div>
</div>
<a class="anchor" id="ga89b5b3e4a4fbb1e943fa98055c751652"></a><!-- doxytag: member="ref_array.h::ref_array_insert" ref="ga89b5b3e4a4fbb1e943fa98055c751652" args="(struct ref_array *ra, uint32_t idx, void *element)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ref_array_insert </td>
          <td>(</td>
          <td class="paramtype">struct ref_array *&#160;</td>
          <td class="paramname"><em>ra</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>idx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>element</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Insert a new element into the array. </p>
<p>Inserts an element into the array. If idx is 0 the element will be added to the beginning of the array, if idx is 1 the element will be added after the first element of the array and so on. If index is greater than the number of elements in the array the function returns error.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">ra</td><td>Existing array object. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">idx</td><td>Index of the array element. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">element</td><td>Pointer to data. The number of bytes defined at the array creation as the array size will be copied into the array element.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 - Success. </dd>
<dd>
ENOMEM - No memory. </dd>
<dd>
EINVAL - Invalid argument. </dd>
<dd>
ERANGE - Index is our of range. </dd></dl>

</div>
</div>
<a class="anchor" id="ga0226495cda6dd0b863d3ae82e9c80947"></a><!-- doxytag: member="ref_array.h::ref_array_len" ref="ga0226495cda6dd0b863d3ae82e9c80947" args="(struct ref_array *ra)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t ref_array_len </td>
          <td>(</td>
          <td class="paramtype">struct ref_array *&#160;</td>
          <td class="paramname"><em>ra</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Array length. </p>
<p>Alternative function to get length.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">ra</td><td>Existing array object.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Length of the array. Returns 0 if the array is invalid. </dd></dl>

</div>
</div>
<a class="anchor" id="ga0ffc16563bf093936f7e716e88a91e38"></a><!-- doxytag: member="ref_array.h::ref_array_remove" ref="ga0ffc16563bf093936f7e716e88a91e38" args="(struct ref_array *ra, uint32_t idx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ref_array_remove </td>
          <td>(</td>
          <td class="paramtype">struct ref_array *&#160;</td>
          <td class="paramname"><em>ra</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>idx</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Remove element from the array. </p>
<p>The element is removed and the length is decreased by 1. If index is greater than the number of elements in the array the function returns error.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">ra</td><td>Existing array object. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">idx</td><td>Index of the array element.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 - Success. </dd>
<dd>
EINVAL - Invalid argument. </dd>
<dd>
ERANGE - Index is our of range. </dd></dl>

</div>
</div>
<a class="anchor" id="gaf2d7bee061c28c8f932422511121842a"></a><!-- doxytag: member="ref_array.h::ref_array_replace" ref="gaf2d7bee061c28c8f932422511121842a" args="(struct ref_array *ra, uint32_t idx, void *element)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ref_array_replace </td>
          <td>(</td>
          <td class="paramtype">struct ref_array *&#160;</td>
          <td class="paramname"><em>ra</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>idx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>element</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Replace element in the array. </p>
<p>Replace an element of the array identified by index with a new value. If index is greater than the number of elements in the array the function returns error.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">ra</td><td>Existing array object. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">idx</td><td>Index of the array element. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">element</td><td>Pointer to data. The number of bytes defined at the array creation as the array size will be copied into the array element.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 - Success. </dd>
<dd>
ENOMEM - No memory. </dd>
<dd>
EINVAL - Invalid argument. </dd>
<dd>
ERANGE - Index is our of range. </dd></dl>

</div>
</div>
<a class="anchor" id="ga6a71c9047c106a96c5fab4cfac3837d8"></a><!-- doxytag: member="ref_array.h::ref_array_reset" ref="ga6a71c9047c106a96c5fab4cfac3837d8" args="(struct ref_array *ra)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ref_array_reset </td>
          <td>(</td>
          <td class="paramtype">struct ref_array *&#160;</td>
          <td class="paramname"><em>ra</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reset array. </p>
<p>Function clears all contents without destroying the object. The delete callback will be called for every element of the array from the beginning to the end passing in REF_ARRAY_DESTROY value. All the storage for the array will be deallocated. After the call the array will be empty as if just created.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">ra</td><td>Existing array object. No return value. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gab95cf1c92684f0e0876a612fb1350f89"></a><!-- doxytag: member="ref_array.h::ref_array_swap" ref="gab95cf1c92684f0e0876a612fb1350f89" args="(struct ref_array *ra, uint32_t idx1, uint32_t idx2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ref_array_swap </td>
          <td>(</td>
          <td class="paramtype">struct ref_array *&#160;</td>
          <td class="paramname"><em>ra</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>idx1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>idx2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Swap two elements in the array. </p>
<p>If any of the indexes is greater than the number of elements in the array the function returns error.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">ra</td><td>Existing array object. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">idx1</td><td>Index of the array element. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">idx2</td><td>Index of the array element.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 - Success. </dd>
<dd>
EINVAL - Invalid argument. </dd>
<dd>
ERANGE - Index is our of range. </dd>
<dd>
ENOMEM - No memory. </dd></dl>

</div>
</div>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</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>

<hr class="footer"/><address class="footer"><small>Generated on Thu Sep 15 2011 for libref_array by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
</html>