930 lines
67 KiB
HTML
930 lines
67 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
|
<meta name="generator" content="Doxygen 1.9.5"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>MPack: Configuration Options</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
<link href="doxygen-mpack-css.css" rel="stylesheet" type="text/css"/>
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr id="projectrow">
|
|
<td id="projectalign">
|
|
<div id="projectname">MPack<span id="projectnumber"> 1.1.1</span>
|
|
</div>
|
|
<div id="projectbrief">A C encoding/decoding library for the MessagePack serialization format.</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.9.5 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search');
|
|
$(document).ready(function() { init_search(); });
|
|
});
|
|
/* @license-end */
|
|
</script>
|
|
<div id="main-nav"></div>
|
|
</div><!-- top -->
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<div id="MSearchResults">
|
|
<div class="SRPage">
|
|
<div id="SRIndex">
|
|
<div id="SRResults"></div>
|
|
<div class="SRStatus" id="Loading">Loading...</div>
|
|
<div class="SRStatus" id="Searching">Searching...</div>
|
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="header">
|
|
<div class="headertitle"><div class="title">Configuration Options</div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
|
|
<p >Defines the MPack configuration options. </p>
|
|
<p >Custom configuration of MPack is not usually necessary. In almost all cases you can ignore this and use the defaults.</p>
|
|
<p >If you do want to configure MPack, you can define the below options as part of your build system or project settings. This will override the below defaults.</p>
|
|
<p >If you'd like to use a file for configuration instead, define <a class="el" href="group__config.html#ga4e0e2bdb75e6b597b16caaf42439b2a2">MPACK_HAS_CONFIG</a> to 1 in your build system or project settings. This will cause MPack to include a file you create called <code>mpack-config.h</code> in which you can define your configuration. This is useful if you need to include specific headers (such as a custom allocator) in order to configure MPack to use it.</p>
|
|
<dl class="section warning"><dt>Warning</dt><dd>The value of all configuration options must be the same in all translation units of your project, as well as in the mpack source itself. These configuration options affect the layout of structs, among other things, which cannot be different in source files that are linked together.</dd></dl>
|
|
<dl class="section note"><dt>Note</dt><dd>MPack does not contain defaults for building inside the Linux kernel. There is a <a href="https://github.com/ludocode/mpack-linux-kernel">configuration file for the Linux kernel</a> that can be used instead. </dd></dl>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader">Debug Functions</h2></td></tr>
|
|
<tr class="memitem:ga8ae5d3e801bf531998c964212b8ace14"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#ga8ae5d3e801bf531998c964212b8ace14">mpack_assert_fail</a> (const char *message)</td></tr>
|
|
<tr class="memdesc:ga8ae5d3e801bf531998c964212b8ace14"><td class="mdescLeft"> </td><td class="mdescRight">Implement this and define <a class="el" href="group__config.html#ga9fd42292abe10e1581d75a4f8d457d61">MPACK_CUSTOM_ASSERT</a> to use a custom assertion function. <a href="group__config.html#ga8ae5d3e801bf531998c964212b8ace14">More...</a><br /></td></tr>
|
|
<tr class="separator:ga8ae5d3e801bf531998c964212b8ace14"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader">File Configuration</h2></td></tr>
|
|
<tr class="memitem:ga4e0e2bdb75e6b597b16caaf42439b2a2"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#ga4e0e2bdb75e6b597b16caaf42439b2a2">MPACK_HAS_CONFIG</a>   0</td></tr>
|
|
<tr class="memdesc:ga4e0e2bdb75e6b597b16caaf42439b2a2"><td class="mdescLeft"> </td><td class="mdescRight">Causes MPack to include a file you create called <code>mpack-config.h</code> . <a href="group__config.html#ga4e0e2bdb75e6b597b16caaf42439b2a2">More...</a><br /></td></tr>
|
|
<tr class="separator:ga4e0e2bdb75e6b597b16caaf42439b2a2"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader">Features</h2></td></tr>
|
|
<tr class="memitem:gafc71f44de1132a4efed4e2d450eb8197"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#gafc71f44de1132a4efed4e2d450eb8197">MPACK_READER</a>   1</td></tr>
|
|
<tr class="memdesc:gafc71f44de1132a4efed4e2d450eb8197"><td class="mdescLeft"> </td><td class="mdescRight">Enables compilation of the base Tag Reader. <a href="group__config.html#gafc71f44de1132a4efed4e2d450eb8197">More...</a><br /></td></tr>
|
|
<tr class="separator:gafc71f44de1132a4efed4e2d450eb8197"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga6e845bcb4582176785c92cbdb091c4a5"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#ga6e845bcb4582176785c92cbdb091c4a5">MPACK_EXPECT</a>   1</td></tr>
|
|
<tr class="memdesc:ga6e845bcb4582176785c92cbdb091c4a5"><td class="mdescLeft"> </td><td class="mdescRight">Enables compilation of the static Expect API. <a href="group__config.html#ga6e845bcb4582176785c92cbdb091c4a5">More...</a><br /></td></tr>
|
|
<tr class="separator:ga6e845bcb4582176785c92cbdb091c4a5"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gaac5bc095026e6f851370c966845bb91f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#gaac5bc095026e6f851370c966845bb91f">MPACK_NODE</a>   1</td></tr>
|
|
<tr class="memdesc:gaac5bc095026e6f851370c966845bb91f"><td class="mdescLeft"> </td><td class="mdescRight">Enables compilation of the dynamic Node API. <a href="group__config.html#gaac5bc095026e6f851370c966845bb91f">More...</a><br /></td></tr>
|
|
<tr class="separator:gaac5bc095026e6f851370c966845bb91f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga76dacaad0bc2e5bb9421338f1eeecd0f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#ga76dacaad0bc2e5bb9421338f1eeecd0f">MPACK_WRITER</a>   1</td></tr>
|
|
<tr class="memdesc:ga76dacaad0bc2e5bb9421338f1eeecd0f"><td class="mdescLeft"> </td><td class="mdescRight">Enables compilation of the Writer. <a href="group__config.html#ga76dacaad0bc2e5bb9421338f1eeecd0f">More...</a><br /></td></tr>
|
|
<tr class="separator:ga76dacaad0bc2e5bb9421338f1eeecd0f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga6ee26bb85cb63e731ac208fb594785d7"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#ga6ee26bb85cb63e731ac208fb594785d7">MPACK_BUILDER</a>   1</td></tr>
|
|
<tr class="memdesc:ga6ee26bb85cb63e731ac208fb594785d7"><td class="mdescLeft"> </td><td class="mdescRight">Enables compilation of the Builder. <a href="group__config.html#ga6ee26bb85cb63e731ac208fb594785d7">More...</a><br /></td></tr>
|
|
<tr class="separator:ga6ee26bb85cb63e731ac208fb594785d7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga3b7bc28af1393f6ab472f4595e29387b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#ga3b7bc28af1393f6ab472f4595e29387b">MPACK_COMPATIBILITY</a>   0</td></tr>
|
|
<tr class="memdesc:ga3b7bc28af1393f6ab472f4595e29387b"><td class="mdescLeft"> </td><td class="mdescRight">Enables compatibility features for reading and writing older versions of MessagePack. <a href="group__config.html#ga3b7bc28af1393f6ab472f4595e29387b">More...</a><br /></td></tr>
|
|
<tr class="separator:ga3b7bc28af1393f6ab472f4595e29387b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gab1d8587f6e314e491c7fdb262f0b2bd1"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#gab1d8587f6e314e491c7fdb262f0b2bd1">MPACK_EXTENSIONS</a>   0</td></tr>
|
|
<tr class="memdesc:gab1d8587f6e314e491c7fdb262f0b2bd1"><td class="mdescLeft"> </td><td class="mdescRight">Enables the use of extension types. <a href="group__config.html#gab1d8587f6e314e491c7fdb262f0b2bd1">More...</a><br /></td></tr>
|
|
<tr class="separator:gab1d8587f6e314e491c7fdb262f0b2bd1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader">Dependencies</h2></td></tr>
|
|
<tr class="memitem:gafb493fcfcd06b1ebc4d810ba892e8837"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#gafb493fcfcd06b1ebc4d810ba892e8837">MPACK_CONFORMING</a>   1</td></tr>
|
|
<tr class="memdesc:gafb493fcfcd06b1ebc4d810ba892e8837"><td class="mdescLeft"> </td><td class="mdescRight">Enables the inclusion of basic C headers to define standard types and macros. <a href="group__config.html#gafb493fcfcd06b1ebc4d810ba892e8837">More...</a><br /></td></tr>
|
|
<tr class="separator:gafb493fcfcd06b1ebc4d810ba892e8837"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga94840bf23dac204b9fe48c769777400e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#ga94840bf23dac204b9fe48c769777400e">MPACK_STDLIB</a>   1</td></tr>
|
|
<tr class="memdesc:ga94840bf23dac204b9fe48c769777400e"><td class="mdescLeft"> </td><td class="mdescRight">Enables the use of the C stdlib. <a href="group__config.html#ga94840bf23dac204b9fe48c769777400e">More...</a><br /></td></tr>
|
|
<tr class="separator:ga94840bf23dac204b9fe48c769777400e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gab26adf73d74737f21ee1ec6bf8f213c6"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#gab26adf73d74737f21ee1ec6bf8f213c6">MPACK_STDIO</a>   1</td></tr>
|
|
<tr class="memdesc:gab26adf73d74737f21ee1ec6bf8f213c6"><td class="mdescLeft"> </td><td class="mdescRight">Enables the use of C stdio. <a href="group__config.html#gab26adf73d74737f21ee1ec6bf8f213c6">More...</a><br /></td></tr>
|
|
<tr class="separator:gab26adf73d74737f21ee1ec6bf8f213c6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga5a2342c4ebeb00d26be81d7a3adbf118"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#ga5a2342c4ebeb00d26be81d7a3adbf118">MPACK_FLOAT</a>   1</td></tr>
|
|
<tr class="memdesc:ga5a2342c4ebeb00d26be81d7a3adbf118"><td class="mdescLeft"> </td><td class="mdescRight">Whether the 'float' type and floating point operations are supported. <a href="group__config.html#ga5a2342c4ebeb00d26be81d7a3adbf118">More...</a><br /></td></tr>
|
|
<tr class="separator:ga5a2342c4ebeb00d26be81d7a3adbf118"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gab248e806f8838dfe885049a8f720d61d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#gab248e806f8838dfe885049a8f720d61d">MPACK_DOUBLE</a>   1</td></tr>
|
|
<tr class="memdesc:gab248e806f8838dfe885049a8f720d61d"><td class="mdescLeft"> </td><td class="mdescRight">Whether the 'double' type is supported. <a href="group__config.html#gab248e806f8838dfe885049a8f720d61d">More...</a><br /></td></tr>
|
|
<tr class="separator:gab248e806f8838dfe885049a8f720d61d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader">Allocation Functions</h2></td></tr>
|
|
<tr class="memitem:gaae24f07943fceb85820a88fa72373482"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#gaae24f07943fceb85820a88fa72373482">MPACK_MALLOC</a>   malloc</td></tr>
|
|
<tr class="memdesc:gaae24f07943fceb85820a88fa72373482"><td class="mdescLeft"> </td><td class="mdescRight">Defines the memory allocation function used by MPack. <a href="group__config.html#gaae24f07943fceb85820a88fa72373482">More...</a><br /></td></tr>
|
|
<tr class="separator:gaae24f07943fceb85820a88fa72373482"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga298d7c2e4093bcfe361088df9e35956a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#ga298d7c2e4093bcfe361088df9e35956a">MPACK_FREE</a>   free</td></tr>
|
|
<tr class="memdesc:ga298d7c2e4093bcfe361088df9e35956a"><td class="mdescLeft"> </td><td class="mdescRight">Defines the memory free function used by MPack. <a href="group__config.html#ga298d7c2e4093bcfe361088df9e35956a">More...</a><br /></td></tr>
|
|
<tr class="separator:ga298d7c2e4093bcfe361088df9e35956a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga811ae202f55b9c6a15f6c3ea138964fa"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#ga811ae202f55b9c6a15f6c3ea138964fa">MPACK_REALLOC</a>   realloc</td></tr>
|
|
<tr class="memdesc:ga811ae202f55b9c6a15f6c3ea138964fa"><td class="mdescLeft"> </td><td class="mdescRight">Defines the realloc function used by MPack. <a href="group__config.html#ga811ae202f55b9c6a15f6c3ea138964fa">More...</a><br /></td></tr>
|
|
<tr class="separator:ga811ae202f55b9c6a15f6c3ea138964fa"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader">System Functions</h2></td></tr>
|
|
<tr class="memitem:ga40ff1131fcb8e881bdda6bc5ce4b4296"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#ga40ff1131fcb8e881bdda6bc5ce4b4296">MPACK_MEMCMP</a>   memcmp</td></tr>
|
|
<tr class="memdesc:ga40ff1131fcb8e881bdda6bc5ce4b4296"><td class="mdescLeft"> </td><td class="mdescRight">The function MPack will use to provide <code>memcmp()</code>. <a href="group__config.html#ga40ff1131fcb8e881bdda6bc5ce4b4296">More...</a><br /></td></tr>
|
|
<tr class="separator:ga40ff1131fcb8e881bdda6bc5ce4b4296"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga7ea0143fc257fddd069375e0a3713493"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#ga7ea0143fc257fddd069375e0a3713493">MPACK_MEMCPY</a>   memcpy</td></tr>
|
|
<tr class="memdesc:ga7ea0143fc257fddd069375e0a3713493"><td class="mdescLeft"> </td><td class="mdescRight">The function MPack will use to provide <code>memcpy()</code>. <a href="group__config.html#ga7ea0143fc257fddd069375e0a3713493">More...</a><br /></td></tr>
|
|
<tr class="separator:ga7ea0143fc257fddd069375e0a3713493"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gaa15a8b944a088318d9ec759ad305a1e2"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#gaa15a8b944a088318d9ec759ad305a1e2">MPACK_MEMMOVE</a>   memmove</td></tr>
|
|
<tr class="memdesc:gaa15a8b944a088318d9ec759ad305a1e2"><td class="mdescLeft"> </td><td class="mdescRight">The function MPack will use to provide <code>memmove()</code>. <a href="group__config.html#gaa15a8b944a088318d9ec759ad305a1e2">More...</a><br /></td></tr>
|
|
<tr class="separator:gaa15a8b944a088318d9ec759ad305a1e2"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gac2be86702d7a873366aab26bf54b9a5f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#gac2be86702d7a873366aab26bf54b9a5f">MPACK_MEMSET</a>   memset</td></tr>
|
|
<tr class="memdesc:gac2be86702d7a873366aab26bf54b9a5f"><td class="mdescLeft"> </td><td class="mdescRight">The function MPack will use to provide <code>memset()</code>. <a href="group__config.html#gac2be86702d7a873366aab26bf54b9a5f">More...</a><br /></td></tr>
|
|
<tr class="separator:gac2be86702d7a873366aab26bf54b9a5f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga4a5aadfcd0db8b5be937936735f96bcd"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#ga4a5aadfcd0db8b5be937936735f96bcd">MPACK_STRLEN</a>   strlen</td></tr>
|
|
<tr class="memdesc:ga4a5aadfcd0db8b5be937936735f96bcd"><td class="mdescLeft"> </td><td class="mdescRight">The function MPack will use to provide <code>strlen()</code>. <a href="group__config.html#ga4a5aadfcd0db8b5be937936735f96bcd">More...</a><br /></td></tr>
|
|
<tr class="separator:ga4a5aadfcd0db8b5be937936735f96bcd"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader">Debugging Options</h2></td></tr>
|
|
<tr class="memitem:gaad55f98fb20f7c0de53eada292bab51b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#gaad55f98fb20f7c0de53eada292bab51b">MPACK_DEBUG</a>   1</td></tr>
|
|
<tr class="memdesc:gaad55f98fb20f7c0de53eada292bab51b"><td class="mdescLeft"> </td><td class="mdescRight">Enables debug features. <a href="group__config.html#gaad55f98fb20f7c0de53eada292bab51b">More...</a><br /></td></tr>
|
|
<tr class="separator:gaad55f98fb20f7c0de53eada292bab51b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gae7e35c73ea60e1638bb3c906102eee28"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#gae7e35c73ea60e1638bb3c906102eee28">MPACK_STRINGS</a>   1</td></tr>
|
|
<tr class="memdesc:gae7e35c73ea60e1638bb3c906102eee28"><td class="mdescLeft"> </td><td class="mdescRight">Enables descriptive error and type strings. <a href="group__config.html#gae7e35c73ea60e1638bb3c906102eee28">More...</a><br /></td></tr>
|
|
<tr class="separator:gae7e35c73ea60e1638bb3c906102eee28"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga9fd42292abe10e1581d75a4f8d457d61"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#ga9fd42292abe10e1581d75a4f8d457d61">MPACK_CUSTOM_ASSERT</a>   0</td></tr>
|
|
<tr class="memdesc:ga9fd42292abe10e1581d75a4f8d457d61"><td class="mdescLeft"> </td><td class="mdescRight">Set this to 1 to implement a custom <a class="el" href="group__config.html#ga8ae5d3e801bf531998c964212b8ace14">mpack_assert_fail()</a> function. <a href="group__config.html#ga9fd42292abe10e1581d75a4f8d457d61">More...</a><br /></td></tr>
|
|
<tr class="separator:ga9fd42292abe10e1581d75a4f8d457d61"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga8c3a10274e55f106c8734fb65c575321"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#ga8c3a10274e55f106c8734fb65c575321">MPACK_READ_TRACKING</a>   1</td></tr>
|
|
<tr class="memdesc:ga8c3a10274e55f106c8734fb65c575321"><td class="mdescLeft"> </td><td class="mdescRight">Enables compound type size tracking for readers. <a href="group__config.html#ga8c3a10274e55f106c8734fb65c575321">More...</a><br /></td></tr>
|
|
<tr class="separator:ga8c3a10274e55f106c8734fb65c575321"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga82020e4a54933931ed83698cc65491c1"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#ga82020e4a54933931ed83698cc65491c1">MPACK_WRITE_TRACKING</a>   1</td></tr>
|
|
<tr class="memdesc:ga82020e4a54933931ed83698cc65491c1"><td class="mdescLeft"> </td><td class="mdescRight">Enables compound type size tracking for writers. <a href="group__config.html#ga82020e4a54933931ed83698cc65491c1">More...</a><br /></td></tr>
|
|
<tr class="separator:ga82020e4a54933931ed83698cc65491c1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader">Miscellaneous Options</h2></td></tr>
|
|
<tr class="memitem:ga44e59b9d1a21ea2f489c0dcc5b52d166"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#ga44e59b9d1a21ea2f489c0dcc5b52d166">MPACK_OPTIMIZE_FOR_SIZE</a>   0</td></tr>
|
|
<tr class="memdesc:ga44e59b9d1a21ea2f489c0dcc5b52d166"><td class="mdescLeft"> </td><td class="mdescRight">Whether to optimize for size or speed. <a href="group__config.html#ga44e59b9d1a21ea2f489c0dcc5b52d166">More...</a><br /></td></tr>
|
|
<tr class="separator:ga44e59b9d1a21ea2f489c0dcc5b52d166"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga30464f0269454ad72c7fb1b0b477225b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#ga30464f0269454ad72c7fb1b0b477225b">MPACK_STACK_SIZE</a>   4096</td></tr>
|
|
<tr class="memdesc:ga30464f0269454ad72c7fb1b0b477225b"><td class="mdescLeft"> </td><td class="mdescRight">Stack space in bytes to use when initializing a reader or writer with a stack-allocated buffer. <a href="group__config.html#ga30464f0269454ad72c7fb1b0b477225b">More...</a><br /></td></tr>
|
|
<tr class="separator:ga30464f0269454ad72c7fb1b0b477225b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga95eeff0ce89e4bbb0bb75888df2da6b4"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#ga95eeff0ce89e4bbb0bb75888df2da6b4">MPACK_BUFFER_SIZE</a>   4096</td></tr>
|
|
<tr class="memdesc:ga95eeff0ce89e4bbb0bb75888df2da6b4"><td class="mdescLeft"> </td><td class="mdescRight">Buffer size to use for allocated buffers (such as for a file writer.) <a href="group__config.html#ga95eeff0ce89e4bbb0bb75888df2da6b4">More...</a><br /></td></tr>
|
|
<tr class="separator:ga95eeff0ce89e4bbb0bb75888df2da6b4"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gaa9fc1b48ee12bf6a8c7df0a1cc5b0089"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#gaa9fc1b48ee12bf6a8c7df0a1cc5b0089">MPACK_PAGE_SIZE</a>   4096</td></tr>
|
|
<tr class="memdesc:gaa9fc1b48ee12bf6a8c7df0a1cc5b0089"><td class="mdescLeft"> </td><td class="mdescRight">Minimum size for paged allocations in bytes. <a href="group__config.html#gaa9fc1b48ee12bf6a8c7df0a1cc5b0089">More...</a><br /></td></tr>
|
|
<tr class="separator:gaa9fc1b48ee12bf6a8c7df0a1cc5b0089"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga41e1f9cc9a9b4934473bb1997fa1d27c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#ga41e1f9cc9a9b4934473bb1997fa1d27c">MPACK_NODE_PAGE_SIZE</a>   <a class="el" href="group__config.html#gaa9fc1b48ee12bf6a8c7df0a1cc5b0089">MPACK_PAGE_SIZE</a></td></tr>
|
|
<tr class="memdesc:ga41e1f9cc9a9b4934473bb1997fa1d27c"><td class="mdescLeft"> </td><td class="mdescRight">Minimum size of an allocated node page in bytes. <a href="group__config.html#ga41e1f9cc9a9b4934473bb1997fa1d27c">More...</a><br /></td></tr>
|
|
<tr class="separator:ga41e1f9cc9a9b4934473bb1997fa1d27c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga5a8426c419fef7b6eb774b3535eab222"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#ga5a8426c419fef7b6eb774b3535eab222">MPACK_BUILDER_PAGE_SIZE</a>   <a class="el" href="group__config.html#gaa9fc1b48ee12bf6a8c7df0a1cc5b0089">MPACK_PAGE_SIZE</a></td></tr>
|
|
<tr class="memdesc:ga5a8426c419fef7b6eb774b3535eab222"><td class="mdescLeft"> </td><td class="mdescRight">Minimum size of an allocated builder page in bytes. <a href="group__config.html#ga5a8426c419fef7b6eb774b3535eab222">More...</a><br /></td></tr>
|
|
<tr class="separator:ga5a8426c419fef7b6eb774b3535eab222"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga99d37ac986b67ea9297a3cfc4c9b238d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#ga99d37ac986b67ea9297a3cfc4c9b238d">MPACK_BUILDER_INTERNAL_STORAGE</a>   0</td></tr>
|
|
<tr class="memdesc:ga99d37ac986b67ea9297a3cfc4c9b238d"><td class="mdescLeft"> </td><td class="mdescRight">Enables a small amount of internal storage within the writer to avoid some allocations when using builders. <a href="group__config.html#ga99d37ac986b67ea9297a3cfc4c9b238d">More...</a><br /></td></tr>
|
|
<tr class="separator:ga99d37ac986b67ea9297a3cfc4c9b238d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gaf50c6a8e9fdc1e95e8c09f5ca7bc5e76"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#gaf50c6a8e9fdc1e95e8c09f5ca7bc5e76">MPACK_BUILDER_INTERNAL_STORAGE_SIZE</a>   256</td></tr>
|
|
<tr class="memdesc:gaf50c6a8e9fdc1e95e8c09f5ca7bc5e76"><td class="mdescLeft"> </td><td class="mdescRight">Amount of space reserved inside <a class="el" href="group__writer.html#gabdb207d4ba6a6ae47efa5ede13436f31">mpack_writer_t</a> for the Builders. <a href="group__config.html#gaf50c6a8e9fdc1e95e8c09f5ca7bc5e76">More...</a><br /></td></tr>
|
|
<tr class="separator:gaf50c6a8e9fdc1e95e8c09f5ca7bc5e76"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gabb291403e270476673d09faaba8304a7"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#gabb291403e270476673d09faaba8304a7">MPACK_NODE_INITIAL_DEPTH</a>   8</td></tr>
|
|
<tr class="memdesc:gabb291403e270476673d09faaba8304a7"><td class="mdescLeft"> </td><td class="mdescRight">The initial depth for the node parser. <a href="group__config.html#gabb291403e270476673d09faaba8304a7">More...</a><br /></td></tr>
|
|
<tr class="separator:gabb291403e270476673d09faaba8304a7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gab1318ead9efc98fed887169d8dc37fe4"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#gab1318ead9efc98fed887169d8dc37fe4">MPACK_NODE_MAX_DEPTH_WITHOUT_MALLOC</a>   32</td></tr>
|
|
<tr class="memdesc:gab1318ead9efc98fed887169d8dc37fe4"><td class="mdescLeft"> </td><td class="mdescRight">The maximum depth for the node parser if <a class="el" href="group__config.html#gaae24f07943fceb85820a88fa72373482">MPACK_MALLOC</a> is not available. <a href="group__config.html#gab1318ead9efc98fed887169d8dc37fe4">More...</a><br /></td></tr>
|
|
<tr class="separator:gab1318ead9efc98fed887169d8dc37fe4"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga407482826697ca9edf24727c39ab525d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#ga407482826697ca9edf24727c39ab525d">MPACK_NO_BUILTINS</a>   0</td></tr>
|
|
<tr class="memdesc:ga407482826697ca9edf24727c39ab525d"><td class="mdescLeft"> </td><td class="mdescRight">Whether to disable compiler intrinsics and other built-in functions. <a href="group__config.html#ga407482826697ca9edf24727c39ab525d">More...</a><br /></td></tr>
|
|
<tr class="separator:ga407482826697ca9edf24727c39ab525d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<h2 class="groupheader">Macro Definition Documentation</h2>
|
|
<a id="ga95eeff0ce89e4bbb0bb75888df2da6b4" name="ga95eeff0ce89e4bbb0bb75888df2da6b4"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga95eeff0ce89e4bbb0bb75888df2da6b4">◆ </a></span>MPACK_BUFFER_SIZE</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_BUFFER_SIZE   4096</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Buffer size to use for allocated buffers (such as for a file writer.) </p>
|
|
<p >Starting with a single page and growing as needed seems to provide the best performance with minimal memory waste. Increasing this does not improve performance even when writing huge messages. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga6ee26bb85cb63e731ac208fb594785d7" name="ga6ee26bb85cb63e731ac208fb594785d7"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga6ee26bb85cb63e731ac208fb594785d7">◆ </a></span>MPACK_BUILDER</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_BUILDER   1</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Enables compilation of the Builder. </p>
|
|
<p >The Builder API provides additional functions to the Writer for automatically determining the element count of compound elements so you do not have to specify them up-front.</p>
|
|
<p >This requires a <code>malloc()</code>. It is enabled by default if MPACK_WRITER is enabled and MPACK_MALLOC is defined.</p>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__writer.html#ga5849bab4afebddae63bb03f5dce5f7d8" title="Starts building a map.">mpack_build_map()</a> </dd>
|
|
<dd>
|
|
<a class="el" href="group__writer.html#ga5e10cc90afff17e2c4352c4399be9433" title="Starts building an array.">mpack_build_array()</a> </dd>
|
|
<dd>
|
|
<a class="el" href="group__writer.html#ga10d9f55e0a512d88ede66bbbc543f711" title="Completes a map being built.">mpack_complete_map()</a> </dd>
|
|
<dd>
|
|
<a class="el" href="group__writer.html#ga65e149d035d8de105774ebad2363cac5" title="Completes an array being built.">mpack_complete_array()</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga99d37ac986b67ea9297a3cfc4c9b238d" name="ga99d37ac986b67ea9297a3cfc4c9b238d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga99d37ac986b67ea9297a3cfc4c9b238d">◆ </a></span>MPACK_BUILDER_INTERNAL_STORAGE</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_BUILDER_INTERNAL_STORAGE   0</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Enables a small amount of internal storage within the writer to avoid some allocations when using builders. </p>
|
|
<p >This is disabled by default. Enable it to potentially improve performance at the expense of a larger writer.</p>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__config.html#gaf50c6a8e9fdc1e95e8c09f5ca7bc5e76" title="Amount of space reserved inside mpack_writer_t for the Builders.">MPACK_BUILDER_INTERNAL_STORAGE_SIZE</a> to configure its size. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gaf50c6a8e9fdc1e95e8c09f5ca7bc5e76" name="gaf50c6a8e9fdc1e95e8c09f5ca7bc5e76"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gaf50c6a8e9fdc1e95e8c09f5ca7bc5e76">◆ </a></span>MPACK_BUILDER_INTERNAL_STORAGE_SIZE</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_BUILDER_INTERNAL_STORAGE_SIZE   256</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Amount of space reserved inside <a class="el" href="group__writer.html#gabdb207d4ba6a6ae47efa5ede13436f31">mpack_writer_t</a> for the Builders. </p>
|
|
<p >This can allow small messages to be built with the Builder API without incurring an allocation.</p>
|
|
<p >Builder metadata is placed in this space in addition to the literal MessagePack data. It needs to be big enough to be useful, but not so big as to overflow the stack. If more space is needed, pages are allocated.</p>
|
|
<p >This is only used if MPACK_BUILDER_INTERNAL_STORAGE is enabled.</p>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__config.html#ga5a8426c419fef7b6eb774b3535eab222" title="Minimum size of an allocated builder page in bytes.">MPACK_BUILDER_PAGE_SIZE</a> </dd>
|
|
<dd>
|
|
<a class="el" href="group__config.html#ga99d37ac986b67ea9297a3cfc4c9b238d" title="Enables a small amount of internal storage within the writer to avoid some allocations when using bui...">MPACK_BUILDER_INTERNAL_STORAGE</a></dd></dl>
|
|
<dl class="section warning"><dt>Warning</dt><dd>Writers are typically placed on the stack so make sure you have sufficient stack space. Some libc use relatively small stacks even on desktop platforms, e.g. musl. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga5a8426c419fef7b6eb774b3535eab222" name="ga5a8426c419fef7b6eb774b3535eab222"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga5a8426c419fef7b6eb774b3535eab222">◆ </a></span>MPACK_BUILDER_PAGE_SIZE</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_BUILDER_PAGE_SIZE   <a class="el" href="group__config.html#gaa9fc1b48ee12bf6a8c7df0a1cc5b0089">MPACK_PAGE_SIZE</a></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Minimum size of an allocated builder page in bytes. </p>
|
|
<p >Builder writes are deferred to the allocated builder buffer which is composed of a list of buffer pages. This defines the size of those pages. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga3b7bc28af1393f6ab472f4595e29387b" name="ga3b7bc28af1393f6ab472f4595e29387b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga3b7bc28af1393f6ab472f4595e29387b">◆ </a></span>MPACK_COMPATIBILITY</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_COMPATIBILITY   0</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Enables compatibility features for reading and writing older versions of MessagePack. </p>
|
|
<p >This is disabled by default. When disabled, the behaviour is equivalent to using the default version, <a class="el" href="group__common.html#ggaba84f7d6b203a1f51f2a3e10c80318e2a8c85d0a71537cbf52f57125bf6e55fcb">mpack_version_current</a>.</p>
|
|
<p >Enable this if you need to interoperate with applications or data that do not support the new (v5) MessagePack spec. See the section on v4 compatibility in <a class="el" href="md_docs_protocol.html">Protocol Clarifications</a> for more information. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gafb493fcfcd06b1ebc4d810ba892e8837" name="gafb493fcfcd06b1ebc4d810ba892e8837"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gafb493fcfcd06b1ebc4d810ba892e8837">◆ </a></span>MPACK_CONFORMING</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_CONFORMING   1</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Enables the inclusion of basic C headers to define standard types and macros. </p>
|
|
<p >This causes MPack to include headers required for conforming implementations of C99 even in freestanding, in particular <stddef.h>, <stdint.h>, <stdbool.h> and <limits.h>. It also includes <inttypes.h>; this is technically not required for freestanding but MPack needs it to detect integer limits.</p>
|
|
<p >You can disable this if these headers are unavailable or if they do not define the standard types and macros (for example inside the Linux kernel.) If this is disabled, MPack will include no headers and will assume a 32-bit int. You will probably also want to define <a class="el" href="group__config.html#ga4e0e2bdb75e6b597b16caaf42439b2a2">MPACK_HAS_CONFIG</a> to 1 and include your own headers in the config file. You must provide definitions for standard types such as <code>size_t</code>, <code>bool</code>, <code>int32_t</code> and so on.</p>
|
|
<dl class="section see"><dt>See also</dt><dd><a href="https://en.cppreference.com/w/c/language/conformance">cppreference.com documentation on Conformance</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga9fd42292abe10e1581d75a4f8d457d61" name="ga9fd42292abe10e1581d75a4f8d457d61"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga9fd42292abe10e1581d75a4f8d457d61">◆ </a></span>MPACK_CUSTOM_ASSERT</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_CUSTOM_ASSERT   0</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Set this to 1 to implement a custom <a class="el" href="group__config.html#ga8ae5d3e801bf531998c964212b8ace14">mpack_assert_fail()</a> function. </p>
|
|
<p >See the documentation on <a class="el" href="group__config.html#ga8ae5d3e801bf531998c964212b8ace14">mpack_assert_fail()</a> for details.</p>
|
|
<p >Asserts are only used when <a class="el" href="group__config.html#gaad55f98fb20f7c0de53eada292bab51b">MPACK_DEBUG</a> is enabled, and can be triggered by bugs in MPack or bugs due to incorrect usage of MPack. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gaad55f98fb20f7c0de53eada292bab51b" name="gaad55f98fb20f7c0de53eada292bab51b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gaad55f98fb20f7c0de53eada292bab51b">◆ </a></span>MPACK_DEBUG</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_DEBUG   1</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Enables debug features. </p>
|
|
<p >You may want to wrap this around your own debug preprocs. By default, this is enabled if <code>DEBUG</code> or <code>_DEBUG</code> are defined. (<code>NDEBUG</code> is not used since it is allowed to have different values in different translation units.) </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gab248e806f8838dfe885049a8f720d61d" name="gab248e806f8838dfe885049a8f720d61d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gab248e806f8838dfe885049a8f720d61d">◆ </a></span>MPACK_DOUBLE</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_DOUBLE   1</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Whether the 'double' type is supported. </p>
|
|
<p >This requires support for 'float'.</p>
|
|
<p >If <a class="el" href="group__config.html#gab248e806f8838dfe885049a8f720d61d">MPACK_DOUBLE</a> is disabled, doubles are read and written as <code>uint32_t</code> instead. This way messages with doubles do not result in errors and you can still perform manual doubles parsing yourself.</p>
|
|
<p >If <a class="el" href="group__config.html#ga5a2342c4ebeb00d26be81d7a3adbf118">MPACK_FLOAT</a> is enabled but <a class="el" href="group__config.html#gab248e806f8838dfe885049a8f720d61d">MPACK_DOUBLE</a> is not, doubles can be read as floats using the shortening conversion functions, e.g. <a class="el" href="group__expect.html#ga49c6bea0c4d7e14a636d703ffe304264">mpack_expect_float()</a> or <a class="el" href="group__node.html#ga66fed30759650f65e7edaef79b2c73f4">mpack_node_float()</a>. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga6e845bcb4582176785c92cbdb091c4a5" name="ga6e845bcb4582176785c92cbdb091c4a5"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga6e845bcb4582176785c92cbdb091c4a5">◆ </a></span>MPACK_EXPECT</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_EXPECT   1</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Enables compilation of the static Expect API. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gab1d8587f6e314e491c7fdb262f0b2bd1" name="gab1d8587f6e314e491c7fdb262f0b2bd1"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gab1d8587f6e314e491c7fdb262f0b2bd1">◆ </a></span>MPACK_EXTENSIONS</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_EXTENSIONS   0</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Enables the use of extension types. </p>
|
|
<p >This is disabled by default. Define it to 1 to enable it. If disabled, functions to read and write extensions will not exist, and any occurrence of extension types in parsed messages will flag <a class="el" href="group__common.html#gga9d9f282ca4183ab5190e09d04c1f74c4a6d6111704fd59c034f9958c353c6da93">mpack_error_invalid</a>.</p>
|
|
<p >MPack discourages the use of extension types. See the section on extension types in <a class="el" href="md_docs_protocol.html">Protocol Clarifications</a> for more information. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga5a2342c4ebeb00d26be81d7a3adbf118" name="ga5a2342c4ebeb00d26be81d7a3adbf118"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga5a2342c4ebeb00d26be81d7a3adbf118">◆ </a></span>MPACK_FLOAT</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_FLOAT   1</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Whether the 'float' type and floating point operations are supported. </p>
|
|
<p >If <a class="el" href="group__config.html#ga5a2342c4ebeb00d26be81d7a3adbf118">MPACK_FLOAT</a> is disabled, floats are read and written as <code>uint32_t</code> instead. This way messages with floats do not result in errors and you can still perform manual float parsing yourself. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga298d7c2e4093bcfe361088df9e35956a" name="ga298d7c2e4093bcfe361088df9e35956a"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga298d7c2e4093bcfe361088df9e35956a">◆ </a></span>MPACK_FREE</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_FREE   free</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Defines the memory free function used by MPack. </p>
|
|
<p >This is used by helpers for automatically allocating data the correct size. If this macro is undefined, the allocation helpers will not be compiled.</p>
|
|
<p >Set this to use a custom <code>free()</code> function. Your function must have the signature:</p>
|
|
<div class="fragment"><div class="line"><span class="keywordtype">void</span> free(<span class="keywordtype">void</span>* p);</div>
|
|
</div><!-- fragment --><p >The default is <code>free()</code> if <a class="el" href="group__config.html#gaae24f07943fceb85820a88fa72373482">MPACK_MALLOC</a> has not been customized and <a class="el" href="group__config.html#ga94840bf23dac204b9fe48c769777400e">MPACK_STDLIB</a> is enabled. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga4e0e2bdb75e6b597b16caaf42439b2a2" name="ga4e0e2bdb75e6b597b16caaf42439b2a2"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga4e0e2bdb75e6b597b16caaf42439b2a2">◆ </a></span>MPACK_HAS_CONFIG</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_HAS_CONFIG   0</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Causes MPack to include a file you create called <code>mpack-config.h</code> . </p>
|
|
<p >The file is included before MPack sets any defaults for undefined configuration options. You can use it to configure MPack.</p>
|
|
<p >This is off by default. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gaae24f07943fceb85820a88fa72373482" name="gaae24f07943fceb85820a88fa72373482"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gaae24f07943fceb85820a88fa72373482">◆ </a></span>MPACK_MALLOC</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_MALLOC   malloc</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Defines the memory allocation function used by MPack. </p>
|
|
<p >This is used by helpers for automatically allocating data the correct size, and for debugging functions. If this macro is undefined, the allocation helpers will not be compiled.</p>
|
|
<p >Set this to use a custom <code>malloc()</code> function. Your function must have the signature:</p>
|
|
<div class="fragment"><div class="line"><span class="keywordtype">void</span>* malloc(<span class="keywordtype">size_t</span> size);</div>
|
|
</div><!-- fragment --><p >The default is <code>malloc()</code> if <a class="el" href="group__config.html#ga94840bf23dac204b9fe48c769777400e">MPACK_STDLIB</a> is enabled. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga40ff1131fcb8e881bdda6bc5ce4b4296" name="ga40ff1131fcb8e881bdda6bc5ce4b4296"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga40ff1131fcb8e881bdda6bc5ce4b4296">◆ </a></span>MPACK_MEMCMP</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_MEMCMP   memcmp</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>The function MPack will use to provide <code>memcmp()</code>. </p>
|
|
<p >Set this to use a custom <code>memcmp()</code> function. Your function must have the signature:</p>
|
|
<div class="fragment"><div class="line"><span class="keywordtype">int</span> memcmp(<span class="keyword">const</span> <span class="keywordtype">void</span>* left, <span class="keyword">const</span> <span class="keywordtype">void</span>* right, <span class="keywordtype">size_t</span> count);</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a id="ga7ea0143fc257fddd069375e0a3713493" name="ga7ea0143fc257fddd069375e0a3713493"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga7ea0143fc257fddd069375e0a3713493">◆ </a></span>MPACK_MEMCPY</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_MEMCPY   memcpy</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>The function MPack will use to provide <code>memcpy()</code>. </p>
|
|
<p >Set this to use a custom <code>memcpy()</code> function. Your function must have the signature:</p>
|
|
<div class="fragment"><div class="line"><span class="keywordtype">void</span>* memcpy(<span class="keywordtype">void</span>* restrict dest, <span class="keyword">const</span> <span class="keywordtype">void</span>* restrict src, <span class="keywordtype">size_t</span> count);</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a id="gaa15a8b944a088318d9ec759ad305a1e2" name="gaa15a8b944a088318d9ec759ad305a1e2"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gaa15a8b944a088318d9ec759ad305a1e2">◆ </a></span>MPACK_MEMMOVE</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_MEMMOVE   memmove</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>The function MPack will use to provide <code>memmove()</code>. </p>
|
|
<p >Set this to use a custom <code>memmove()</code> function. Your function must have the signature:</p>
|
|
<div class="fragment"><div class="line"><span class="keywordtype">void</span>* memmove(<span class="keywordtype">void</span>* dest, <span class="keyword">const</span> <span class="keywordtype">void</span>* src, <span class="keywordtype">size_t</span> count);</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a id="gac2be86702d7a873366aab26bf54b9a5f" name="gac2be86702d7a873366aab26bf54b9a5f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gac2be86702d7a873366aab26bf54b9a5f">◆ </a></span>MPACK_MEMSET</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_MEMSET   memset</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>The function MPack will use to provide <code>memset()</code>. </p>
|
|
<p >Set this to use a custom <code>memset()</code> function. Your function must have the signature:</p>
|
|
<div class="fragment"><div class="line"><span class="keywordtype">void</span>* memset(<span class="keywordtype">void</span>* p, <span class="keywordtype">int</span> c, <span class="keywordtype">size_t</span> count);</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a id="ga407482826697ca9edf24727c39ab525d" name="ga407482826697ca9edf24727c39ab525d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga407482826697ca9edf24727c39ab525d">◆ </a></span>MPACK_NO_BUILTINS</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_NO_BUILTINS   0</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Whether to disable compiler intrinsics and other built-in functions. </p>
|
|
<p >If this is enabled, MPack won't use <code>__attribute__</code>, <code>__declspec</code>, any function starting with <code>__builtin</code>, or pretty much anything else that isn't standard C. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gaac5bc095026e6f851370c966845bb91f" name="gaac5bc095026e6f851370c966845bb91f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gaac5bc095026e6f851370c966845bb91f">◆ </a></span>MPACK_NODE</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_NODE   1</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Enables compilation of the dynamic Node API. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gabb291403e270476673d09faaba8304a7" name="gabb291403e270476673d09faaba8304a7"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gabb291403e270476673d09faaba8304a7">◆ </a></span>MPACK_NODE_INITIAL_DEPTH</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_NODE_INITIAL_DEPTH   8</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>The initial depth for the node parser. </p>
|
|
<p >When MPACK_MALLOC is available, the node parser has no practical depth limit, and it is not recursive so there is no risk of overflowing the call stack. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gab1318ead9efc98fed887169d8dc37fe4" name="gab1318ead9efc98fed887169d8dc37fe4"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gab1318ead9efc98fed887169d8dc37fe4">◆ </a></span>MPACK_NODE_MAX_DEPTH_WITHOUT_MALLOC</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_NODE_MAX_DEPTH_WITHOUT_MALLOC   32</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>The maximum depth for the node parser if <a class="el" href="group__config.html#gaae24f07943fceb85820a88fa72373482">MPACK_MALLOC</a> is not available. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga41e1f9cc9a9b4934473bb1997fa1d27c" name="ga41e1f9cc9a9b4934473bb1997fa1d27c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga41e1f9cc9a9b4934473bb1997fa1d27c">◆ </a></span>MPACK_NODE_PAGE_SIZE</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_NODE_PAGE_SIZE   <a class="el" href="group__config.html#gaa9fc1b48ee12bf6a8c7df0a1cc5b0089">MPACK_PAGE_SIZE</a></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Minimum size of an allocated node page in bytes. </p>
|
|
<p >The children for a given compound element must be contiguous, so larger pages than this may be allocated as needed. (Safety checks exist to prevent malicious data from causing too large allocations.)</p>
|
|
<p >See <a class="el" href="group__node.html#ga37218aec593259aed8b28625ff1395fb">mpack_node_data_t</a> for the size of nodes.</p>
|
|
<p >Using as many nodes fit in one memory page seems to provide the best performance, and has very little waste when parsing small messages. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga44e59b9d1a21ea2f489c0dcc5b52d166" name="ga44e59b9d1a21ea2f489c0dcc5b52d166"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga44e59b9d1a21ea2f489c0dcc5b52d166">◆ </a></span>MPACK_OPTIMIZE_FOR_SIZE</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_OPTIMIZE_FOR_SIZE   0</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Whether to optimize for size or speed. </p>
|
|
<p >Optimizing for size simplifies some parsing and encoding algorithms at the expense of speed and saves a few kilobytes of space in the resulting executable.</p>
|
|
<p >This automatically detects -Os with GCC/Clang. Unfortunately there doesn't seem to be a macro defined for /Os under MSVC. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gaa9fc1b48ee12bf6a8c7df0a1cc5b0089" name="gaa9fc1b48ee12bf6a8c7df0a1cc5b0089"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gaa9fc1b48ee12bf6a8c7df0a1cc5b0089">◆ </a></span>MPACK_PAGE_SIZE</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_PAGE_SIZE   4096</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Minimum size for paged allocations in bytes. </p>
|
|
<p >This is the value used by default for MPACK_NODE_PAGE_SIZE and MPACK_BUILDER_PAGE_SIZE. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga8c3a10274e55f106c8734fb65c575321" name="ga8c3a10274e55f106c8734fb65c575321"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga8c3a10274e55f106c8734fb65c575321">◆ </a></span>MPACK_READ_TRACKING</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_READ_TRACKING   1</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Enables compound type size tracking for readers. </p>
|
|
<p >This ensures that the correct number of elements or bytes are read from a compound type.</p>
|
|
<p >This is enabled by default in debug builds (provided a <code>malloc()</code> is available.) </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gafc71f44de1132a4efed4e2d450eb8197" name="gafc71f44de1132a4efed4e2d450eb8197"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gafc71f44de1132a4efed4e2d450eb8197">◆ </a></span>MPACK_READER</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_READER   1</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Enables compilation of the base Tag Reader. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga811ae202f55b9c6a15f6c3ea138964fa" name="ga811ae202f55b9c6a15f6c3ea138964fa"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga811ae202f55b9c6a15f6c3ea138964fa">◆ </a></span>MPACK_REALLOC</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_REALLOC   realloc</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Defines the realloc function used by MPack. </p>
|
|
<p >It is used by growable buffers to resize more efficiently.</p>
|
|
<p >The default is <code>realloc()</code> if <a class="el" href="group__config.html#gaae24f07943fceb85820a88fa72373482">MPACK_MALLOC</a> has not been customized and <a class="el" href="group__config.html#ga94840bf23dac204b9fe48c769777400e">MPACK_STDLIB</a> is enabled.</p>
|
|
<p >Set this to use a custom <code>realloc()</code> function. Your function must have the signature:</p>
|
|
<div class="fragment"><div class="line"><span class="keywordtype">void</span>* realloc(<span class="keywordtype">void</span>* p, <span class="keywordtype">size_t</span> new_size);</div>
|
|
</div><!-- fragment --><p >This is optional, even when <a class="el" href="group__config.html#gaae24f07943fceb85820a88fa72373482">MPACK_MALLOC</a> is used. If <a class="el" href="group__config.html#gaae24f07943fceb85820a88fa72373482">MPACK_MALLOC</a> is set and <a class="el" href="group__config.html#ga811ae202f55b9c6a15f6c3ea138964fa">MPACK_REALLOC</a> is not, <a class="el" href="group__config.html#gaae24f07943fceb85820a88fa72373482">MPACK_MALLOC</a> is used with a simple copy to grow buffers. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga30464f0269454ad72c7fb1b0b477225b" name="ga30464f0269454ad72c7fb1b0b477225b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga30464f0269454ad72c7fb1b0b477225b">◆ </a></span>MPACK_STACK_SIZE</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_STACK_SIZE   4096</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Stack space in bytes to use when initializing a reader or writer with a stack-allocated buffer. </p>
|
|
<dl class="section warning"><dt>Warning</dt><dd>Make sure you have sufficient stack space. Some libc use relatively small stacks even on desktop platforms, e.g. musl. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gab26adf73d74737f21ee1ec6bf8f213c6" name="gab26adf73d74737f21ee1ec6bf8f213c6"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gab26adf73d74737f21ee1ec6bf8f213c6">◆ </a></span>MPACK_STDIO</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_STDIO   1</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Enables the use of C stdio. </p>
|
|
<p >This adds helpers for easily reading/writing C files and makes debugging easier. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga94840bf23dac204b9fe48c769777400e" name="ga94840bf23dac204b9fe48c769777400e"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga94840bf23dac204b9fe48c769777400e">◆ </a></span>MPACK_STDLIB</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_STDLIB   1</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Enables the use of the C stdlib. </p>
|
|
<p >This allows the library to use basic functions like <code>memcmp()</code> and <code>strlen()</code>, as well as <code>malloc()</code> for debugging and in allocation helpers.</p>
|
|
<p >If this is disabled, allocation helper functions will not be defined, and MPack will attempt to detect compiler intrinsics for functions like <code>memcmp()</code> (assuming <a class="el" href="group__config.html#ga407482826697ca9edf24727c39ab525d">MPACK_NO_BUILTINS</a> is not set.) It will fallback to its own (slow) implementations if it cannot use builtins. You may want to define <a class="el" href="group__config.html#ga40ff1131fcb8e881bdda6bc5ce4b4296">MPACK_MEMCMP</a> and friends if you disable this.</p>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__config.html#ga40ff1131fcb8e881bdda6bc5ce4b4296" title="The function MPack will use to provide memcmp().">MPACK_MEMCMP</a> </dd>
|
|
<dd>
|
|
<a class="el" href="group__config.html#ga7ea0143fc257fddd069375e0a3713493" title="The function MPack will use to provide memcpy().">MPACK_MEMCPY</a> </dd>
|
|
<dd>
|
|
<a class="el" href="group__config.html#gaa15a8b944a088318d9ec759ad305a1e2" title="The function MPack will use to provide memmove().">MPACK_MEMMOVE</a> </dd>
|
|
<dd>
|
|
<a class="el" href="group__config.html#gac2be86702d7a873366aab26bf54b9a5f" title="The function MPack will use to provide memset().">MPACK_MEMSET</a> </dd>
|
|
<dd>
|
|
<a class="el" href="group__config.html#ga4a5aadfcd0db8b5be937936735f96bcd" title="The function MPack will use to provide strlen().">MPACK_STRLEN</a> </dd>
|
|
<dd>
|
|
<a class="el" href="group__config.html#gaae24f07943fceb85820a88fa72373482" title="Defines the memory allocation function used by MPack.">MPACK_MALLOC</a> </dd>
|
|
<dd>
|
|
<a class="el" href="group__config.html#ga811ae202f55b9c6a15f6c3ea138964fa" title="Defines the realloc function used by MPack.">MPACK_REALLOC</a> </dd>
|
|
<dd>
|
|
<a class="el" href="group__config.html#ga298d7c2e4093bcfe361088df9e35956a" title="Defines the memory free function used by MPack.">MPACK_FREE</a> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gae7e35c73ea60e1638bb3c906102eee28" name="gae7e35c73ea60e1638bb3c906102eee28"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gae7e35c73ea60e1638bb3c906102eee28">◆ </a></span>MPACK_STRINGS</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_STRINGS   1</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Enables descriptive error and type strings. </p>
|
|
<p >This can be turned off (by defining it to 0) to maximize space savings on embedded devices. If this is disabled, string functions such as <a class="el" href="group__common.html#gad2c776bf825722c9579f6003ad6ffe4b" title="Converts an MPack error to a string.">mpack_error_to_string()</a> and <a class="el" href="group__common.html#ga6d3ec73b8a671b7d4dd8e3d5670ff058" title="Converts an MPack type to a string.">mpack_type_to_string()</a> return an empty string. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga4a5aadfcd0db8b5be937936735f96bcd" name="ga4a5aadfcd0db8b5be937936735f96bcd"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga4a5aadfcd0db8b5be937936735f96bcd">◆ </a></span>MPACK_STRLEN</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_STRLEN   strlen</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>The function MPack will use to provide <code>strlen()</code>. </p>
|
|
<p >Set this to use a custom <code>strlen()</code> function. Your function must have the signature:</p>
|
|
<div class="fragment"><div class="line"><span class="keywordtype">size_t</span> strlen(<span class="keyword">const</span> <span class="keywordtype">char</span>* str);</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a id="ga82020e4a54933931ed83698cc65491c1" name="ga82020e4a54933931ed83698cc65491c1"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga82020e4a54933931ed83698cc65491c1">◆ </a></span>MPACK_WRITE_TRACKING</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_WRITE_TRACKING   1</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Enables compound type size tracking for writers. </p>
|
|
<p >This ensures that the correct number of elements or bytes are written in a compound type.</p>
|
|
<p >Note that without write tracking enabled, it is possible for buggy code to emit invalid MessagePack without flagging an error by writing the wrong number of elements or bytes in a compound type. With tracking enabled, MPack will catch such errors and break on the offending line of code.</p>
|
|
<p >This is enabled by default in debug builds (provided a <code>malloc()</code> is available.) </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga76dacaad0bc2e5bb9421338f1eeecd0f" name="ga76dacaad0bc2e5bb9421338f1eeecd0f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga76dacaad0bc2e5bb9421338f1eeecd0f">◆ </a></span>MPACK_WRITER</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define MPACK_WRITER   1</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Enables compilation of the Writer. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Function Documentation</h2>
|
|
<a id="ga8ae5d3e801bf531998c964212b8ace14" name="ga8ae5d3e801bf531998c964212b8ace14"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga8ae5d3e801bf531998c964212b8ace14">◆ </a></span>mpack_assert_fail()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void mpack_assert_fail </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const char * </td>
|
|
<td class="paramname"><em>message</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Implement this and define <a class="el" href="group__config.html#ga9fd42292abe10e1581d75a4f8d457d61">MPACK_CUSTOM_ASSERT</a> to use a custom assertion function. </p>
|
|
<p >This function should not return. If it does, MPack will <code>abort()</code>.</p>
|
|
<p >If you use C++, make sure you include <code>mpack.h</code> where you define this to get the correct linkage (or define it <code>extern "C"</code>.)</p>
|
|
<p >Asserts are only used when <a class="el" href="group__config.html#gaad55f98fb20f7c0de53eada292bab51b">MPACK_DEBUG</a> is enabled, and can be triggered by bugs in MPack or bugs due to incorrect usage of MPack. </p>
|
|
|
|
</div>
|
|
</div>
|
|
</div><!-- contents -->
|
|
<!-- start footer part -->
|
|
<hr class="footer"/><address class="footer"><small>
|
|
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.5
|
|
</small></address>
|
|
</body>
|
|
</html>
|