dash-docs/en/doxygen/html/utilstrencodings_8h_source.html

133 lines
33 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.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Dash Core: src/utilstrencodings.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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="bitcoin_logo_doxygen.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Dash Core
&#160;<span id="projectnumber">0.12.2.1</span>
</div>
<div id="projectbrief">P2P Digital Currency</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('utilstrencodings_8h_source.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- 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 class="header">
<div class="headertitle">
<div class="title">utilstrencodings.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="utilstrencodings_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>&#160;<span class="comment">// Copyright (c) 2009-2010 Satoshi Nakamoto</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// Copyright (c) 2009-2015 The Bitcoin Core developers</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// Distributed under the MIT software license, see the accompanying</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// file COPYING or http://www.opensource.org/licenses/mit-license.php.</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#ifndef BITCOIN_UTILSTRENCODINGS_H</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#define BITCOIN_UTILSTRENCODINGS_H</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="utilstrencodings_8h.html#a5f5e63e2c340bc52049e38c09b37e6e1"> 16</a></span>&#160;<span class="preprocessor">#define BEGIN(a) ((char*)&amp;(a))</span></div><div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="utilstrencodings_8h.html#ac32457d3f041434e57a2924847796fda"> 17</a></span>&#160;<span class="preprocessor">#define END(a) ((char*)&amp;((&amp;(a))[1]))</span></div><div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="utilstrencodings_8h.html#a4a903229f3d520fdb700f1c82586368b"> 18</a></span>&#160;<span class="preprocessor">#define UBEGIN(a) ((unsigned char*)&amp;(a))</span></div><div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="utilstrencodings_8h.html#af0f53b3b9bd67803cd1efe42c7894aa3"> 19</a></span>&#160;<span class="preprocessor">#define UEND(a) ((unsigned char*)&amp;((&amp;(a))[1]))</span></div><div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="utilstrencodings_8h.html#a35bf72ac971bd331fba0b3e8117bcbf9"> 20</a></span>&#160;<span class="preprocessor">#define ARRAYLEN(array) (sizeof(array)/sizeof((array)[0]))</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="utilstrencodings_8h.html#aa3052ab82a2ba880ea3e30b3357c8820"> 23</a></span>&#160;<span class="preprocessor">#define PAIRTYPE(t1, t2) std::pair&lt;t1, t2&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="utilstrencodings_8h.html#aecdd292e3acadfcc5ffe4fabe452cfef"> 26</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="utilstrencodings_8h.html#aecdd292e3acadfcc5ffe4fabe452cfef">SafeChars</a></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="utilstrencodings_8h.html#aecdd292e3acadfcc5ffe4fabe452cfefa10a58df6bb2aa23a37d9dfb8b57bcb9e"> 28</a></span>&#160; <a class="code" href="utilstrencodings_8h.html#aecdd292e3acadfcc5ffe4fabe452cfefa10a58df6bb2aa23a37d9dfb8b57bcb9e">SAFE_CHARS_DEFAULT</a>, </div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="utilstrencodings_8h.html#aecdd292e3acadfcc5ffe4fabe452cfefa2a2aa00945928521532f643f93a685b4"> 29</a></span>&#160; <a class="code" href="utilstrencodings_8h.html#aecdd292e3acadfcc5ffe4fabe452cfefa2a2aa00945928521532f643f93a685b4">SAFE_CHARS_UA_COMMENT</a> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;};</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;std::string <a class="code" href="utilstrencodings_8h.html#a5828a6d0fb5a7ab1e274f49722a6a151">SanitizeString</a>(<span class="keyword">const</span> std::string&amp; str, <span class="keywordtype">int</span> rule = <a class="code" href="utilstrencodings_8h.html#aecdd292e3acadfcc5ffe4fabe452cfefa10a58df6bb2aa23a37d9dfb8b57bcb9e">SAFE_CHARS_DEFAULT</a>);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;std::vector&lt;unsigned char&gt; <a class="code" href="utilstrencodings_8h.html#a5a787187ddd5c52baae692350ec5a2cb">ParseHex</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* psz);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;std::vector&lt;unsigned char&gt; <a class="code" href="utilstrencodings_8h.html#a5a787187ddd5c52baae692350ec5a2cb">ParseHex</a>(<span class="keyword">const</span> std::string&amp; str);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keywordtype">signed</span> <span class="keywordtype">char</span> <a class="code" href="utilstrencodings_8h.html#aa59e8a8c5a39cb5041f93bb95dd02119">HexDigit</a>(<span class="keywordtype">char</span> c);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="utilstrencodings_8h.html#a9f23401f4b871ed693f7a96a9ba40c58">IsHex</a>(<span class="keyword">const</span> std::string&amp; str);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;std::vector&lt;unsigned char&gt; <a class="code" href="utilstrencodings_8h.html#ad7d5462ec6ec6e23493c839d01da7424">DecodeBase64</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="namespacerpc-tests.html#a5634cc986fc764eff8c617f53bf2e8dc">p</a>, <span class="keywordtype">bool</span>* pfInvalid = NULL);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;std::string <a class="code" href="utilstrencodings_8h.html#ad7d5462ec6ec6e23493c839d01da7424">DecodeBase64</a>(<span class="keyword">const</span> std::string&amp; str);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;std::string <a class="code" href="utilstrencodings_8h.html#ab088e17c477707c187113686457eabb8">EncodeBase64</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* pch, <span class="keywordtype">size_t</span> len);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;std::string <a class="code" href="utilstrencodings_8h.html#ab088e17c477707c187113686457eabb8">EncodeBase64</a>(<span class="keyword">const</span> std::string&amp; str);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;std::vector&lt;unsigned char&gt; <a class="code" href="utilstrencodings_8h.html#a58e69b413820ff62a4f203eb5c1a827a">DecodeBase32</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="namespacerpc-tests.html#a5634cc986fc764eff8c617f53bf2e8dc">p</a>, <span class="keywordtype">bool</span>* pfInvalid = NULL);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;std::string <a class="code" href="utilstrencodings_8h.html#a58e69b413820ff62a4f203eb5c1a827a">DecodeBase32</a>(<span class="keyword">const</span> std::string&amp; str);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;std::string <a class="code" href="utilstrencodings_8h.html#aed1944a78afffe9d5f3129e656dc8aa6">EncodeBase32</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* pch, <span class="keywordtype">size_t</span> len);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;std::string <a class="code" href="utilstrencodings_8h.html#aed1944a78afffe9d5f3129e656dc8aa6">EncodeBase32</a>(<span class="keyword">const</span> std::string&amp; str);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;std::string <a class="code" href="utilstrencodings_8h.html#ab7a07cad3bcdf95935f4f6b5c039c546">i64tostr</a>(int64_t <a class="code" href="namespacefix-copyright-headers.html#aed10e06fbf20b2e50f73ff2d61f59e45">n</a>);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;std::string <a class="code" href="utilstrencodings_8h.html#a565b3ea015b133d01dc52b4ec6e45f07">itostr</a>(<span class="keywordtype">int</span> <a class="code" href="namespacefix-copyright-headers.html#aed10e06fbf20b2e50f73ff2d61f59e45">n</a>);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;int64_t <a class="code" href="utilstrencodings_8h.html#a22916d155600c742c4efad727462588e">atoi64</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* psz);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;int64_t <a class="code" href="utilstrencodings_8h.html#a22916d155600c742c4efad727462588e">atoi64</a>(<span class="keyword">const</span> std::string&amp; str);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keywordtype">int</span> <a class="code" href="utilstrencodings_8h.html#aa5ce96ec36f4413f820cec9c1831c070">atoi</a>(<span class="keyword">const</span> std::string&amp; str);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="utilstrencodings_8h.html#a880a215d9e931432b095084c756a49bb">ParseInt32</a>(<span class="keyword">const</span> std::string&amp; str, int32_t *<a class="code" href="namespaceextract__strings__qt.html#ab8166b91ad54a98ce8450593d2a3d827">out</a>);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="utilstrencodings_8h.html#acb4637787cab6998d4a403d0dcdf51e6">ParseInt64</a>(<span class="keyword">const</span> std::string&amp; str, int64_t *<a class="code" href="namespaceextract__strings__qt.html#ab8166b91ad54a98ce8450593d2a3d827">out</a>);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="utilstrencodings_8h.html#acde05f33990e3c89cd8bc1088cc992a2">ParseDouble</a>(<span class="keyword">const</span> std::string&amp; str, <span class="keywordtype">double</span> *<a class="code" href="namespaceextract__strings__qt.html#ab8166b91ad54a98ce8450593d2a3d827">out</a>);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="utilstrencodings_8h.html#ace13a819ca4e98c22847d26b3b357e75"> 81</a></span>&#160;std::string <a class="code" href="utilstrencodings_8h.html#ace13a819ca4e98c22847d26b3b357e75">HexStr</a>(<span class="keyword">const</span> T itbegin, <span class="keyword">const</span> T itend, <span class="keywordtype">bool</span> fSpaces=<span class="keyword">false</span>)</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;{</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; std::string rv;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> hexmap[16] = { <span class="charliteral">&#39;0&#39;</span>, <span class="charliteral">&#39;1&#39;</span>, <span class="charliteral">&#39;2&#39;</span>, <span class="charliteral">&#39;3&#39;</span>, <span class="charliteral">&#39;4&#39;</span>, <span class="charliteral">&#39;5&#39;</span>, <span class="charliteral">&#39;6&#39;</span>, <span class="charliteral">&#39;7&#39;</span>,</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="charliteral">&#39;8&#39;</span>, <span class="charliteral">&#39;9&#39;</span>, <span class="charliteral">&#39;a&#39;</span>, <span class="charliteral">&#39;b&#39;</span>, <span class="charliteral">&#39;c&#39;</span>, <span class="charliteral">&#39;d&#39;</span>, <span class="charliteral">&#39;e&#39;</span>, <span class="charliteral">&#39;f&#39;</span> };</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; rv.reserve((itend-itbegin)*3);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">for</span>(T it = itbegin; it &lt; itend; ++it)</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> val = (<span class="keywordtype">unsigned</span> char)(*it);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">if</span>(fSpaces &amp;&amp; it != itbegin)</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; rv.push_back(<span class="charliteral">&#39; &#39;</span>);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; rv.push_back(hexmap[val&gt;&gt;4]);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; rv.push_back(hexmap[val&amp;15]);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">return</span> rv;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;}</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="utilstrencodings_8h.html#a7efe75f50ba1dbd0183952dd42146a92"> 100</a></span>&#160;<span class="keyword">inline</span> std::string <a class="code" href="utilstrencodings_8h.html#ace13a819ca4e98c22847d26b3b357e75">HexStr</a>(<span class="keyword">const</span> T&amp; vch, <span class="keywordtype">bool</span> fSpaces=<span class="keyword">false</span>)</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;{</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">return</span> <a class="code" href="utilstrencodings_8h.html#ace13a819ca4e98c22847d26b3b357e75">HexStr</a>(vch.begin(), vch.end(), fSpaces);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;}</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;std::string <a class="code" href="utilstrencodings_8h.html#a06fbe849b0767541d29045f69923e905">FormatParagraph</a>(<span class="keyword">const</span> std::string&amp; in, <span class="keywordtype">size_t</span> width = 79, <span class="keywordtype">size_t</span> <a class="code" href="namespacegen__base58__test__vectors.html#ad74370f89141e531180c75df8758035c">indent</a> = 0);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="utilstrencodings_8h.html#a7ddc80f6840eae3277e324aec17c2568"> 117</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="utilstrencodings_8h.html#a7ddc80f6840eae3277e324aec17c2568">TimingResistantEqual</a>(<span class="keyword">const</span> T&amp; a, <span class="keyword">const</span> T&amp; b)</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;{</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">if</span> (b.size() == 0) <span class="keywordflow">return</span> a.size() == 0;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordtype">size_t</span> accumulator = a.size() ^ b.size();</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; a.size(); i++)</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; accumulator |= a[i] ^ b[i%b.size()];</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span> accumulator == 0;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;}</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="utilstrencodings_8h.html#a88871b16821d50d5f98a07312f8f1ffb">ParseFixedPoint</a>(<span class="keyword">const</span> std::string &amp;val, <span class="keywordtype">int</span> decimals, int64_t *amount_out);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="preprocessor">#endif // BITCOIN_UTILSTRENCODINGS_H</span></div><div class="ttc" id="utilstrencodings_8h_html_a565b3ea015b133d01dc52b4ec6e45f07"><div class="ttname"><a href="utilstrencodings_8h.html#a565b3ea015b133d01dc52b4ec6e45f07">itostr</a></div><div class="ttdeci">std::string itostr(int n)</div><div class="ttdef"><b>Definition:</b> <a href="utilstrencodings_8cpp_source.html#l00518">utilstrencodings.cpp:518</a></div></div>
<div class="ttc" id="utilstrencodings_8h_html_ad7d5462ec6ec6e23493c839d01da7424"><div class="ttname"><a href="utilstrencodings_8h.html#ad7d5462ec6ec6e23493c839d01da7424">DecodeBase64</a></div><div class="ttdeci">std::vector&lt; unsigned char &gt; DecodeBase64(const char *p, bool *pfInvalid=NULL)</div><div class="ttdef"><b>Definition:</b> <a href="utilstrencodings_8cpp_source.html#l00146">utilstrencodings.cpp:146</a></div></div>
<div class="ttc" id="utilstrencodings_8h_html_ace13a819ca4e98c22847d26b3b357e75"><div class="ttname"><a href="utilstrencodings_8h.html#ace13a819ca4e98c22847d26b3b357e75">HexStr</a></div><div class="ttdeci">std::string HexStr(const T itbegin, const T itend, bool fSpaces=false)</div><div class="ttdef"><b>Definition:</b> <a href="utilstrencodings_8h_source.html#l00081">utilstrencodings.h:81</a></div></div>
<div class="ttc" id="utilstrencodings_8h_html_aecdd292e3acadfcc5ffe4fabe452cfefa10a58df6bb2aa23a37d9dfb8b57bcb9e"><div class="ttname"><a href="utilstrencodings_8h.html#aecdd292e3acadfcc5ffe4fabe452cfefa10a58df6bb2aa23a37d9dfb8b57bcb9e">SAFE_CHARS_DEFAULT</a></div><div class="ttdoc">The full set of allowed chars. </div><div class="ttdef"><b>Definition:</b> <a href="utilstrencodings_8h_source.html#l00028">utilstrencodings.h:28</a></div></div>
<div class="ttc" id="utilstrencodings_8h_html_acde05f33990e3c89cd8bc1088cc992a2"><div class="ttname"><a href="utilstrencodings_8h.html#acde05f33990e3c89cd8bc1088cc992a2">ParseDouble</a></div><div class="ttdeci">bool ParseDouble(const std::string &amp;str, double *out)</div><div class="ttdef"><b>Definition:</b> <a href="utilstrencodings_8cpp_source.html#l00464">utilstrencodings.cpp:464</a></div></div>
<div class="ttc" id="utilstrencodings_8h_html_ab088e17c477707c187113686457eabb8"><div class="ttname"><a href="utilstrencodings_8h.html#ab088e17c477707c187113686457eabb8">EncodeBase64</a></div><div class="ttdeci">std::string EncodeBase64(const unsigned char *pch, size_t len)</div><div class="ttdef"><b>Definition:</b> <a href="utilstrencodings_8cpp_source.html#l00095">utilstrencodings.cpp:95</a></div></div>
<div class="ttc" id="utilstrencodings_8h_html_a880a215d9e931432b095084c756a49bb"><div class="ttname"><a href="utilstrencodings_8h.html#a880a215d9e931432b095084c756a49bb">ParseInt32</a></div><div class="ttdeci">bool ParseInt32(const std::string &amp;str, int32_t *out)</div><div class="ttdef"><b>Definition:</b> <a href="utilstrencodings_8cpp_source.html#l00433">utilstrencodings.cpp:433</a></div></div>
<div class="ttc" id="utilstrencodings_8h_html_a22916d155600c742c4efad727462588e"><div class="ttname"><a href="utilstrencodings_8h.html#a22916d155600c742c4efad727462588e">atoi64</a></div><div class="ttdeci">int64_t atoi64(const char *psz)</div><div class="ttdef"><b>Definition:</b> <a href="utilstrencodings_8cpp_source.html#l00523">utilstrencodings.cpp:523</a></div></div>
<div class="ttc" id="utilstrencodings_8h_html_aa59e8a8c5a39cb5041f93bb95dd02119"><div class="ttname"><a href="utilstrencodings_8h.html#aa59e8a8c5a39cb5041f93bb95dd02119">HexDigit</a></div><div class="ttdeci">signed char HexDigit(char c)</div><div class="ttdef"><b>Definition:</b> <a href="utilstrencodings_8cpp_source.html#l00054">utilstrencodings.cpp:54</a></div></div>
<div class="ttc" id="utilstrencodings_8h_html_a5a787187ddd5c52baae692350ec5a2cb"><div class="ttname"><a href="utilstrencodings_8h.html#a5a787187ddd5c52baae692350ec5a2cb">ParseHex</a></div><div class="ttdeci">std::vector&lt; unsigned char &gt; ParseHex(const char *psz)</div><div class="ttdef"><b>Definition:</b> <a href="utilstrencodings_8cpp_source.html#l00069">utilstrencodings.cpp:69</a></div></div>
<div class="ttc" id="utilstrencodings_8h_html_ab7a07cad3bcdf95935f4f6b5c039c546"><div class="ttname"><a href="utilstrencodings_8h.html#ab7a07cad3bcdf95935f4f6b5c039c546">i64tostr</a></div><div class="ttdeci">std::string i64tostr(int64_t n)</div><div class="ttdef"><b>Definition:</b> <a href="utilstrencodings_8cpp_source.html#l00513">utilstrencodings.cpp:513</a></div></div>
<div class="ttc" id="utilstrencodings_8h_html_a7ddc80f6840eae3277e324aec17c2568"><div class="ttname"><a href="utilstrencodings_8h.html#a7ddc80f6840eae3277e324aec17c2568">TimingResistantEqual</a></div><div class="ttdeci">bool TimingResistantEqual(const T &amp;a, const T &amp;b)</div><div class="ttdef"><b>Definition:</b> <a href="utilstrencodings_8h_source.html#l00117">utilstrencodings.h:117</a></div></div>
<div class="ttc" id="utilstrencodings_8h_html_a5828a6d0fb5a7ab1e274f49722a6a151"><div class="ttname"><a href="utilstrencodings_8h.html#a5828a6d0fb5a7ab1e274f49722a6a151">SanitizeString</a></div><div class="ttdeci">std::string SanitizeString(const std::string &amp;str, int rule=SAFE_CHARS_DEFAULT)</div></div>
<div class="ttc" id="namespacefix-copyright-headers_html_aed10e06fbf20b2e50f73ff2d61f59e45"><div class="ttname"><a href="namespacefix-copyright-headers.html#aed10e06fbf20b2e50f73ff2d61f59e45">fix-copyright-headers.n</a></div><div class="ttdeci">int n</div><div class="ttdef"><b>Definition:</b> <a href="fix-copyright-headers_8py_source.html#l00046">fix-copyright-headers.py:46</a></div></div>
<div class="ttc" id="utilstrencodings_8h_html_a88871b16821d50d5f98a07312f8f1ffb"><div class="ttname"><a href="utilstrencodings_8h.html#a88871b16821d50d5f98a07312f8f1ffb">ParseFixedPoint</a></div><div class="ttdeci">bool ParseFixedPoint(const std::string &amp;val, int decimals, int64_t *amount_out)</div><div class="ttdef"><b>Definition:</b> <a href="utilstrencodings_8cpp_source.html#l00573">utilstrencodings.cpp:573</a></div></div>
<div class="ttc" id="utilstrencodings_8h_html_a9f23401f4b871ed693f7a96a9ba40c58"><div class="ttname"><a href="utilstrencodings_8h.html#a9f23401f4b871ed693f7a96a9ba40c58">IsHex</a></div><div class="ttdeci">bool IsHex(const std::string &amp;str)</div></div>
<div class="ttc" id="utilstrencodings_8h_html_aecdd292e3acadfcc5ffe4fabe452cfefa2a2aa00945928521532f643f93a685b4"><div class="ttname"><a href="utilstrencodings_8h.html#aecdd292e3acadfcc5ffe4fabe452cfefa2a2aa00945928521532f643f93a685b4">SAFE_CHARS_UA_COMMENT</a></div><div class="ttdoc">BIP-0014 subset. </div><div class="ttdef"><b>Definition:</b> <a href="utilstrencodings_8h_source.html#l00029">utilstrencodings.h:29</a></div></div>
<div class="ttc" id="utilstrencodings_8h_html_acb4637787cab6998d4a403d0dcdf51e6"><div class="ttname"><a href="utilstrencodings_8h.html#acb4637787cab6998d4a403d0dcdf51e6">ParseInt64</a></div><div class="ttdeci">bool ParseInt64(const std::string &amp;str, int64_t *out)</div><div class="ttdef"><b>Definition:</b> <a href="utilstrencodings_8cpp_source.html#l00449">utilstrencodings.cpp:449</a></div></div>
<div class="ttc" id="utilstrencodings_8h_html_a58e69b413820ff62a4f203eb5c1a827a"><div class="ttname"><a href="utilstrencodings_8h.html#a58e69b413820ff62a4f203eb5c1a827a">DecodeBase32</a></div><div class="ttdeci">std::vector&lt; unsigned char &gt; DecodeBase32(const char *p, bool *pfInvalid=NULL)</div><div class="ttdef"><b>Definition:</b> <a href="utilstrencodings_8cpp_source.html#l00299">utilstrencodings.cpp:299</a></div></div>
<div class="ttc" id="namespacerpc-tests_html_a5634cc986fc764eff8c617f53bf2e8dc"><div class="ttname"><a href="namespacerpc-tests.html#a5634cc986fc764eff8c617f53bf2e8dc">rpc-tests.p</a></div><div class="ttdeci">p</div><div class="ttdef"><b>Definition:</b> <a href="rpc-tests_8py_source.html#l00049">rpc-tests.py:49</a></div></div>
<div class="ttc" id="utilstrencodings_8h_html_aed1944a78afffe9d5f3129e656dc8aa6"><div class="ttname"><a href="utilstrencodings_8h.html#aed1944a78afffe9d5f3129e656dc8aa6">EncodeBase32</a></div><div class="ttdeci">std::string EncodeBase32(const unsigned char *pch, size_t len)</div><div class="ttdef"><b>Definition:</b> <a href="utilstrencodings_8cpp_source.html#l00235">utilstrencodings.cpp:235</a></div></div>
<div class="ttc" id="utilstrencodings_8h_html_aecdd292e3acadfcc5ffe4fabe452cfef"><div class="ttname"><a href="utilstrencodings_8h.html#aecdd292e3acadfcc5ffe4fabe452cfef">SafeChars</a></div><div class="ttdeci">SafeChars</div><div class="ttdef"><b>Definition:</b> <a href="utilstrencodings_8h_source.html#l00026">utilstrencodings.h:26</a></div></div>
<div class="ttc" id="namespacegen__base58__test__vectors_html_ad74370f89141e531180c75df8758035c"><div class="ttname"><a href="namespacegen__base58__test__vectors.html#ad74370f89141e531180c75df8758035c">gen_base58_test_vectors.indent</a></div><div class="ttdeci">indent</div><div class="ttdef"><b>Definition:</b> <a href="gen__base58__test__vectors_8py_source.html#l00124">gen_base58_test_vectors.py:124</a></div></div>
<div class="ttc" id="namespaceextract__strings__qt_html_ab8166b91ad54a98ce8450593d2a3d827"><div class="ttname"><a href="namespaceextract__strings__qt.html#ab8166b91ad54a98ce8450593d2a3d827">extract_strings_qt.out</a></div><div class="ttdeci">out</div><div class="ttdef"><b>Definition:</b> <a href="extract__strings__qt_8py_source.html#l00056">extract_strings_qt.py:56</a></div></div>
<div class="ttc" id="utilstrencodings_8h_html_aa5ce96ec36f4413f820cec9c1831c070"><div class="ttname"><a href="utilstrencodings_8h.html#aa5ce96ec36f4413f820cec9c1831c070">atoi</a></div><div class="ttdeci">int atoi(const std::string &amp;str)</div><div class="ttdef"><b>Definition:</b> <a href="utilstrencodings_8cpp_source.html#l00541">utilstrencodings.cpp:541</a></div></div>
<div class="ttc" id="utilstrencodings_8h_html_a06fbe849b0767541d29045f69923e905"><div class="ttname"><a href="utilstrencodings_8h.html#a06fbe849b0767541d29045f69923e905">FormatParagraph</a></div><div class="ttdeci">std::string FormatParagraph(const std::string &amp;in, size_t width=79, size_t indent=0)</div><div class="ttdef"><b>Definition:</b> <a href="utilstrencodings_8cpp_source.html#l00478">utilstrencodings.cpp:478</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="utilstrencodings_8h.html">utilstrencodings.h</a></li>
<li class="footer">Generated on Thu Dec 14 2017 13:15:09 for Dash Core by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
</ul>
</div>
</body>
</html>