Patrick Kelley 8fd444092b initial
2025-05-07 15:35:15 -04:00

1335 lines
62 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-------------------------------------------------------------->
<!-- qDecoder Project -->
<!-- -->
<!-- Copyright (c) The qDecoder Project -->
<!-- http://www.qdecoder.org -->
<!-------------------------------------------------------------->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>qentry.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<center><h1>qDecoder API Reference</h1></center>
<!-- Generated by Doxygen 1.8.2 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">qentry.c File Reference</div> </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Linked-list Data Structure API. </p>
<div class="fragment"><div class="line">[Code sample - String]</div>
<div class="line"></div>
<div class="line"><span class="comment">// init a linked-list.</span></div>
<div class="line"><a class="code" href="structqentry__s.html">qentry_t</a> *entry = <a class="code" href="qdecoder_8h.html#a0a3b500b61ebb492016def5f5c29ab6a" title="Create new qentry_t linked-list object.">qEntry</a>();</div>
<div class="line"></div>
<div class="line"><span class="comment">// insert a string element</span></div>
<div class="line">entry-&gt;putstr(entry, <span class="stringliteral">&quot;str&quot;</span>, <span class="stringliteral">&quot;hello world&quot;</span>, <span class="keyword">true</span>);</div>
<div class="line"></div>
<div class="line"><span class="comment">// get the string.</span></div>
<div class="line"><span class="keywordtype">char</span> *str = entry-&gt;getstr(entry, <span class="stringliteral">&quot;str&quot;</span>, <span class="keyword">false</span>);</div>
<div class="line"><span class="keywordflow">if</span>(str != NULL) {</div>
<div class="line"> printf(<span class="stringliteral">&quot;str = %s\n&quot;</span>, str);</div>
<div class="line"> free(str);</div>
<div class="line">}</div>
<div class="line"></div>
<div class="line"><span class="comment">// print out all elements in the list.</span></div>
<div class="line">entry-&gt;print(entry, stdout, <span class="keyword">false</span>);</div>
<div class="line"></div>
<div class="line"><span class="comment">// free the list.</span></div>
<div class="line">entry-&gt;free(entry);</div>
<div class="line"></div>
<div class="line">[Result]</div>
</div><!-- fragment --> </div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a0a3b500b61ebb492016def5f5c29ab6a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structqentry__s.html">qentry_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qentry_8c.html#a0a3b500b61ebb492016def5f5c29ab6a">qEntry</a> (void)</td></tr>
<tr class="memdesc:a0a3b500b61ebb492016def5f5c29ab6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create new qentry_t linked-list object. <a href="#a0a3b500b61ebb492016def5f5c29ab6a"></a><br/></td></tr>
<tr class="separator:a0a3b500b61ebb492016def5f5c29ab6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a937beefff51307bc5546f91807fede66"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qentry_8c.html#a937beefff51307bc5546f91807fede66">_put</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *entry, const char *name, const void *data, size_t size, bool replace)</td></tr>
<tr class="memdesc:a937beefff51307bc5546f91807fede66"><td class="mdescLeft">&#160;</td><td class="mdescRight">qentry_t-&gt;put(): Store object into linked-list structure. <a href="#a937beefff51307bc5546f91807fede66"></a><br/></td></tr>
<tr class="separator:a937beefff51307bc5546f91807fede66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5d9f8c2887a0baefa29aa6fe0ddbf1d"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qentry_8c.html#ae5d9f8c2887a0baefa29aa6fe0ddbf1d">_putstr</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *entry, const char *name, const char *str, bool replace)</td></tr>
<tr class="memdesc:ae5d9f8c2887a0baefa29aa6fe0ddbf1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">qentry_t-&gt;putstr(): Add string object into linked-list structure. <a href="#ae5d9f8c2887a0baefa29aa6fe0ddbf1d"></a><br/></td></tr>
<tr class="separator:ae5d9f8c2887a0baefa29aa6fe0ddbf1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0001b9b1afaadddbd74aa0aef1850980"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qentry_8c.html#a0001b9b1afaadddbd74aa0aef1850980">_putstrf</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *entry, bool replace, const char *name, const char *format,...)</td></tr>
<tr class="memdesc:a0001b9b1afaadddbd74aa0aef1850980"><td class="mdescLeft">&#160;</td><td class="mdescRight">qentry_t-&gt;putstrf(): Add formatted string object into linked-list structure. <a href="#a0001b9b1afaadddbd74aa0aef1850980"></a><br/></td></tr>
<tr class="separator:a0001b9b1afaadddbd74aa0aef1850980"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ae378566ebcf6ac43d36662fce3aecb"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qentry_8c.html#a2ae378566ebcf6ac43d36662fce3aecb">_putint</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *entry, const char *name, int num, bool replace)</td></tr>
<tr class="memdesc:a2ae378566ebcf6ac43d36662fce3aecb"><td class="mdescLeft">&#160;</td><td class="mdescRight">qentry_t-&gt;putint(): Add integer object into linked-list structure. <a href="#a2ae378566ebcf6ac43d36662fce3aecb"></a><br/></td></tr>
<tr class="separator:a2ae378566ebcf6ac43d36662fce3aecb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9253a5db4b45801fed4bd02965f8b3aa"><td class="memItemLeft" align="right" valign="top">static void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qentry_8c.html#a9253a5db4b45801fed4bd02965f8b3aa">_get</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *entry, const char *name, size_t *size, bool newmem)</td></tr>
<tr class="memdesc:a9253a5db4b45801fed4bd02965f8b3aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">qentry_t-&gt;get(): Find object with given name <a href="#a9253a5db4b45801fed4bd02965f8b3aa"></a><br/></td></tr>
<tr class="separator:a9253a5db4b45801fed4bd02965f8b3aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1fde2733230bff6fc35e90d01630bff0"><td class="memItemLeft" align="right" valign="top">static void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qentry_8c.html#a1fde2733230bff6fc35e90d01630bff0">_getlast</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *entry, const char *name, size_t *size, bool newmem)</td></tr>
<tr class="memdesc:a1fde2733230bff6fc35e90d01630bff0"><td class="mdescLeft">&#160;</td><td class="mdescRight">qentry_t-&gt;getlast(): Find lastest matched object with given name. <a href="#a1fde2733230bff6fc35e90d01630bff0"></a><br/></td></tr>
<tr class="separator:a1fde2733230bff6fc35e90d01630bff0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc304660a396041f8dc2f289e05aa3ed"><td class="memItemLeft" align="right" valign="top">static char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qentry_8c.html#abc304660a396041f8dc2f289e05aa3ed">_getstr</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *entry, const char *name, bool newmem)</td></tr>
<tr class="memdesc:abc304660a396041f8dc2f289e05aa3ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">qentry_t-&gt;getstr(): Find string object with given name. <a href="#abc304660a396041f8dc2f289e05aa3ed"></a><br/></td></tr>
<tr class="separator:abc304660a396041f8dc2f289e05aa3ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2314e2760567904bf235f59d0e101659"><td class="memItemLeft" align="right" valign="top">static char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qentry_8c.html#a2314e2760567904bf235f59d0e101659">_getstrf</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *entry, bool newmem, const char *namefmt,...)</td></tr>
<tr class="memdesc:a2314e2760567904bf235f59d0e101659"><td class="mdescLeft">&#160;</td><td class="mdescRight">qentry_t-&gt;<a class="el" href="qentry_8c.html#a2314e2760567904bf235f59d0e101659" title="qentry_t-&gt;_getstrf(): Find string object with given formatted name.">_getstrf()</a>: Find string object with given formatted name. <a href="#a2314e2760567904bf235f59d0e101659"></a><br/></td></tr>
<tr class="separator:a2314e2760567904bf235f59d0e101659"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acac0bc24beab9e38d8e03bfea362ad77"><td class="memItemLeft" align="right" valign="top">static char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qentry_8c.html#acac0bc24beab9e38d8e03bfea362ad77">_getstrlast</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *entry, const char *name, bool newmem)</td></tr>
<tr class="memdesc:acac0bc24beab9e38d8e03bfea362ad77"><td class="mdescLeft">&#160;</td><td class="mdescRight">qentry_t-&gt;getstrlast(): Find lastest matched string object with given name. <a href="#acac0bc24beab9e38d8e03bfea362ad77"></a><br/></td></tr>
<tr class="separator:acac0bc24beab9e38d8e03bfea362ad77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ddb7b980191b62e2643a2efd8ba8788"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qentry_8c.html#a5ddb7b980191b62e2643a2efd8ba8788">_getint</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *entry, const char *name)</td></tr>
<tr class="memdesc:a5ddb7b980191b62e2643a2efd8ba8788"><td class="mdescLeft">&#160;</td><td class="mdescRight">qentry_t-&gt;getint(): Find integer object with given name. <a href="#a5ddb7b980191b62e2643a2efd8ba8788"></a><br/></td></tr>
<tr class="separator:a5ddb7b980191b62e2643a2efd8ba8788"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09442cf4305d561eaed7e966af20ea27"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qentry_8c.html#a09442cf4305d561eaed7e966af20ea27">_getintlast</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *entry, const char *name)</td></tr>
<tr class="memdesc:a09442cf4305d561eaed7e966af20ea27"><td class="mdescLeft">&#160;</td><td class="mdescRight">qentry_t-&gt;getintlast(): Find lastest matched integer object with given name. <a href="#a09442cf4305d561eaed7e966af20ea27"></a><br/></td></tr>
<tr class="separator:a09442cf4305d561eaed7e966af20ea27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa81d25ded1debd8bb5156160bfd2b3f5"><td class="memItemLeft" align="right" valign="top">static void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qentry_8c.html#aa81d25ded1debd8bb5156160bfd2b3f5">_caseget</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *entry, const char *name, size_t *size, bool newmem)</td></tr>
<tr class="memdesc:aa81d25ded1debd8bb5156160bfd2b3f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">qentry_t-&gt;caseget(): Find object with given name. <a href="#aa81d25ded1debd8bb5156160bfd2b3f5"></a><br/></td></tr>
<tr class="separator:aa81d25ded1debd8bb5156160bfd2b3f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f7e7fed779ae839bb08cc691469e0c4"><td class="memItemLeft" align="right" valign="top">static char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qentry_8c.html#a3f7e7fed779ae839bb08cc691469e0c4">_casegetstr</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *entry, const char *name, bool newmem)</td></tr>
<tr class="memdesc:a3f7e7fed779ae839bb08cc691469e0c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">qentry_t-&gt;casegetstr(): Find string object with given name in case-insensitive way. <a href="#a3f7e7fed779ae839bb08cc691469e0c4"></a><br/></td></tr>
<tr class="separator:a3f7e7fed779ae839bb08cc691469e0c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc2449f7e1d371e7e2a6e715bfd1e13a"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qentry_8c.html#abc2449f7e1d371e7e2a6e715bfd1e13a">_casegetint</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *entry, const char *name)</td></tr>
<tr class="memdesc:abc2449f7e1d371e7e2a6e715bfd1e13a"><td class="mdescLeft">&#160;</td><td class="mdescRight">qentry_t-&gt;casegetint(): Find integer object with given name in case-insensitive way. <a href="#abc2449f7e1d371e7e2a6e715bfd1e13a"></a><br/></td></tr>
<tr class="separator:abc2449f7e1d371e7e2a6e715bfd1e13a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11abbf2e05a81b788b75a4d629873c11"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qentry_8c.html#a11abbf2e05a81b788b75a4d629873c11">_getnext</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *entry, <a class="el" href="structqentobj__s.html">qentobj_t</a> *obj, const char *name, bool newmem)</td></tr>
<tr class="memdesc:a11abbf2e05a81b788b75a4d629873c11"><td class="mdescLeft">&#160;</td><td class="mdescRight">qentry_t-&gt;getnext(): Get next object structure. <a href="#a11abbf2e05a81b788b75a4d629873c11"></a><br/></td></tr>
<tr class="separator:a11abbf2e05a81b788b75a4d629873c11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e75a02f8c1314f0691aa76245381684"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qentry_8c.html#a9e75a02f8c1314f0691aa76245381684">_size</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *entry)</td></tr>
<tr class="memdesc:a9e75a02f8c1314f0691aa76245381684"><td class="mdescLeft">&#160;</td><td class="mdescRight">qentry_t-&gt;size(): Get total number of stored objects <a href="#a9e75a02f8c1314f0691aa76245381684"></a><br/></td></tr>
<tr class="separator:a9e75a02f8c1314f0691aa76245381684"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1b9786ff8a59b3edf6741d1880c87a2"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qentry_8c.html#af1b9786ff8a59b3edf6741d1880c87a2">_remove</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *entry, const char *name)</td></tr>
<tr class="memdesc:af1b9786ff8a59b3edf6741d1880c87a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">qentry_t-&gt;remove(): Remove matched objects as given name. <a href="#af1b9786ff8a59b3edf6741d1880c87a2"></a><br/></td></tr>
<tr class="separator:af1b9786ff8a59b3edf6741d1880c87a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3faa29eae41ab305f641bfdbc81909c5"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qentry_8c.html#a3faa29eae41ab305f641bfdbc81909c5">_truncate</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *entry)</td></tr>
<tr class="memdesc:a3faa29eae41ab305f641bfdbc81909c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">qentry_t-&gt;truncate(): Truncate qentry_t <a href="#a3faa29eae41ab305f641bfdbc81909c5"></a><br/></td></tr>
<tr class="separator:a3faa29eae41ab305f641bfdbc81909c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac962f295ff4f80138f5226746bfb1e38"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qentry_8c.html#ac962f295ff4f80138f5226746bfb1e38">_reverse</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *entry)</td></tr>
<tr class="memdesc:ac962f295ff4f80138f5226746bfb1e38"><td class="mdescLeft">&#160;</td><td class="mdescRight">qentry_t-&gt;reverse(): Reverse-sort internal stored object. <a href="#ac962f295ff4f80138f5226746bfb1e38"></a><br/></td></tr>
<tr class="separator:ac962f295ff4f80138f5226746bfb1e38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59ac6130d77311a71893997dd0f4ffaf"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qentry_8c.html#a59ac6130d77311a71893997dd0f4ffaf">_save</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *entry, const char *filepath)</td></tr>
<tr class="memdesc:a59ac6130d77311a71893997dd0f4ffaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">qentry_t-&gt;save(): Save qentry_t as plain text format <a href="#a59ac6130d77311a71893997dd0f4ffaf"></a><br/></td></tr>
<tr class="separator:a59ac6130d77311a71893997dd0f4ffaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af04e1aace4727654c3cfde2a8d61bb8f"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qentry_8c.html#af04e1aace4727654c3cfde2a8d61bb8f">_load</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *entry, const char *filepath)</td></tr>
<tr class="memdesc:af04e1aace4727654c3cfde2a8d61bb8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">qentry_t-&gt;load(): Load and append entries from given filepath <a href="#af04e1aace4727654c3cfde2a8d61bb8f"></a><br/></td></tr>
<tr class="separator:af04e1aace4727654c3cfde2a8d61bb8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c93bde7c11953cccc5f0e29c2285b0e"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qentry_8c.html#a7c93bde7c11953cccc5f0e29c2285b0e">_print</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *entry, FILE *out, bool print_data)</td></tr>
<tr class="memdesc:a7c93bde7c11953cccc5f0e29c2285b0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">qentry_t-&gt;print(): Print out stored objects for debugging purpose. <a href="#a7c93bde7c11953cccc5f0e29c2285b0e"></a><br/></td></tr>
<tr class="separator:a7c93bde7c11953cccc5f0e29c2285b0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe213ce1cf0530b894a5c4cbece16f32"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qentry_8c.html#afe213ce1cf0530b894a5c4cbece16f32">_free</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *entry)</td></tr>
<tr class="memdesc:afe213ce1cf0530b894a5c4cbece16f32"><td class="mdescLeft">&#160;</td><td class="mdescRight">qentry_t-&gt;free(): Free qentry_t <a href="#afe213ce1cf0530b894a5c4cbece16f32"></a><br/></td></tr>
<tr class="separator:afe213ce1cf0530b894a5c4cbece16f32"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a0a3b500b61ebb492016def5f5c29ab6a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structqentry__s.html">qentry_t</a>* qEntry </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create new qentry_t linked-list object. </p>
<dl class="section return"><dt>Returns</dt><dd>a pointer of malloced qentry_t structure in case of successful, otherwise returns NULL.</dd></dl>
<div class="fragment"><div class="line"><a class="code" href="structqentry__s.html">qentry_t</a> *entry = <a class="code" href="qdecoder_8h.html#a0a3b500b61ebb492016def5f5c29ab6a" title="Create new qentry_t linked-list object.">qEntry</a>();</div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a937beefff51307bc5546f91807fede66"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool _put </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> *&#160;</td>
<td class="paramname"><em>entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const void *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>replace</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>qentry_t-&gt;put(): Store object into linked-list structure. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entry</td><td>qentry_t pointer </td></tr>
<tr><td class="paramname">name</td><td>key name. </td></tr>
<tr><td class="paramname">object</td><td>object pointer </td></tr>
<tr><td class="paramname">size</td><td>size of the object </td></tr>
<tr><td class="paramname">replace</td><td>in case of false, just insert. in case of true, remove all same key then insert object if found.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if successful, otherwise returns false. </dd></dl>
</div>
</div>
<a class="anchor" id="ae5d9f8c2887a0baefa29aa6fe0ddbf1d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool _putstr </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> *&#160;</td>
<td class="paramname"><em>entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>replace</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>qentry_t-&gt;putstr(): Add string object into linked-list structure. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entry</td><td>qentry_t pointer </td></tr>
<tr><td class="paramname">name</td><td>key name. </td></tr>
<tr><td class="paramname">str</td><td>string value </td></tr>
<tr><td class="paramname">replace</td><td>in case of false, just insert. in case of true, remove all same key then insert object if found.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if successful, otherwise returns false. </dd></dl>
</div>
</div>
<a class="anchor" id="a0001b9b1afaadddbd74aa0aef1850980"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool _putstrf </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> *&#160;</td>
<td class="paramname"><em>entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>replace</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>format</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>...</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>qentry_t-&gt;putstrf(): Add formatted string object into linked-list structure. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entry</td><td>qentry_t pointer </td></tr>
<tr><td class="paramname">replace</td><td>in case of false, just insert. in case of true, remove all same key then insert object if found. </td></tr>
<tr><td class="paramname">name</td><td>key name. </td></tr>
<tr><td class="paramname">format</td><td>formatted value string</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if successful, otherwise returns false. </dd></dl>
</div>
</div>
<a class="anchor" id="a2ae378566ebcf6ac43d36662fce3aecb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool _putint </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> *&#160;</td>
<td class="paramname"><em>entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>replace</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>qentry_t-&gt;putint(): Add integer object into linked-list structure. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entry</td><td>qentry_t pointer </td></tr>
<tr><td class="paramname">name</td><td>key name. </td></tr>
<tr><td class="paramname">num</td><td>number value </td></tr>
<tr><td class="paramname">replace</td><td>in case of false, just insert. in case of true, remove all same key then insert object if found.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if successful, otherwise returns false. </dd></dl>
</div>
</div>
<a class="anchor" id="a9253a5db4b45801fed4bd02965f8b3aa"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void* _get </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> *&#160;</td>
<td class="paramname"><em>entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>newmem</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>qentry_t-&gt;get(): Find object with given name </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entry</td><td>qentry_t pointer </td></tr>
<tr><td class="paramname">name</td><td>key name </td></tr>
<tr><td class="paramname">size</td><td>if size is not NULL, object size will be stored. </td></tr>
<tr><td class="paramname">newmem</td><td>whether or not to allocate memory for the data.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer of data if key is found, otherwise returns NULL.</dd></dl>
<div class="fragment"><div class="line"><a class="code" href="structqentry__s.html">qentry_t</a> *entry = <a class="code" href="qdecoder_8h.html#a0a3b500b61ebb492016def5f5c29ab6a" title="Create new qentry_t linked-list object.">qEntry</a>();</div>
<div class="line">(...codes...)</div>
<div class="line"></div>
<div class="line"><span class="comment">// with newmem flag unset</span></div>
<div class="line"><span class="keywordtype">size_t</span> size;</div>
<div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span> *data = entry-&gt;get(entry, <span class="stringliteral">&quot;key_name&quot;</span>, &amp;size, <span class="keyword">false</span>);</div>
<div class="line"></div>
<div class="line"><span class="comment">// with newmem flag set</span></div>
<div class="line"><span class="keywordtype">size_t</span> size;</div>
<div class="line"><span class="keywordtype">char</span> *data = entry-&gt;get(entry, <span class="stringliteral">&quot;key_name&quot;</span>, &amp;size, <span class="keyword">true</span>);</div>
<div class="line"><span class="keywordflow">if</span>(data != NULL) free(data);</div>
</div><!-- fragment --><dl class="section note"><dt>Note</dt><dd>If newmem flag is set, returned data will be malloced and should be deallocated by user. Otherwise returned pointer will point internal buffer directly and should not be de-allocated by user. In thread-safe mode, newmem flag always should be true. </dd></dl>
</div>
</div>
<a class="anchor" id="a1fde2733230bff6fc35e90d01630bff0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void* _getlast </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> *&#160;</td>
<td class="paramname"><em>entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>newmem</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>qentry_t-&gt;getlast(): Find lastest matched object with given name. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entry</td><td>qentry_t pointer </td></tr>
<tr><td class="paramname">name</td><td>key name </td></tr>
<tr><td class="paramname">size</td><td>if size is not NULL, object size will be stored. </td></tr>
<tr><td class="paramname">newmem</td><td>whether or not to allocate memory for the data.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer of malloced data if key is found, otherwise returns NULL.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>If you have multiple objects with same name. this method can be used to find out lastest matched object. </dd></dl>
</div>
</div>
<a class="anchor" id="abc304660a396041f8dc2f289e05aa3ed"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static char* _getstr </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> *&#160;</td>
<td class="paramname"><em>entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>newmem</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>qentry_t-&gt;getstr(): Find string object with given name. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entry</td><td>qentry_t pointer </td></tr>
<tr><td class="paramname">name</td><td>key name </td></tr>
<tr><td class="paramname">newmem</td><td>whether or not to allocate memory for the data.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer of malloced data if key is found, otherwise returns NULL. </dd></dl>
</div>
</div>
<a class="anchor" id="a2314e2760567904bf235f59d0e101659"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static char* _getstrf </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> *&#160;</td>
<td class="paramname"><em>entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>newmem</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>namefmt</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>...</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>qentry_t-&gt;<a class="el" href="qentry_8c.html#a2314e2760567904bf235f59d0e101659" title="qentry_t-&gt;_getstrf(): Find string object with given formatted name.">_getstrf()</a>: Find string object with given formatted name. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entry</td><td>qentry_t pointer </td></tr>
<tr><td class="paramname">newmem</td><td>whether or not to allocate memory for the data. </td></tr>
<tr><td class="paramname">namefmt</td><td>formatted name string</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer of malloced data if key is found, otherwise returns NULL. </dd></dl>
</div>
</div>
<a class="anchor" id="acac0bc24beab9e38d8e03bfea362ad77"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static char* _getstrlast </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> *&#160;</td>
<td class="paramname"><em>entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>newmem</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>qentry_t-&gt;getstrlast(): Find lastest matched string object with given name. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entry</td><td>qentry_t pointer </td></tr>
<tr><td class="paramname">name</td><td>key name </td></tr>
<tr><td class="paramname">newmem</td><td>whether or not to allocate memory for the data.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer of malloced data if key is found, otherwise returns NULL. </dd></dl>
</div>
</div>
<a class="anchor" id="a5ddb7b980191b62e2643a2efd8ba8788"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static int _getint </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> *&#160;</td>
<td class="paramname"><em>entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>qentry_t-&gt;getint(): Find integer object with given name. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entry</td><td>qentry_t pointer </td></tr>
<tr><td class="paramname">name</td><td>key name</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a integer value of the integer object, otherwise returns 0. </dd></dl>
</div>
</div>
<a class="anchor" id="a09442cf4305d561eaed7e966af20ea27"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static int _getintlast </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> *&#160;</td>
<td class="paramname"><em>entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>qentry_t-&gt;getintlast(): Find lastest matched integer object with given name. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entry</td><td>qentry_t pointer </td></tr>
<tr><td class="paramname">name</td><td>key name</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a integer value of the object. </dd></dl>
</div>
</div>
<a class="anchor" id="aa81d25ded1debd8bb5156160bfd2b3f5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void* _caseget </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> *&#160;</td>
<td class="paramname"><em>entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>newmem</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>qentry_t-&gt;caseget(): Find object with given name. </p>
<p>(case-insensitive)</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entry</td><td>qentry_t pointer </td></tr>
<tr><td class="paramname">name</td><td>key name </td></tr>
<tr><td class="paramname">size</td><td>if size is not NULL, object size will be stored. </td></tr>
<tr><td class="paramname">newmem</td><td>whether or not to allocate memory for the data.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer of malloced data if key is found, otherwise returns NULL. </dd></dl>
</div>
</div>
<a class="anchor" id="a3f7e7fed779ae839bb08cc691469e0c4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static char* _casegetstr </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> *&#160;</td>
<td class="paramname"><em>entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>newmem</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>qentry_t-&gt;casegetstr(): Find string object with given name in case-insensitive way. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entry</td><td>qentry_t pointer </td></tr>
<tr><td class="paramname">name</td><td>key name </td></tr>
<tr><td class="paramname">newmem</td><td>whether or not to allocate memory for the data.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer of malloced data if key is found, otherwise returns NULL. </dd></dl>
</div>
</div>
<a class="anchor" id="abc2449f7e1d371e7e2a6e715bfd1e13a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static int _casegetint </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> *&#160;</td>
<td class="paramname"><em>entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>qentry_t-&gt;casegetint(): Find integer object with given name in case-insensitive way. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entry</td><td>qentry_t pointer </td></tr>
<tr><td class="paramname">name</td><td>key name</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a integer value of the object. </dd></dl>
</div>
</div>
<a class="anchor" id="a11abbf2e05a81b788b75a4d629873c11"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool _getnext </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> *&#160;</td>
<td class="paramname"><em>entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structqentobj__s.html">qentobj_t</a> *&#160;</td>
<td class="paramname"><em>obj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>newmem</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>qentry_t-&gt;getnext(): Get next object structure. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entry</td><td>qentry_t pointer </td></tr>
<tr><td class="paramname">obj</td><td>found data will be stored in this object </td></tr>
<tr><td class="paramname">name</td><td>key name, if key name is NULL search every key in the list. </td></tr>
<tr><td class="paramname">newmem</td><td>whether or not to allocate memory for the data.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if found otherwise returns false</dd></dl>
<dl class="section note"><dt>Note</dt><dd>obj should be filled with 0 by using memset() before first call. If newmem flag is true, user should de-allocate obj.name and obj.data resources.</dd></dl>
<div class="fragment"><div class="line"><a class="code" href="structqentry__s.html">qentry_t</a> *entry = <a class="code" href="qdecoder_8h.html#a0a3b500b61ebb492016def5f5c29ab6a" title="Create new qentry_t linked-list object.">qEntry</a>();</div>
<div class="line">entry-&gt;putstr(entry, <span class="stringliteral">&quot;key1&quot;</span>, <span class="stringliteral">&quot;hello world 1&quot;</span>, <span class="keyword">false</span>);</div>
<div class="line">entry-&gt;putstr(entry, <span class="stringliteral">&quot;key2&quot;</span>, <span class="stringliteral">&quot;hello world 2&quot;</span>, <span class="keyword">false</span>);</div>
<div class="line">entry-&gt;putstr(entry, <span class="stringliteral">&quot;key3&quot;</span>, <span class="stringliteral">&quot;hello world 3&quot;</span>, <span class="keyword">false</span>);</div>
<div class="line"></div>
<div class="line"><a class="code" href="structqentobj__s.html">qentobj_t</a> obj;</div>
<div class="line">memset((<span class="keywordtype">void</span>*)&amp;obj, 0, <span class="keyword">sizeof</span>(obj)); <span class="comment">// must be cleared before call</span></div>
<div class="line"><span class="keywordflow">while</span>(entry-&gt;getnext(entry, &amp;obj, NULL, <span class="keyword">false</span>) == <span class="keyword">true</span>) {</div>
<div class="line"> printf(<span class="stringliteral">&quot;NAME=%s, DATA=%s&quot;</span>, SIZE=%zu<span class="stringliteral">&quot;, obj.name, obj.data, obj.size);</span></div>
<div class="line"><span class="stringliteral">}</span></div>
<div class="line"><span class="stringliteral"></span></div>
<div class="line"><span class="stringliteral">// with newmem flag</span></div>
<div class="line"><span class="stringliteral">qentobj_t obj;</span></div>
<div class="line"><span class="stringliteral">memset((void*)&amp;obj, 0, sizeof(obj)); // must be cleared before call</span></div>
<div class="line"><span class="stringliteral">while(entry-&gt;getnext(entry, &amp;obj, NULL, true) == true) {</span></div>
<div class="line"><span class="stringliteral"> printf(&quot;</span>NAME=%s, DATA=%s<span class="stringliteral">&quot;, SIZE=%zu&quot;</span>, obj.<a class="code" href="structqentobj__s.html#a726c1551751d9179ce8d2653b1829a25">name</a>, obj.<a class="code" href="structqentobj__s.html#a4fa97cd09b37653701c12514597df22c">data</a>, obj.<a class="code" href="structqentobj__s.html#af367fed53a16929b5849ee7561ac0900">size</a>);</div>
<div class="line"> free(obj.<a class="code" href="structqentobj__s.html#a726c1551751d9179ce8d2653b1829a25">name</a>);</div>
<div class="line"> free(obj.<a class="code" href="structqentobj__s.html#a4fa97cd09b37653701c12514597df22c">data</a>);</div>
<div class="line">}</div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a9e75a02f8c1314f0691aa76245381684"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static int _size </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> *&#160;</td>
<td class="paramname"><em>entry</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>qentry_t-&gt;size(): Get total number of stored objects </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entry</td><td>qentry_t pointer</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>total number of stored objects. </dd></dl>
</div>
</div>
<a class="anchor" id="af1b9786ff8a59b3edf6741d1880c87a2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static int _remove </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> *&#160;</td>
<td class="paramname"><em>entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>qentry_t-&gt;remove(): Remove matched objects as given name. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entry</td><td>qentry_t pointer </td></tr>
<tr><td class="paramname">name</td><td>key name</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a number of removed objects. </dd></dl>
</div>
</div>
<a class="anchor" id="a3faa29eae41ab305f641bfdbc81909c5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool _truncate </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> *&#160;</td>
<td class="paramname"><em>entry</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>qentry_t-&gt;truncate(): Truncate qentry_t </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entry</td><td>qentry_t pointer</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>always returns true. </dd></dl>
</div>
</div>
<a class="anchor" id="ac962f295ff4f80138f5226746bfb1e38"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool _reverse </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> *&#160;</td>
<td class="paramname"><em>entry</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>qentry_t-&gt;reverse(): Reverse-sort internal stored object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entry</td><td>qentry_t pointer</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if successful otherwise returns false.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This method can be used to improve look up performance. if your application offen looking for last stored object. </dd></dl>
</div>
</div>
<a class="anchor" id="a59ac6130d77311a71893997dd0f4ffaf"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool _save </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> *&#160;</td>
<td class="paramname"><em>entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>filepath</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>qentry_t-&gt;save(): Save qentry_t as plain text format </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entry</td><td>qentry_t pointer </td></tr>
<tr><td class="paramname">filepath</td><td>save file path</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if successful, otherwise returns false. </dd></dl>
</div>
</div>
<a class="anchor" id="af04e1aace4727654c3cfde2a8d61bb8f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static int _load </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> *&#160;</td>
<td class="paramname"><em>entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>filepath</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>qentry_t-&gt;load(): Load and append entries from given filepath </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entry</td><td>qentry_t pointer </td></tr>
<tr><td class="paramname">filepath</td><td>save file path</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a number of loaded entries. </dd></dl>
</div>
</div>
<a class="anchor" id="a7c93bde7c11953cccc5f0e29c2285b0e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool _print </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> *&#160;</td>
<td class="paramname"><em>entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">FILE *&#160;</td>
<td class="paramname"><em>out</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>print_data</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>qentry_t-&gt;print(): Print out stored objects for debugging purpose. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entry</td><td>qentry_t pointer </td></tr>
<tr><td class="paramname">out</td><td>output stream FILE descriptor such like stdout, stderr. </td></tr>
<tr><td class="paramname">print_data</td><td>true for printing out object value, false for disable printing out object value. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="afe213ce1cf0530b894a5c4cbece16f32"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool _free </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> *&#160;</td>
<td class="paramname"><em>entry</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>qentry_t-&gt;free(): Free qentry_t </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entry</td><td>qentry_t pointer</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>always returns true. </dd></dl>
</div>
</div>
</div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
<a href="http://www.qdecoder.org/">The qDecoder Project</a>.
Sat Mar 22 2014 07:44:36
</small></address>
</body>
</html>