Files
rippled/classripple_1_1NodeStore_1_1DecodedBlob.html
2025-08-19 09:49:50 -07:00

338 lines
17 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>rippled: ripple::NodeStore::DecodedBlob Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">rippled
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;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&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceripple.html">ripple</a></li><li class="navelem"><a class="el" href="namespaceripple_1_1NodeStore.html">NodeStore</a></li><li class="navelem"><a class="el" href="classripple_1_1NodeStore_1_1DecodedBlob.html">DecodedBlob</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classripple_1_1NodeStore_1_1DecodedBlob-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">ripple::NodeStore::DecodedBlob Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Parsed key/value blob into <a class="el" href="classripple_1_1NodeObject.html" title="A simple object that the Ledger uses to store entries.">NodeObject</a> components.
<a href="classripple_1_1NodeStore_1_1DecodedBlob.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="DecodedBlob_8h_source.html">DecodedBlob.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aea8993fa60dbff7589068996410c3c99" id="r_aea8993fa60dbff7589068996410c3c99"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1DecodedBlob.html#aea8993fa60dbff7589068996410c3c99">DecodedBlob</a> (void const *key, void const *value, int valueBytes)</td></tr>
<tr class="memdesc:aea8993fa60dbff7589068996410c3c99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct the decoded blob from raw data. <br /></td></tr>
<tr class="separator:aea8993fa60dbff7589068996410c3c99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b3301f4f3697bd09ebf977c8d3f056f" id="r_a4b3301f4f3697bd09ebf977c8d3f056f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1DecodedBlob.html#a4b3301f4f3697bd09ebf977c8d3f056f">wasOk</a> () const noexcept</td></tr>
<tr class="memdesc:a4b3301f4f3697bd09ebf977c8d3f056f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine if the decoding was successful. <br /></td></tr>
<tr class="separator:a4b3301f4f3697bd09ebf977c8d3f056f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20fe9b3942f79cb6b610114469e827c1" id="r_a20fe9b3942f79cb6b610114469e827c1"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1NodeObject.html">NodeObject</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1DecodedBlob.html#a20fe9b3942f79cb6b610114469e827c1">createObject</a> ()</td></tr>
<tr class="memdesc:a20fe9b3942f79cb6b610114469e827c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a <a class="el" href="classripple_1_1NodeObject.html" title="A simple object that the Ledger uses to store entries.">NodeObject</a> from this data. <br /></td></tr>
<tr class="separator:a20fe9b3942f79cb6b610114469e827c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a198eb16c758d4c065146a66f2551ae23" id="r_a198eb16c758d4c065146a66f2551ae23"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1DecodedBlob.html#a198eb16c758d4c065146a66f2551ae23">m_success</a></td></tr>
<tr class="separator:a198eb16c758d4c065146a66f2551ae23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2e9cc1b389ccba9d72912072d732730" id="r_af2e9cc1b389ccba9d72912072d732730"><td class="memItemLeft" align="right" valign="top">void const *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1DecodedBlob.html#af2e9cc1b389ccba9d72912072d732730">m_key</a></td></tr>
<tr class="separator:af2e9cc1b389ccba9d72912072d732730"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cd2ea7a33fae2afabd34c94c1914029" id="r_a0cd2ea7a33fae2afabd34c94c1914029"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceripple.html#a57d7e7b27df7e719fdf5569f96be60a3">NodeObjectType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1DecodedBlob.html#a0cd2ea7a33fae2afabd34c94c1914029">m_objectType</a></td></tr>
<tr class="separator:a0cd2ea7a33fae2afabd34c94c1914029"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4677c0c6b2ac767333f259566d9343e7" id="r_a4677c0c6b2ac767333f259566d9343e7"><td class="memItemLeft" align="right" valign="top">unsigned char const *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1DecodedBlob.html#a4677c0c6b2ac767333f259566d9343e7">m_objectData</a></td></tr>
<tr class="separator:a4677c0c6b2ac767333f259566d9343e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a503af8a68bd267a1db8a3b3484e2d94e" id="r_a503af8a68bd267a1db8a3b3484e2d94e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1NodeStore_1_1DecodedBlob.html#a503af8a68bd267a1db8a3b3484e2d94e">m_dataBytes</a></td></tr>
<tr class="separator:a503af8a68bd267a1db8a3b3484e2d94e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Parsed key/value blob into <a class="el" href="classripple_1_1NodeObject.html" title="A simple object that the Ledger uses to store entries.">NodeObject</a> components. </p>
<p>This will extract the information required to construct a <a class="el" href="classripple_1_1NodeObject.html" title="A simple object that the Ledger uses to store entries.">NodeObject</a>. It also does consistency checking and returns the result, so it is possible to determine if the data is corrupted without throwing an exception. Not all forms of corruption are detected so further analysis will be needed to eliminate false negatives.</p>
<dl class="section note"><dt>Note</dt><dd>This defines the database format of a NodeObject! </dd></dl>
<p class="definition">Definition at line <a class="el" href="DecodedBlob_8h_source.html#l00038">38</a> of file <a class="el" href="DecodedBlob_8h_source.html">DecodedBlob.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="aea8993fa60dbff7589068996410c3c99" name="aea8993fa60dbff7589068996410c3c99"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aea8993fa60dbff7589068996410c3c99">&#9670;&#160;</a></span>DecodedBlob()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ripple::NodeStore::DecodedBlob::DecodedBlob </td>
<td>(</td>
<td class="paramtype">void const *&#160;</td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void const *&#160;</td>
<td class="paramname"><em>value</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>valueBytes</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct the decoded blob from raw data. </p>
<p class="definition">Definition at line <a class="el" href="DecodedBlob_8cpp_source.html#l00030">30</a> of file <a class="el" href="DecodedBlob_8cpp_source.html">DecodedBlob.cpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a4b3301f4f3697bd09ebf977c8d3f056f" name="a4b3301f4f3697bd09ebf977c8d3f056f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b3301f4f3697bd09ebf977c8d3f056f">&#9670;&#160;</a></span>wasOk()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ripple::NodeStore::DecodedBlob::wasOk </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Determine if the decoding was successful. </p>
<p class="definition">Definition at line <a class="el" href="DecodedBlob_8h_source.html#l00046">46</a> of file <a class="el" href="DecodedBlob_8h_source.html">DecodedBlob.h</a>.</p>
</div>
</div>
<a id="a20fe9b3942f79cb6b610114469e827c1" name="a20fe9b3942f79cb6b610114469e827c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a20fe9b3942f79cb6b610114469e827c1">&#9670;&#160;</a></span>createObject()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a>&lt; <a class="el" href="classripple_1_1NodeObject.html">NodeObject</a> &gt; ripple::NodeStore::DecodedBlob::createObject </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a <a class="el" href="classripple_1_1NodeObject.html" title="A simple object that the Ledger uses to store entries.">NodeObject</a> from this data. </p>
<p class="definition">Definition at line <a class="el" href="DecodedBlob_8cpp_source.html#l00075">75</a> of file <a class="el" href="DecodedBlob_8cpp_source.html">DecodedBlob.cpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a198eb16c758d4c065146a66f2551ae23" name="a198eb16c758d4c065146a66f2551ae23"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a198eb16c758d4c065146a66f2551ae23">&#9670;&#160;</a></span>m_success</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ripple::NodeStore::DecodedBlob::m_success</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="DecodedBlob_8h_source.html#l00056">56</a> of file <a class="el" href="DecodedBlob_8h_source.html">DecodedBlob.h</a>.</p>
</div>
</div>
<a id="af2e9cc1b389ccba9d72912072d732730" name="af2e9cc1b389ccba9d72912072d732730"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af2e9cc1b389ccba9d72912072d732730">&#9670;&#160;</a></span>m_key</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void const* ripple::NodeStore::DecodedBlob::m_key</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="DecodedBlob_8h_source.html#l00058">58</a> of file <a class="el" href="DecodedBlob_8h_source.html">DecodedBlob.h</a>.</p>
</div>
</div>
<a id="a0cd2ea7a33fae2afabd34c94c1914029" name="a0cd2ea7a33fae2afabd34c94c1914029"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0cd2ea7a33fae2afabd34c94c1914029">&#9670;&#160;</a></span>m_objectType</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceripple.html#a57d7e7b27df7e719fdf5569f96be60a3">NodeObjectType</a> ripple::NodeStore::DecodedBlob::m_objectType</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="DecodedBlob_8h_source.html#l00059">59</a> of file <a class="el" href="DecodedBlob_8h_source.html">DecodedBlob.h</a>.</p>
</div>
</div>
<a id="a4677c0c6b2ac767333f259566d9343e7" name="a4677c0c6b2ac767333f259566d9343e7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4677c0c6b2ac767333f259566d9343e7">&#9670;&#160;</a></span>m_objectData</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">unsigned char const* ripple::NodeStore::DecodedBlob::m_objectData</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="DecodedBlob_8h_source.html#l00060">60</a> of file <a class="el" href="DecodedBlob_8h_source.html">DecodedBlob.h</a>.</p>
</div>
</div>
<a id="a503af8a68bd267a1db8a3b3484e2d94e" name="a503af8a68bd267a1db8a3b3484e2d94e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a503af8a68bd267a1db8a3b3484e2d94e">&#9670;&#160;</a></span>m_dataBytes</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int ripple::NodeStore::DecodedBlob::m_dataBytes</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="DecodedBlob_8h_source.html#l00061">61</a> of file <a class="el" href="DecodedBlob_8h_source.html">DecodedBlob.h</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>