724 lines
39 KiB
HTML
724 lines
39 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
|
<meta name="generator" content="Doxygen 1.9.8"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>My Project: source_code/MODULE_marigold_dynamic_array/marigold_dynamic_array.h File Reference</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/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></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 id="projectrow">
|
|
<td id="projectalign">
|
|
<div id="projectname">My Project
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.9.8 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search');
|
|
$(document).ready(function() { init_search(); });
|
|
});
|
|
/* @license-end */
|
|
</script>
|
|
<div id="main-nav"></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">
|
|
<div id="MSearchResults">
|
|
<div class="SRPage">
|
|
<div id="SRIndex">
|
|
<div id="SRResults"></div>
|
|
<div class="SRStatus" id="Loading">Loading...</div>
|
|
<div class="SRStatus" id="Searching">Searching...</div>
|
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="nav-path" class="navpath">
|
|
<ul>
|
|
<li class="navelem"><a class="el" href="dir_fa8e847d942c8fabd99ac1c662089f31.html">source_code</a></li><li class="navelem"><a class="el" href="dir_a37174a683638c83c8672ee30c9f26b4.html">MODULE_marigold_dynamic_array</a></li> </ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#nested-classes">Classes</a> |
|
|
<a href="#typedef-members">Typedefs</a> |
|
|
<a href="#func-members">Functions</a> </div>
|
|
<div class="headertitle"><div class="title">marigold_dynamic_array.h File Reference</div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<div class="textblock"><code>#include <stdbool.h></code><br />
|
|
<code>#include <stdint.h></code><br />
|
|
<code>#include <stdlib.h></code><br />
|
|
</div><div class="textblock"><div class="dynheader">
|
|
Include dependency graph for marigold_dynamic_array.h:</div>
|
|
<div class="dyncontent">
|
|
<div class="center"><img src="marigold__dynamic__array_8h__incl.png" border="0" usemap="#asource__code_2MODULE__marigold__dynamic__array_2marigold__dynamic__array_8h" alt=""/></div>
|
|
<map name="asource__code_2MODULE__marigold__dynamic__array_2marigold__dynamic__array_8h" id="asource__code_2MODULE__marigold__dynamic__array_2marigold__dynamic__array_8h">
|
|
<area shape="rect" title=" " alt="" coords="49,5,247,60"/>
|
|
<area shape="rect" title=" " alt="" coords="5,108,88,133"/>
|
|
<area shape="poly" title=" " alt="" coords="119,62,72,101,69,97,115,58"/>
|
|
<area shape="rect" title=" " alt="" coords="113,108,183,133"/>
|
|
<area shape="poly" title=" " alt="" coords="151,60,151,94,145,94,145,60"/>
|
|
<area shape="rect" title=" " alt="" coords="207,108,278,133"/>
|
|
<area shape="poly" title=" " alt="" coords="179,58,222,97,218,101,175,62"/>
|
|
</map>
|
|
</div>
|
|
</div><div class="textblock"><div class="dynheader">
|
|
This graph shows which files directly or indirectly include this file:</div>
|
|
<div class="dyncontent">
|
|
<div class="center"><img src="marigold__dynamic__array_8h__dep__incl.png" border="0" usemap="#asource__code_2MODULE__marigold__dynamic__array_2marigold__dynamic__array_8hdep" alt=""/></div>
|
|
<map name="asource__code_2MODULE__marigold__dynamic__array_2marigold__dynamic__array_8hdep" id="asource__code_2MODULE__marigold__dynamic__array_2marigold__dynamic__array_8hdep">
|
|
<area shape="rect" title=" " alt="" coords="5,5,204,60"/>
|
|
<area shape="rect" href="main_8c.html" title=" " alt="" coords="29,108,180,133"/>
|
|
<area shape="poly" title=" " alt="" coords="107,74,107,108,102,108,102,74"/>
|
|
</map>
|
|
</div>
|
|
</div>
|
|
<p><a href="marigold__dynamic__array_8h_source.html">Go to the source code of this file.</a></p>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
|
|
Classes</h2></td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structdynamic__array.html">dynamic_array</a></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
|
|
Typedefs</h2></td></tr>
|
|
<tr class="memitem:aa03749e816311cda5048f053a4bbc069" id="r_aa03749e816311cda5048f053a4bbc069"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structdynamic__array.html">dynamic_array</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="marigold__dynamic__array_8h.html#aa03749e816311cda5048f053a4bbc069">dynamic_array</a></td></tr>
|
|
<tr class="separator:aa03749e816311cda5048f053a4bbc069"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
|
|
Functions</h2></td></tr>
|
|
<tr class="memitem:a12a619cb69a69466342cf46c4ed32ca0" id="r_a12a619cb69a69466342cf46c4ed32ca0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structdynamic__array.html">dynamic_array</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="marigold__dynamic__array_8h.html#a12a619cb69a69466342cf46c4ed32ca0">dynamic_array_create</a> (size_t item_size, unsigned int starting_capacity, unsigned char growth_factor, bool is_multithread_safe)</td></tr>
|
|
<tr class="memdesc:a12a619cb69a69466342cf46c4ed32ca0"><td class="mdescLeft"> </td><td class="mdescRight">Create and initialize a new dynamic array. <br /></td></tr>
|
|
<tr class="separator:a12a619cb69a69466342cf46c4ed32ca0"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:af82db6ce1a4c0277250ac4545b992517" id="r_af82db6ce1a4c0277250ac4545b992517"><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="marigold__dynamic__array_8h.html#af82db6ce1a4c0277250ac4545b992517">dynamic_array_get_occupancy</a> (const <a class="el" href="structdynamic__array.html">dynamic_array</a> *array)</td></tr>
|
|
<tr class="memdesc:af82db6ce1a4c0277250ac4545b992517"><td class="mdescLeft"> </td><td class="mdescRight">Get the number of elements currently in the array. <br /></td></tr>
|
|
<tr class="separator:af82db6ce1a4c0277250ac4545b992517"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a97aef4192e7bf8bc6601a485b975e8a1" id="r_a97aef4192e7bf8bc6601a485b975e8a1"><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="marigold__dynamic__array_8h.html#a97aef4192e7bf8bc6601a485b975e8a1">dynamic_array_get_capacity</a> (const <a class="el" href="structdynamic__array.html">dynamic_array</a> *array)</td></tr>
|
|
<tr class="memdesc:a97aef4192e7bf8bc6601a485b975e8a1"><td class="mdescLeft"> </td><td class="mdescRight">Get the total capacity of the array. <br /></td></tr>
|
|
<tr class="separator:a97aef4192e7bf8bc6601a485b975e8a1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aa716a8b7cc3e7e4f2776445956b6f20c" id="r_aa716a8b7cc3e7e4f2776445956b6f20c"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="marigold__dynamic__array_8h.html#aa716a8b7cc3e7e4f2776445956b6f20c">dynamic_array_get_pointer_to_index</a> (const <a class="el" href="structdynamic__array.html">dynamic_array</a> *array, const unsigned int index)</td></tr>
|
|
<tr class="memdesc:aa716a8b7cc3e7e4f2776445956b6f20c"><td class="mdescLeft"> </td><td class="mdescRight">Get a pointer to the element at the specified index. <br /></td></tr>
|
|
<tr class="separator:aa716a8b7cc3e7e4f2776445956b6f20c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a54614709f28d2da67d1349b39d449a64" id="r_a54614709f28d2da67d1349b39d449a64"><td class="memItemLeft" align="right" valign="top">const void * </td><td class="memItemRight" valign="bottom"><a class="el" href="marigold__dynamic__array_8h.html#a54614709f28d2da67d1349b39d449a64">dynamic_array_get_const_pointer_to_index</a> (const <a class="el" href="structdynamic__array.html">dynamic_array</a> *array, const unsigned int index)</td></tr>
|
|
<tr class="memdesc:a54614709f28d2da67d1349b39d449a64"><td class="mdescLeft"> </td><td class="mdescRight">Get a const pointer to the element at the specified index. <br /></td></tr>
|
|
<tr class="separator:a54614709f28d2da67d1349b39d449a64"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a41f398054650aba92c3cf66e6278273f" id="r_a41f398054650aba92c3cf66e6278273f"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="marigold__dynamic__array_8h.html#a41f398054650aba92c3cf66e6278273f">dynamic_array_append</a> (const <a class="el" href="structdynamic__array.html">dynamic_array</a> *array, const void *element)</td></tr>
|
|
<tr class="memdesc:a41f398054650aba92c3cf66e6278273f"><td class="mdescLeft"> </td><td class="mdescRight">Append an element to the end of the array. <br /></td></tr>
|
|
<tr class="separator:a41f398054650aba92c3cf66e6278273f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a8ffd2d54341aa8daa04fdac517e85b0b" id="r_a8ffd2d54341aa8daa04fdac517e85b0b"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="marigold__dynamic__array_8h.html#a8ffd2d54341aa8daa04fdac517e85b0b">dynamic_array_pop</a> (const <a class="el" href="structdynamic__array.html">dynamic_array</a> *array)</td></tr>
|
|
<tr class="memdesc:a8ffd2d54341aa8daa04fdac517e85b0b"><td class="mdescLeft"> </td><td class="mdescRight">Remove the last element from the array. <br /></td></tr>
|
|
<tr class="separator:a8ffd2d54341aa8daa04fdac517e85b0b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a6c315e8471380136e9b4d1b17537481b" id="r_a6c315e8471380136e9b4d1b17537481b"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="marigold__dynamic__array_8h.html#a6c315e8471380136e9b4d1b17537481b">dynamic_array_remove</a> (const <a class="el" href="structdynamic__array.html">dynamic_array</a> *array, const unsigned int index)</td></tr>
|
|
<tr class="memdesc:a6c315e8471380136e9b4d1b17537481b"><td class="mdescLeft"> </td><td class="mdescRight">Remove an element at the specified index. <br /></td></tr>
|
|
<tr class="separator:a6c315e8471380136e9b4d1b17537481b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a263862e1f35e8bde17a1ba9307b60785" id="r_a263862e1f35e8bde17a1ba9307b60785"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="marigold__dynamic__array_8h.html#a263862e1f35e8bde17a1ba9307b60785">dynamic_array_clear</a> (const <a class="el" href="structdynamic__array.html">dynamic_array</a> *array)</td></tr>
|
|
<tr class="memdesc:a263862e1f35e8bde17a1ba9307b60785"><td class="mdescLeft"> </td><td class="mdescRight">Clear all elements from the array. <br /></td></tr>
|
|
<tr class="separator:a263862e1f35e8bde17a1ba9307b60785"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a860a30efb898e1e20631b95ae544ece9" id="r_a860a30efb898e1e20631b95ae544ece9"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="marigold__dynamic__array_8h.html#a860a30efb898e1e20631b95ae544ece9">dynamic_array_is_empty</a> (const <a class="el" href="structdynamic__array.html">dynamic_array</a> *array)</td></tr>
|
|
<tr class="memdesc:a860a30efb898e1e20631b95ae544ece9"><td class="mdescLeft"> </td><td class="mdescRight">Check if the array is empty. <br /></td></tr>
|
|
<tr class="separator:a860a30efb898e1e20631b95ae544ece9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab10002f58472dcb5f04c04c56790640d" id="r_ab10002f58472dcb5f04c04c56790640d"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="marigold__dynamic__array_8h.html#ab10002f58472dcb5f04c04c56790640d">dynamic_array_increase_capacity</a> (const <a class="el" href="structdynamic__array.html">dynamic_array</a> *array, const unsigned int new_capacity)</td></tr>
|
|
<tr class="memdesc:ab10002f58472dcb5f04c04c56790640d"><td class="mdescLeft"> </td><td class="mdescRight">Reserve additional capacity without changing size. <br /></td></tr>
|
|
<tr class="separator:ab10002f58472dcb5f04c04c56790640d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:af813494ee16c94e4f9d031be1665d2be" id="r_af813494ee16c94e4f9d031be1665d2be"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="marigold__dynamic__array_8h.html#af813494ee16c94e4f9d031be1665d2be">dynamic_array_acquire</a> (const <a class="el" href="structdynamic__array.html">dynamic_array</a> *array)</td></tr>
|
|
<tr class="memdesc:af813494ee16c94e4f9d031be1665d2be"><td class="mdescLeft"> </td><td class="mdescRight">Increment the owner count for shared ownership. <br /></td></tr>
|
|
<tr class="separator:af813494ee16c94e4f9d031be1665d2be"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a0638d6e4c6aba0de9925609de03bd57a" id="r_a0638d6e4c6aba0de9925609de03bd57a"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="marigold__dynamic__array_8h.html#a0638d6e4c6aba0de9925609de03bd57a">dynamic_array_release</a> (const <a class="el" href="structdynamic__array.html">dynamic_array</a> *array)</td></tr>
|
|
<tr class="memdesc:a0638d6e4c6aba0de9925609de03bd57a"><td class="mdescLeft"> </td><td class="mdescRight">Decrement the owner count for shared ownership. <br /></td></tr>
|
|
<tr class="separator:a0638d6e4c6aba0de9925609de03bd57a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ac0fcc3f5599e1fbb2b14f48dc8cf1551" id="r_ac0fcc3f5599e1fbb2b14f48dc8cf1551"><td class="memItemLeft" align="right" valign="top">unsigned short </td><td class="memItemRight" valign="bottom"><a class="el" href="marigold__dynamic__array_8h.html#ac0fcc3f5599e1fbb2b14f48dc8cf1551">dynamic_array_get_owner_count</a> (const <a class="el" href="structdynamic__array.html">dynamic_array</a> *array)</td></tr>
|
|
<tr class="memdesc:ac0fcc3f5599e1fbb2b14f48dc8cf1551"><td class="mdescLeft"> </td><td class="mdescRight">Get the current owner count. <br /></td></tr>
|
|
<tr class="separator:ac0fcc3f5599e1fbb2b14f48dc8cf1551"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:afd8d4acd91ed7b5260881faf93c2e265" id="r_afd8d4acd91ed7b5260881faf93c2e265"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="marigold__dynamic__array_8h.html#afd8d4acd91ed7b5260881faf93c2e265">dynamic_array_is_thread_safe</a> (const <a class="el" href="structdynamic__array.html">dynamic_array</a> *array)</td></tr>
|
|
<tr class="memdesc:afd8d4acd91ed7b5260881faf93c2e265"><td class="mdescLeft"> </td><td class="mdescRight">Check if the array is thread-safe. <br /></td></tr>
|
|
<tr class="separator:afd8d4acd91ed7b5260881faf93c2e265"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab26fb7035357345d1db2d2619a96112f" id="r_ab26fb7035357345d1db2d2619a96112f"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="marigold__dynamic__array_8h.html#ab26fb7035357345d1db2d2619a96112f">dynamic_array_clone</a> (const <a class="el" href="structdynamic__array.html">dynamic_array</a> *original_array, const <a class="el" href="structdynamic__array.html">dynamic_array</a> *new_array)</td></tr>
|
|
<tr class="memdesc:ab26fb7035357345d1db2d2619a96112f"><td class="mdescLeft"> </td><td class="mdescRight">Creates a deep copy of the array. <br /></td></tr>
|
|
<tr class="separator:ab26fb7035357345d1db2d2619a96112f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<h2 class="groupheader">Typedef Documentation</h2>
|
|
<a id="aa03749e816311cda5048f053a4bbc069" name="aa03749e816311cda5048f053a4bbc069"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aa03749e816311cda5048f053a4bbc069">◆ </a></span>dynamic_array</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">typedef struct <a class="el" href="structdynamic__array.html">dynamic_array</a> <a class="el" href="structdynamic__array.html">dynamic_array</a></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Function Documentation</h2>
|
|
<a id="af813494ee16c94e4f9d031be1665d2be" name="af813494ee16c94e4f9d031be1665d2be"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#af813494ee16c94e4f9d031be1665d2be">◆ </a></span>dynamic_array_acquire()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool dynamic_array_acquire </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structdynamic__array.html">dynamic_array</a> * </td>
|
|
<td class="paramname"><em>array</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Increment the owner count for shared ownership. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">array</td><td>Pointer to the <a class="el" href="structdynamic__array.html">dynamic_array</a>. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>true on success, false if owner_count would overflow. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a41f398054650aba92c3cf66e6278273f" name="a41f398054650aba92c3cf66e6278273f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a41f398054650aba92c3cf66e6278273f">◆ </a></span>dynamic_array_append()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool dynamic_array_append </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structdynamic__array.html">dynamic_array</a> * </td>
|
|
<td class="paramname"><em>array</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const void * </td>
|
|
<td class="paramname"><em>element</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Append an element to the end of the array. </p>
|
|
<p>Automatically resizes if current_size equals current_capacity.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">array</td><td>Pointer to the <a class="el" href="structdynamic__array.html">dynamic_array</a>. </td></tr>
|
|
<tr><td class="paramname">element</td><td>Pointer to the element to append. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>true on success, false on allocation failure. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a263862e1f35e8bde17a1ba9307b60785" name="a263862e1f35e8bde17a1ba9307b60785"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a263862e1f35e8bde17a1ba9307b60785">◆ </a></span>dynamic_array_clear()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void dynamic_array_clear </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structdynamic__array.html">dynamic_array</a> * </td>
|
|
<td class="paramname"><em>array</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Clear all elements from the array. </p>
|
|
<p>Sets current_size to 0. Does not free the memory block.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">array</td><td>Pointer to the <a class="el" href="structdynamic__array.html">dynamic_array</a>. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ab26fb7035357345d1db2d2619a96112f" name="ab26fb7035357345d1db2d2619a96112f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab26fb7035357345d1db2d2619a96112f">◆ </a></span>dynamic_array_clone()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool dynamic_array_clone </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structdynamic__array.html">dynamic_array</a> * </td>
|
|
<td class="paramname"><em>original_array</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structdynamic__array.html">dynamic_array</a> * </td>
|
|
<td class="paramname"><em>new_array</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Creates a deep copy of the array. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">array</td><td>Pointer to the copy being copied, and one to copy it onto. Must create your own struct instance.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>true if creation is successful. False if it fails for any reason. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a12a619cb69a69466342cf46c4ed32ca0" name="a12a619cb69a69466342cf46c4ed32ca0"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a12a619cb69a69466342cf46c4ed32ca0">◆ </a></span>dynamic_array_create()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="structdynamic__array.html">dynamic_array</a> * dynamic_array_create </td>
|
|
<td>(</td>
|
|
<td class="paramtype">size_t </td>
|
|
<td class="paramname"><em>item_size</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">unsigned int </td>
|
|
<td class="paramname"><em>starting_capacity</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">unsigned char </td>
|
|
<td class="paramname"><em>growth_factor</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>is_multithread_safe</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Create and initialize a new dynamic array. </p>
|
|
<p>Creates a dynamic array with the specified item size and starting capacity. The growth_factor determines how the array expands when capacity is exceeded.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">item_size</td><td>Size of each element in bytes. </td></tr>
|
|
<tr><td class="paramname">starting_capacity</td><td>Initial number of elements to allocate space for. </td></tr>
|
|
<tr><td class="paramname">growth_factor</td><td>Growth strategy: 0 = linear (+starting_capacity), 1 = 1.5x, 2+ = multiplier (2 = 2x, 3 = 3x, etc.) </td></tr>
|
|
<tr><td class="paramname">is_multithread_safe</td><td>If true, enables thread-safe operations. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Pointer to the initialized <a class="el" href="structdynamic__array.html">dynamic_array</a>, or NULL on failure. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a97aef4192e7bf8bc6601a485b975e8a1" name="a97aef4192e7bf8bc6601a485b975e8a1"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a97aef4192e7bf8bc6601a485b975e8a1">◆ </a></span>dynamic_array_get_capacity()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">unsigned int dynamic_array_get_capacity </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structdynamic__array.html">dynamic_array</a> * </td>
|
|
<td class="paramname"><em>array</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Get the total capacity of the array. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">array</td><td>Pointer to the <a class="el" href="structdynamic__array.html">dynamic_array</a>. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Total capacity (current_capacity). </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a54614709f28d2da67d1349b39d449a64" name="a54614709f28d2da67d1349b39d449a64"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a54614709f28d2da67d1349b39d449a64">◆ </a></span>dynamic_array_get_const_pointer_to_index()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">const void * dynamic_array_get_const_pointer_to_index </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structdynamic__array.html">dynamic_array</a> * </td>
|
|
<td class="paramname"><em>array</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const unsigned int </td>
|
|
<td class="paramname"><em>index</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Get a const pointer to the element at the specified index. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">array</td><td>Pointer to the <a class="el" href="structdynamic__array.html">dynamic_array</a>. </td></tr>
|
|
<tr><td class="paramname">index</td><td>Index of the element to access. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Const pointer to the element, or NULL if index is out of bounds. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="af82db6ce1a4c0277250ac4545b992517" name="af82db6ce1a4c0277250ac4545b992517"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#af82db6ce1a4c0277250ac4545b992517">◆ </a></span>dynamic_array_get_occupancy()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">unsigned int dynamic_array_get_occupancy </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structdynamic__array.html">dynamic_array</a> * </td>
|
|
<td class="paramname"><em>array</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Get the number of elements currently in the array. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">array</td><td>Pointer to the <a class="el" href="structdynamic__array.html">dynamic_array</a>. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Number of elements (current_size). </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ac0fcc3f5599e1fbb2b14f48dc8cf1551" name="ac0fcc3f5599e1fbb2b14f48dc8cf1551"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ac0fcc3f5599e1fbb2b14f48dc8cf1551">◆ </a></span>dynamic_array_get_owner_count()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">unsigned short dynamic_array_get_owner_count </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structdynamic__array.html">dynamic_array</a> * </td>
|
|
<td class="paramname"><em>array</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Get the current owner count. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">array</td><td>Pointer to the <a class="el" href="structdynamic__array.html">dynamic_array</a>. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Current owner_count value. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aa716a8b7cc3e7e4f2776445956b6f20c" name="aa716a8b7cc3e7e4f2776445956b6f20c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aa716a8b7cc3e7e4f2776445956b6f20c">◆ </a></span>dynamic_array_get_pointer_to_index()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void * dynamic_array_get_pointer_to_index </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structdynamic__array.html">dynamic_array</a> * </td>
|
|
<td class="paramname"><em>array</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const unsigned int </td>
|
|
<td class="paramname"><em>index</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Get a pointer to the element at the specified index. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">array</td><td>Pointer to the <a class="el" href="structdynamic__array.html">dynamic_array</a>. </td></tr>
|
|
<tr><td class="paramname">index</td><td>Index of the element to access. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Pointer to the element, or NULL if index is out of bounds. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ab10002f58472dcb5f04c04c56790640d" name="ab10002f58472dcb5f04c04c56790640d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab10002f58472dcb5f04c04c56790640d">◆ </a></span>dynamic_array_increase_capacity()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool dynamic_array_increase_capacity </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structdynamic__array.html">dynamic_array</a> * </td>
|
|
<td class="paramname"><em>array</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const unsigned int </td>
|
|
<td class="paramname"><em>new_capacity</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Reserve additional capacity without changing size. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">array</td><td>Pointer to the <a class="el" href="structdynamic__array.html">dynamic_array</a>. </td></tr>
|
|
<tr><td class="paramname">new_capacity</td><td>Desired capacity. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>true on success, false on allocation failure. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a860a30efb898e1e20631b95ae544ece9" name="a860a30efb898e1e20631b95ae544ece9"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a860a30efb898e1e20631b95ae544ece9">◆ </a></span>dynamic_array_is_empty()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool dynamic_array_is_empty </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structdynamic__array.html">dynamic_array</a> * </td>
|
|
<td class="paramname"><em>array</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Check if the array is empty. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">array</td><td>Pointer to the <a class="el" href="structdynamic__array.html">dynamic_array</a>. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>true if current_size is 0, false otherwise. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="afd8d4acd91ed7b5260881faf93c2e265" name="afd8d4acd91ed7b5260881faf93c2e265"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#afd8d4acd91ed7b5260881faf93c2e265">◆ </a></span>dynamic_array_is_thread_safe()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool dynamic_array_is_thread_safe </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structdynamic__array.html">dynamic_array</a> * </td>
|
|
<td class="paramname"><em>array</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Check if the array is thread-safe. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">array</td><td>Pointer to the <a class="el" href="structdynamic__array.html">dynamic_array</a>. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>true if is_multithread_safe is set, false otherwise. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a8ffd2d54341aa8daa04fdac517e85b0b" name="a8ffd2d54341aa8daa04fdac517e85b0b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a8ffd2d54341aa8daa04fdac517e85b0b">◆ </a></span>dynamic_array_pop()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool dynamic_array_pop </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structdynamic__array.html">dynamic_array</a> * </td>
|
|
<td class="paramname"><em>array</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Remove the last element from the array. </p>
|
|
<p>Decrements current_size. Does not free the memory block.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">array</td><td>Pointer to the <a class="el" href="structdynamic__array.html">dynamic_array</a>. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>true on success, false if array is empty. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a0638d6e4c6aba0de9925609de03bd57a" name="a0638d6e4c6aba0de9925609de03bd57a"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a0638d6e4c6aba0de9925609de03bd57a">◆ </a></span>dynamic_array_release()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool dynamic_array_release </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structdynamic__array.html">dynamic_array</a> * </td>
|
|
<td class="paramname"><em>array</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Decrement the owner count for shared ownership. </p>
|
|
<p>If owner_count reaches 0, the array is automatically destroyed.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">array</td><td>Pointer to the <a class="el" href="structdynamic__array.html">dynamic_array</a>. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>true if owner_count > 0 after decrement, false if destroyed. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a6c315e8471380136e9b4d1b17537481b" name="a6c315e8471380136e9b4d1b17537481b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a6c315e8471380136e9b4d1b17537481b">◆ </a></span>dynamic_array_remove()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool dynamic_array_remove </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structdynamic__array.html">dynamic_array</a> * </td>
|
|
<td class="paramname"><em>array</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const unsigned int </td>
|
|
<td class="paramname"><em>index</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Remove an element at the specified index. </p>
|
|
<p>Shifts subsequent elements down to fill the gap.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">array</td><td>Pointer to the <a class="el" href="structdynamic__array.html">dynamic_array</a>. </td></tr>
|
|
<tr><td class="paramname">index</td><td>Index of the element to remove. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>true on success, false if index is out of bounds. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
</div><!-- contents -->
|
|
<!-- start footer part -->
|
|
<hr class="footer"/><address class="footer"><small>
|
|
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
|
|
</small></address>
|
|
</body>
|
|
</html>
|