mirror of
https://github.com/msgpack/msgpack-c.git
synced 2025-04-21 00:11:52 +02:00
132 lines
42 KiB
HTML
132 lines
42 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
|
<meta name="generator" content="Doxygen 1.8.11"/>
|
|
<title>MessagePack for C: /home/kondo/work/msgpack-c/include/msgpack/zone.h Source File</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>
|
|
<script type="text/javascript">
|
|
$(document).ready(function() { init_search(); });
|
|
</script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr style="height: 56px;">
|
|
<td id="projectalign" style="padding-left: 0.5em;">
|
|
<div id="projectname">MessagePack for C
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.8.11 -->
|
|
<script type="text/javascript">
|
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
|
</script>
|
|
<div id="navrow1" class="tabs">
|
|
<ul class="tablist">
|
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
|
<li>
|
|
<div id="MSearchBox" class="MSearchBoxInactive">
|
|
<span class="left">
|
|
<img id="MSearchSelect" src="search/mag_sel.png"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
alt=""/>
|
|
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
|
onfocus="searchBox.OnSearchFieldFocus(true)"
|
|
onblur="searchBox.OnSearchFieldFocus(false)"
|
|
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
|
</span><span class="right">
|
|
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
|
</span>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div id="navrow2" class="tabs2">
|
|
<ul class="tablist">
|
|
<li><a href="files.html"><span>File List</span></a></li>
|
|
<li><a href="globals.html"><span>File Members</span></a></li>
|
|
</ul>
|
|
</div>
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<iframe src="javascript:void(0)" frameborder="0"
|
|
name="MSearchResults" id="MSearchResults">
|
|
</iframe>
|
|
</div>
|
|
|
|
<div id="nav-path" class="navpath">
|
|
<ul>
|
|
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_dd2411636cfeb3780831d8d9eec9249e.html">msgpack</a></li> </ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="headertitle">
|
|
<div class="title">zone.h</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<a href="zone_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * MessagePack for C memory pool implementation</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * Copyright (C) 2008-2010 FURUHASHI Sadayuki</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> *</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Distributed under the Boost Software License, Version 1.0.</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * (See accompanying file LICENSE_1_0.txt or copy at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * http://www.boost.org/LICENSE_1_0.txt)</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> */</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#ifndef MSGPACK_ZONE_H</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#define MSGPACK_ZONE_H</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include "<a class="code" href="sysdep_8h.html">sysdep.h</a>"</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="structmsgpack__zone__finalizer.html"> 26</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structmsgpack__zone__finalizer.html">msgpack_zone_finalizer</a> {</div><div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="structmsgpack__zone__finalizer.html#afac2245b8c33177d9ddfdb2c83613c4b"> 27</a></span>  void (*<a class="code" href="structmsgpack__zone__finalizer.html#afac2245b8c33177d9ddfdb2c83613c4b">func</a>)(<span class="keywordtype">void</span>* <a class="code" href="structmsgpack__zone__finalizer.html#a53cae79ea21d8a034b6602e6b970b67f">data</a>);</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="structmsgpack__zone__finalizer.html#a53cae79ea21d8a034b6602e6b970b67f"> 28</a></span>  <span class="keywordtype">void</span>* <a class="code" href="structmsgpack__zone__finalizer.html#a53cae79ea21d8a034b6602e6b970b67f">data</a>;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> } <a class="code" href="group__msgpack__zone.html#gad19985b7835ea138cbd564c776790fc2">msgpack_zone_finalizer</a>;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="structmsgpack__zone__finalizer__array.html"> 31</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structmsgpack__zone__finalizer__array.html">msgpack_zone_finalizer_array</a> {</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="structmsgpack__zone__finalizer__array.html#a33dc196889c8382525bb74e999294be7"> 32</a></span>  <a class="code" href="structmsgpack__zone__finalizer.html">msgpack_zone_finalizer</a>* <a class="code" href="structmsgpack__zone__finalizer__array.html#a33dc196889c8382525bb74e999294be7">tail</a>;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="structmsgpack__zone__finalizer__array.html#adefd403c9115edc0af3062c0e599ead1"> 33</a></span>  <a class="code" href="structmsgpack__zone__finalizer.html">msgpack_zone_finalizer</a>* <a class="code" href="structmsgpack__zone__finalizer__array.html#adefd403c9115edc0af3062c0e599ead1">end</a>;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="structmsgpack__zone__finalizer__array.html#a1164f2114cd4a622f9f62d78bc1f1e89"> 34</a></span>  <a class="code" href="structmsgpack__zone__finalizer.html">msgpack_zone_finalizer</a>* <a class="code" href="structmsgpack__zone__finalizer__array.html#a1164f2114cd4a622f9f62d78bc1f1e89">array</a>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> } <a class="code" href="group__msgpack__zone.html#ga3f77f6136e2d74b9c2653ee6c5b33fce">msgpack_zone_finalizer_array</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">struct </span><a class="code" href="group__msgpack__zone.html#ga6e44b1e55f1bd028e65770d1bb63f0d3">msgpack_zone_chunk</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="group__msgpack__zone.html#ga6e44b1e55f1bd028e65770d1bb63f0d3"> 38</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="group__msgpack__zone.html#ga6e44b1e55f1bd028e65770d1bb63f0d3">msgpack_zone_chunk</a> <a class="code" href="group__msgpack__zone.html#ga6e44b1e55f1bd028e65770d1bb63f0d3">msgpack_zone_chunk</a>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="structmsgpack__zone__chunk__list.html"> 40</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structmsgpack__zone__chunk__list.html">msgpack_zone_chunk_list</a> {</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="structmsgpack__zone__chunk__list.html#ad05f06021cdecb757f306cce4d09f942"> 41</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="structmsgpack__zone__chunk__list.html#ad05f06021cdecb757f306cce4d09f942">free</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="structmsgpack__zone__chunk__list.html#a988fcf6caaf5759c51383c7768284667"> 42</a></span>  <span class="keywordtype">char</span>* <a class="code" href="structmsgpack__zone__chunk__list.html#a988fcf6caaf5759c51383c7768284667">ptr</a>;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="structmsgpack__zone__chunk__list.html#a2ae72ae61115b9ac3c03a1240424ad6d"> 43</a></span>  <a class="code" href="group__msgpack__zone.html#ga6e44b1e55f1bd028e65770d1bb63f0d3">msgpack_zone_chunk</a>* <a class="code" href="structmsgpack__zone__chunk__list.html#a2ae72ae61115b9ac3c03a1240424ad6d">head</a>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> } <a class="code" href="group__msgpack__zone.html#gad0bfc8b3b66f97ad4739a4f89d140233">msgpack_zone_chunk_list</a>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structmsgpack__zone.html"> 46</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structmsgpack__zone.html">msgpack_zone</a> {</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="structmsgpack__zone.html#a992bf7c60a378730342632e4e429235f"> 47</a></span>  <a class="code" href="structmsgpack__zone__chunk__list.html">msgpack_zone_chunk_list</a> <a class="code" href="structmsgpack__zone.html#a992bf7c60a378730342632e4e429235f">chunk_list</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="structmsgpack__zone.html#a9edf44d39379616b64bd1c2792dc71b9"> 48</a></span>  <a class="code" href="structmsgpack__zone__finalizer__array.html">msgpack_zone_finalizer_array</a> <a class="code" href="structmsgpack__zone.html#a9edf44d39379616b64bd1c2792dc71b9">finalizer_array</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="structmsgpack__zone.html#a2ecc632711b9c693f7b9b155df7182e0"> 49</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="structmsgpack__zone.html#a2ecc632711b9c693f7b9b155df7182e0">chunk_size</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> } <a class="code" href="group__msgpack__zone.html#gacbe83a0554eaf46433cac48681df56d5">msgpack_zone</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#ifndef MSGPACK_ZONE_CHUNK_SIZE</span></div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="group__msgpack__zone.html#gad6277f7217ba82146d2699686ecd4823"> 53</a></span> <span class="preprocessor">#define MSGPACK_ZONE_CHUNK_SIZE 8192</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <a class="code" href="sysdep_8h.html#ad61f64307661edacf275ed1e1995c919">MSGPACK_DLLEXPORT</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keywordtype">bool</span> <a class="code" href="group__msgpack__zone.html#ga76ef095d027a0d0f305efe0983124a1a">msgpack_zone_init</a>(<a class="code" href="structmsgpack__zone.html">msgpack_zone</a>* zone, <span class="keywordtype">size_t</span> chunk_size);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <a class="code" href="sysdep_8h.html#ad61f64307661edacf275ed1e1995c919">MSGPACK_DLLEXPORT</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keywordtype">void</span> <a class="code" href="group__msgpack__zone.html#gacb4e7b701419687b813b3fb3ded762ad">msgpack_zone_destroy</a>(<a class="code" href="structmsgpack__zone.html">msgpack_zone</a>* zone);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <a class="code" href="sysdep_8h.html#ad61f64307661edacf275ed1e1995c919">MSGPACK_DLLEXPORT</a></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <a class="code" href="structmsgpack__zone.html">msgpack_zone</a>* <a class="code" href="group__msgpack__zone.html#ga4ffe4a10754e933a0232b8d4f04669ae">msgpack_zone_new</a>(<span class="keywordtype">size_t</span> chunk_size);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <a class="code" href="sysdep_8h.html#ad61f64307661edacf275ed1e1995c919">MSGPACK_DLLEXPORT</a></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keywordtype">void</span> <a class="code" href="group__msgpack__zone.html#ga0e765825328138ba6a349e8bc89e2bbd">msgpack_zone_free</a>(<a class="code" href="structmsgpack__zone.html">msgpack_zone</a>* zone);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span>* msgpack_zone_malloc(<a class="code" href="structmsgpack__zone.html">msgpack_zone</a>* zone, <span class="keywordtype">size_t</span> size);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span>* msgpack_zone_malloc_no_align(<a class="code" href="structmsgpack__zone.html">msgpack_zone</a>* zone, <span class="keywordtype">size_t</span> size);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> msgpack_zone_push_finalizer(<a class="code" href="structmsgpack__zone.html">msgpack_zone</a>* zone,</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordtype">void</span> (*<a class="code" href="structmsgpack__zone__finalizer.html#afac2245b8c33177d9ddfdb2c83613c4b">func</a>)(<span class="keywordtype">void</span>* <a class="code" href="structmsgpack__zone__finalizer.html#a53cae79ea21d8a034b6602e6b970b67f">data</a>), <span class="keywordtype">void</span>* data);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> msgpack_zone_swap(<a class="code" href="structmsgpack__zone.html">msgpack_zone</a>* a, <a class="code" href="structmsgpack__zone.html">msgpack_zone</a>* b);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <a class="code" href="sysdep_8h.html#ad61f64307661edacf275ed1e1995c919">MSGPACK_DLLEXPORT</a></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keywordtype">bool</span> <a class="code" href="group__msgpack__zone.html#ga95636e0be3b5ccc4ca6c65ef47ea164f">msgpack_zone_is_empty</a>(<a class="code" href="structmsgpack__zone.html">msgpack_zone</a>* zone);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <a class="code" href="sysdep_8h.html#ad61f64307661edacf275ed1e1995c919">MSGPACK_DLLEXPORT</a></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keywordtype">void</span> <a class="code" href="group__msgpack__zone.html#gac69bfc49a3e8e8cd4c29985c422e0eea">msgpack_zone_clear</a>(<a class="code" href="structmsgpack__zone.html">msgpack_zone</a>* zone);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor">#ifndef MSGPACK_ZONE_ALIGN</span></div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="zone_8h.html#ab7cf41ad9afffa289d2b9ac7634ffcab"> 84</a></span> <span class="preprocessor">#define MSGPACK_ZONE_ALIGN sizeof(void*)</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <a class="code" href="sysdep_8h.html#ad61f64307661edacf275ed1e1995c919">MSGPACK_DLLEXPORT</a></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keywordtype">void</span>* <a class="code" href="zone_8h.html#a0c2aa96a7eb480e0ebe41d3dd2c21934">msgpack_zone_malloc_expand</a>(<a class="code" href="structmsgpack__zone.html">msgpack_zone</a>* zone, <span class="keywordtype">size_t</span> size);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span>* msgpack_zone_malloc_no_align(<a class="code" href="structmsgpack__zone.html">msgpack_zone</a>* zone, <span class="keywordtype">size_t</span> size)</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordtype">char</span>* ptr;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <a class="code" href="structmsgpack__zone__chunk__list.html">msgpack_zone_chunk_list</a>* cl = &zone-><a class="code" href="structmsgpack__zone.html#a992bf7c60a378730342632e4e429235f">chunk_list</a>;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordflow">if</span>(zone-><a class="code" href="structmsgpack__zone.html#a992bf7c60a378730342632e4e429235f">chunk_list</a>.<a class="code" href="structmsgpack__zone__chunk__list.html#ad05f06021cdecb757f306cce4d09f942">free</a> < size) {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">return</span> <a class="code" href="zone_8h.html#a0c2aa96a7eb480e0ebe41d3dd2c21934">msgpack_zone_malloc_expand</a>(zone, size);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  ptr = cl-><a class="code" href="structmsgpack__zone__chunk__list.html#a988fcf6caaf5759c51383c7768284667">ptr</a>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  cl-><a class="code" href="structmsgpack__zone__chunk__list.html#ad05f06021cdecb757f306cce4d09f942">free</a> -= size;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  cl-><a class="code" href="structmsgpack__zone__chunk__list.html#a988fcf6caaf5759c51383c7768284667">ptr</a> += size;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">return</span> ptr;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span>* msgpack_zone_malloc(<a class="code" href="structmsgpack__zone.html">msgpack_zone</a>* zone, <span class="keywordtype">size_t</span> size)</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordtype">char</span>* aligned =</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  (<span class="keywordtype">char</span>*)(</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  (<span class="keywordtype">size_t</span>)(</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  zone-><a class="code" href="structmsgpack__zone.html#a992bf7c60a378730342632e4e429235f">chunk_list</a>.<a class="code" href="structmsgpack__zone__chunk__list.html#a988fcf6caaf5759c51383c7768284667">ptr</a> + (<a class="code" href="zone_8h.html#ab7cf41ad9afffa289d2b9ac7634ffcab">MSGPACK_ZONE_ALIGN</a> - 1)</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  ) / <a class="code" href="zone_8h.html#ab7cf41ad9afffa289d2b9ac7634ffcab">MSGPACK_ZONE_ALIGN</a> * <a class="code" href="zone_8h.html#ab7cf41ad9afffa289d2b9ac7634ffcab">MSGPACK_ZONE_ALIGN</a></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  );</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordtype">size_t</span> adjusted_size = size + (aligned - zone-><a class="code" href="structmsgpack__zone.html#a992bf7c60a378730342632e4e429235f">chunk_list</a>.<a class="code" href="structmsgpack__zone__chunk__list.html#a988fcf6caaf5759c51383c7768284667">ptr</a>);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordflow">if</span>(zone-><a class="code" href="structmsgpack__zone.html#a992bf7c60a378730342632e4e429235f">chunk_list</a>.<a class="code" href="structmsgpack__zone__chunk__list.html#ad05f06021cdecb757f306cce4d09f942">free</a> >= adjusted_size) {</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  zone-><a class="code" href="structmsgpack__zone.html#a992bf7c60a378730342632e4e429235f">chunk_list</a>.<a class="code" href="structmsgpack__zone__chunk__list.html#ad05f06021cdecb757f306cce4d09f942">free</a> -= adjusted_size;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  zone-><a class="code" href="structmsgpack__zone.html#a992bf7c60a378730342632e4e429235f">chunk_list</a>.<a class="code" href="structmsgpack__zone__chunk__list.html#a988fcf6caaf5759c51383c7768284667">ptr</a> += adjusted_size;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">return</span> aligned;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordtype">void</span>* ptr = <a class="code" href="zone_8h.html#a0c2aa96a7eb480e0ebe41d3dd2c21934">msgpack_zone_malloc_expand</a>(zone, size + (<a class="code" href="zone_8h.html#ab7cf41ad9afffa289d2b9ac7634ffcab">MSGPACK_ZONE_ALIGN</a> - 1));</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">if</span> (ptr) {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordflow">return</span> (<span class="keywordtype">char</span>*)((size_t)(ptr) / <a class="code" href="zone_8h.html#ab7cf41ad9afffa289d2b9ac7634ffcab">MSGPACK_ZONE_ALIGN</a> * <a class="code" href="zone_8h.html#ab7cf41ad9afffa289d2b9ac7634ffcab">MSGPACK_ZONE_ALIGN</a>);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  }</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  }</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="keywordtype">bool</span> <a class="code" href="zone_8h.html#a7c006ea02e8a1214df79c3066bddf34f">msgpack_zone_push_finalizer_expand</a>(<a class="code" href="structmsgpack__zone.html">msgpack_zone</a>* zone,</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordtype">void</span> (*<a class="code" href="structmsgpack__zone__finalizer.html#afac2245b8c33177d9ddfdb2c83613c4b">func</a>)(<span class="keywordtype">void</span>* <a class="code" href="structmsgpack__zone__finalizer.html#a53cae79ea21d8a034b6602e6b970b67f">data</a>), <span class="keywordtype">void</span>* data);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> msgpack_zone_push_finalizer(<a class="code" href="structmsgpack__zone.html">msgpack_zone</a>* zone,</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordtype">void</span> (*<a class="code" href="structmsgpack__zone__finalizer.html#afac2245b8c33177d9ddfdb2c83613c4b">func</a>)(<span class="keywordtype">void</span>* <a class="code" href="structmsgpack__zone__finalizer.html#a53cae79ea21d8a034b6602e6b970b67f">data</a>), <span class="keywordtype">void</span>* data)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <a class="code" href="structmsgpack__zone__finalizer__array.html">msgpack_zone_finalizer_array</a>* <span class="keyword">const</span> fa = &zone-><a class="code" href="structmsgpack__zone.html#a9edf44d39379616b64bd1c2792dc71b9">finalizer_array</a>;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="structmsgpack__zone__finalizer.html">msgpack_zone_finalizer</a>* fin = fa-><a class="code" href="structmsgpack__zone__finalizer__array.html#a33dc196889c8382525bb74e999294be7">tail</a>;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">if</span>(fin == fa-><a class="code" href="structmsgpack__zone__finalizer__array.html#adefd403c9115edc0af3062c0e599ead1">end</a>) {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordflow">return</span> <a class="code" href="zone_8h.html#a7c006ea02e8a1214df79c3066bddf34f">msgpack_zone_push_finalizer_expand</a>(zone, <a class="code" href="structmsgpack__zone__finalizer.html#afac2245b8c33177d9ddfdb2c83613c4b">func</a>, data);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  }</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  fin-><a class="code" href="structmsgpack__zone__finalizer.html#afac2245b8c33177d9ddfdb2c83613c4b">func</a> = <a class="code" href="structmsgpack__zone__finalizer.html#afac2245b8c33177d9ddfdb2c83613c4b">func</a>;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  fin-><a class="code" href="structmsgpack__zone__finalizer.html#a53cae79ea21d8a034b6602e6b970b67f">data</a> = <a class="code" href="structmsgpack__zone__finalizer.html#a53cae79ea21d8a034b6602e6b970b67f">data</a>;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  ++fa-><a class="code" href="structmsgpack__zone__finalizer__array.html#a33dc196889c8382525bb74e999294be7">tail</a>;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> }</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> msgpack_zone_swap(<a class="code" href="structmsgpack__zone.html">msgpack_zone</a>* a, <a class="code" href="structmsgpack__zone.html">msgpack_zone</a>* b)</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span> {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="structmsgpack__zone.html">msgpack_zone</a> tmp = *a;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  *a = *b;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  *b = tmp;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span> }</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> }</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="preprocessor">#endif </span><span class="comment">/* msgpack/zone.h */</span><span class="preprocessor"></span></div><div class="ttc" id="group__msgpack__zone_html_ga76ef095d027a0d0f305efe0983124a1a"><div class="ttname"><a href="group__msgpack__zone.html#ga76ef095d027a0d0f305efe0983124a1a">msgpack_zone_init</a></div><div class="ttdeci">MSGPACK_DLLEXPORT bool msgpack_zone_init(msgpack_zone *zone, size_t chunk_size)</div></div>
|
|
<div class="ttc" id="structmsgpack__zone__chunk__list_html"><div class="ttname"><a href="structmsgpack__zone__chunk__list.html">msgpack_zone_chunk_list</a></div><div class="ttdef"><b>Definition:</b> zone.h:40</div></div>
|
|
<div class="ttc" id="group__msgpack__zone_html_ga95636e0be3b5ccc4ca6c65ef47ea164f"><div class="ttname"><a href="group__msgpack__zone.html#ga95636e0be3b5ccc4ca6c65ef47ea164f">msgpack_zone_is_empty</a></div><div class="ttdeci">MSGPACK_DLLEXPORT bool msgpack_zone_is_empty(msgpack_zone *zone)</div></div>
|
|
<div class="ttc" id="structmsgpack__zone_html_a992bf7c60a378730342632e4e429235f"><div class="ttname"><a href="structmsgpack__zone.html#a992bf7c60a378730342632e4e429235f">msgpack_zone::chunk_list</a></div><div class="ttdeci">msgpack_zone_chunk_list chunk_list</div><div class="ttdef"><b>Definition:</b> zone.h:47</div></div>
|
|
<div class="ttc" id="zone_8h_html_a0c2aa96a7eb480e0ebe41d3dd2c21934"><div class="ttname"><a href="zone_8h.html#a0c2aa96a7eb480e0ebe41d3dd2c21934">msgpack_zone_malloc_expand</a></div><div class="ttdeci">MSGPACK_DLLEXPORT void * msgpack_zone_malloc_expand(msgpack_zone *zone, size_t size)</div></div>
|
|
<div class="ttc" id="group__msgpack__zone_html_gad19985b7835ea138cbd564c776790fc2"><div class="ttname"><a href="group__msgpack__zone.html#gad19985b7835ea138cbd564c776790fc2">msgpack_zone_finalizer</a></div><div class="ttdeci">struct msgpack_zone_finalizer msgpack_zone_finalizer</div></div>
|
|
<div class="ttc" id="sysdep_8h_html_ad61f64307661edacf275ed1e1995c919"><div class="ttname"><a href="sysdep_8h.html#ad61f64307661edacf275ed1e1995c919">MSGPACK_DLLEXPORT</a></div><div class="ttdeci">#define MSGPACK_DLLEXPORT</div><div class="ttdef"><b>Definition:</b> sysdep.h:37</div></div>
|
|
<div class="ttc" id="structmsgpack__zone__finalizer__array_html_adefd403c9115edc0af3062c0e599ead1"><div class="ttname"><a href="structmsgpack__zone__finalizer__array.html#adefd403c9115edc0af3062c0e599ead1">msgpack_zone_finalizer_array::end</a></div><div class="ttdeci">msgpack_zone_finalizer * end</div><div class="ttdef"><b>Definition:</b> zone.h:33</div></div>
|
|
<div class="ttc" id="group__msgpack__zone_html_gac69bfc49a3e8e8cd4c29985c422e0eea"><div class="ttname"><a href="group__msgpack__zone.html#gac69bfc49a3e8e8cd4c29985c422e0eea">msgpack_zone_clear</a></div><div class="ttdeci">MSGPACK_DLLEXPORT void msgpack_zone_clear(msgpack_zone *zone)</div></div>
|
|
<div class="ttc" id="group__msgpack__zone_html_gad0bfc8b3b66f97ad4739a4f89d140233"><div class="ttname"><a href="group__msgpack__zone.html#gad0bfc8b3b66f97ad4739a4f89d140233">msgpack_zone_chunk_list</a></div><div class="ttdeci">struct msgpack_zone_chunk_list msgpack_zone_chunk_list</div></div>
|
|
<div class="ttc" id="group__msgpack__zone_html_gacbe83a0554eaf46433cac48681df56d5"><div class="ttname"><a href="group__msgpack__zone.html#gacbe83a0554eaf46433cac48681df56d5">msgpack_zone</a></div><div class="ttdeci">struct msgpack_zone msgpack_zone</div></div>
|
|
<div class="ttc" id="structmsgpack__zone__finalizer__array_html"><div class="ttname"><a href="structmsgpack__zone__finalizer__array.html">msgpack_zone_finalizer_array</a></div><div class="ttdef"><b>Definition:</b> zone.h:31</div></div>
|
|
<div class="ttc" id="structmsgpack__zone__finalizer_html_afac2245b8c33177d9ddfdb2c83613c4b"><div class="ttname"><a href="structmsgpack__zone__finalizer.html#afac2245b8c33177d9ddfdb2c83613c4b">msgpack_zone_finalizer::func</a></div><div class="ttdeci">void(* func)(void *data)</div><div class="ttdef"><b>Definition:</b> zone.h:27</div></div>
|
|
<div class="ttc" id="group__msgpack__zone_html_gacb4e7b701419687b813b3fb3ded762ad"><div class="ttname"><a href="group__msgpack__zone.html#gacb4e7b701419687b813b3fb3ded762ad">msgpack_zone_destroy</a></div><div class="ttdeci">MSGPACK_DLLEXPORT void msgpack_zone_destroy(msgpack_zone *zone)</div></div>
|
|
<div class="ttc" id="structmsgpack__zone_html_a2ecc632711b9c693f7b9b155df7182e0"><div class="ttname"><a href="structmsgpack__zone.html#a2ecc632711b9c693f7b9b155df7182e0">msgpack_zone::chunk_size</a></div><div class="ttdeci">size_t chunk_size</div><div class="ttdef"><b>Definition:</b> zone.h:49</div></div>
|
|
<div class="ttc" id="sysdep_8h_html"><div class="ttname"><a href="sysdep_8h.html">sysdep.h</a></div></div>
|
|
<div class="ttc" id="structmsgpack__zone__finalizer__array_html_a1164f2114cd4a622f9f62d78bc1f1e89"><div class="ttname"><a href="structmsgpack__zone__finalizer__array.html#a1164f2114cd4a622f9f62d78bc1f1e89">msgpack_zone_finalizer_array::array</a></div><div class="ttdeci">msgpack_zone_finalizer * array</div><div class="ttdef"><b>Definition:</b> zone.h:34</div></div>
|
|
<div class="ttc" id="zone_8h_html_ab7cf41ad9afffa289d2b9ac7634ffcab"><div class="ttname"><a href="zone_8h.html#ab7cf41ad9afffa289d2b9ac7634ffcab">MSGPACK_ZONE_ALIGN</a></div><div class="ttdeci">#define MSGPACK_ZONE_ALIGN</div><div class="ttdef"><b>Definition:</b> zone.h:84</div></div>
|
|
<div class="ttc" id="group__msgpack__zone_html_ga4ffe4a10754e933a0232b8d4f04669ae"><div class="ttname"><a href="group__msgpack__zone.html#ga4ffe4a10754e933a0232b8d4f04669ae">msgpack_zone_new</a></div><div class="ttdeci">MSGPACK_DLLEXPORT msgpack_zone * msgpack_zone_new(size_t chunk_size)</div></div>
|
|
<div class="ttc" id="structmsgpack__zone__chunk__list_html_a988fcf6caaf5759c51383c7768284667"><div class="ttname"><a href="structmsgpack__zone__chunk__list.html#a988fcf6caaf5759c51383c7768284667">msgpack_zone_chunk_list::ptr</a></div><div class="ttdeci">char * ptr</div><div class="ttdef"><b>Definition:</b> zone.h:42</div></div>
|
|
<div class="ttc" id="group__msgpack__zone_html_ga3f77f6136e2d74b9c2653ee6c5b33fce"><div class="ttname"><a href="group__msgpack__zone.html#ga3f77f6136e2d74b9c2653ee6c5b33fce">msgpack_zone_finalizer_array</a></div><div class="ttdeci">struct msgpack_zone_finalizer_array msgpack_zone_finalizer_array</div></div>
|
|
<div class="ttc" id="structmsgpack__zone__chunk__list_html_a2ae72ae61115b9ac3c03a1240424ad6d"><div class="ttname"><a href="structmsgpack__zone__chunk__list.html#a2ae72ae61115b9ac3c03a1240424ad6d">msgpack_zone_chunk_list::head</a></div><div class="ttdeci">msgpack_zone_chunk * head</div><div class="ttdef"><b>Definition:</b> zone.h:43</div></div>
|
|
<div class="ttc" id="structmsgpack__zone_html_a9edf44d39379616b64bd1c2792dc71b9"><div class="ttname"><a href="structmsgpack__zone.html#a9edf44d39379616b64bd1c2792dc71b9">msgpack_zone::finalizer_array</a></div><div class="ttdeci">msgpack_zone_finalizer_array finalizer_array</div><div class="ttdef"><b>Definition:</b> zone.h:48</div></div>
|
|
<div class="ttc" id="zone_8h_html_a7c006ea02e8a1214df79c3066bddf34f"><div class="ttname"><a href="zone_8h.html#a7c006ea02e8a1214df79c3066bddf34f">msgpack_zone_push_finalizer_expand</a></div><div class="ttdeci">bool msgpack_zone_push_finalizer_expand(msgpack_zone *zone, void(*func)(void *data), void *data)</div></div>
|
|
<div class="ttc" id="structmsgpack__zone__chunk__list_html_ad05f06021cdecb757f306cce4d09f942"><div class="ttname"><a href="structmsgpack__zone__chunk__list.html#ad05f06021cdecb757f306cce4d09f942">msgpack_zone_chunk_list::free</a></div><div class="ttdeci">size_t free</div><div class="ttdef"><b>Definition:</b> zone.h:41</div></div>
|
|
<div class="ttc" id="structmsgpack__zone__finalizer_html"><div class="ttname"><a href="structmsgpack__zone__finalizer.html">msgpack_zone_finalizer</a></div><div class="ttdef"><b>Definition:</b> zone.h:26</div></div>
|
|
<div class="ttc" id="structmsgpack__zone__finalizer_html_a53cae79ea21d8a034b6602e6b970b67f"><div class="ttname"><a href="structmsgpack__zone__finalizer.html#a53cae79ea21d8a034b6602e6b970b67f">msgpack_zone_finalizer::data</a></div><div class="ttdeci">void * data</div><div class="ttdef"><b>Definition:</b> zone.h:28</div></div>
|
|
<div class="ttc" id="group__msgpack__zone_html_ga0e765825328138ba6a349e8bc89e2bbd"><div class="ttname"><a href="group__msgpack__zone.html#ga0e765825328138ba6a349e8bc89e2bbd">msgpack_zone_free</a></div><div class="ttdeci">MSGPACK_DLLEXPORT void msgpack_zone_free(msgpack_zone *zone)</div></div>
|
|
<div class="ttc" id="structmsgpack__zone_html"><div class="ttname"><a href="structmsgpack__zone.html">msgpack_zone</a></div><div class="ttdef"><b>Definition:</b> zone.h:46</div></div>
|
|
<div class="ttc" id="structmsgpack__zone__finalizer__array_html_a33dc196889c8382525bb74e999294be7"><div class="ttname"><a href="structmsgpack__zone__finalizer__array.html#a33dc196889c8382525bb74e999294be7">msgpack_zone_finalizer_array::tail</a></div><div class="ttdeci">msgpack_zone_finalizer * tail</div><div class="ttdef"><b>Definition:</b> zone.h:32</div></div>
|
|
<div class="ttc" id="group__msgpack__zone_html_ga6e44b1e55f1bd028e65770d1bb63f0d3"><div class="ttname"><a href="group__msgpack__zone.html#ga6e44b1e55f1bd028e65770d1bb63f0d3">msgpack_zone_chunk</a></div><div class="ttdeci">struct msgpack_zone_chunk msgpack_zone_chunk</div><div class="ttdef"><b>Definition:</b> zone.h:38</div></div>
|
|
</div><!-- fragment --></div><!-- contents -->
|
|
<!-- start footer part -->
|
|
<hr class="footer"/><address class="footer"><small>
|
|
Generated by  <a href="http://www.doxygen.org/index.html">
|
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
|
</a> 1.8.11
|
|
</small></address>
|
|
</body>
|
|
</html>
|