This commit is contained in:
bthomee
2026-01-28 10:13:01 -08:00
parent feb9060dd0
commit 9368c0d563
5641 changed files with 403487 additions and 442352 deletions

View File

@@ -124,31 +124,30 @@ $(document).ready(function() { init_codefold(0); });
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classxrpl_1_1detail_1_1CachedViewImpl.html#aa4e2ba0c0dd89b688338368e857f67a4">base_</a>.<a class="code hl_function" href="classxrpl_1_1ReadView.html#ae7286da5df8ee36f950cc43fd3a46806">read</a>(k);</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> });</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="comment">// If the sle is null, then a failure must have occurred in base_.read()</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> XRPL_ASSERT(</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> sle || baseRead, <span class="stringliteral">&quot;xrpl::CachedView::read : null SLE result from base&quot;</span>);</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <span class="keywordflow">if</span> (cacheHit &amp;&amp; baseRead)</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> hitsexpired.increment();</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (cacheHit)</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> hits.increment();</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> misses.increment();</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> </div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keywordflow">if</span> (!cacheHit)</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> {</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="comment">// Avoid acquiring this lock unless necessary. It is only necessary if</span></div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="comment">// the key was not found in the map_. The lock is needed to add the key</span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="comment">// and digest.</span></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock(<a class="code hl_variable" href="classxrpl_1_1detail_1_1CachedViewImpl.html#a06eb9ccb97f31e08e89a267eb087cc8f">mutex_</a>);</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <a class="code hl_variable" href="classxrpl_1_1detail_1_1CachedViewImpl.html#a4fa4e65bb71cf6fe9ce6a9b1d75a1d87">map_</a>.emplace(k.<a class="code hl_variable" href="structxrpl_1_1Keylet.html#a03cc2a78d194c2eb48ae173f0db3b22c">key</a>, *<a class="code hl_function" href="classxrpl_1_1detail_1_1CachedViewImpl.html#a7b64b98421caa096db0936cc41bf42c1">digest</a>);</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> }</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keywordflow">if</span> (!sle || !k.<a class="code hl_function" href="structxrpl_1_1Keylet.html#aa1c15f751d20b0b0b09c189f934e98e6">check</a>(*sle))</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordflow">return</span> sle;</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span>}</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> XRPL_ASSERT(sle || baseRead, <span class="stringliteral">&quot;xrpl::CachedView::read : null SLE result from base&quot;</span>);</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keywordflow">if</span> (cacheHit &amp;&amp; baseRead)</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> hitsexpired.increment();</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (cacheHit)</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> hits.increment();</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> misses.increment();</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keywordflow">if</span> (!cacheHit)</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> {</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="comment">// Avoid acquiring this lock unless necessary. It is only necessary if</span></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="comment">// the key was not found in the map_. The lock is needed to add the key</span></div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="comment">// and digest.</span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock(<a class="code hl_variable" href="classxrpl_1_1detail_1_1CachedViewImpl.html#a06eb9ccb97f31e08e89a267eb087cc8f">mutex_</a>);</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <a class="code hl_variable" href="classxrpl_1_1detail_1_1CachedViewImpl.html#a4fa4e65bb71cf6fe9ce6a9b1d75a1d87">map_</a>.emplace(k.<a class="code hl_variable" href="structxrpl_1_1Keylet.html#a03cc2a78d194c2eb48ae173f0db3b22c">key</a>, *<a class="code hl_function" href="classxrpl_1_1detail_1_1CachedViewImpl.html#a7b64b98421caa096db0936cc41bf42c1">digest</a>);</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> }</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keywordflow">if</span> (!sle || !k.<a class="code hl_function" href="structxrpl_1_1Keylet.html#aa1c15f751d20b0b0b09c189f934e98e6">check</a>(*sle))</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">return</span> sle;</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span>}</div>
</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span>} <span class="comment">// namespace detail</span></div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span>} <span class="comment">// namespace xrpl</span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> </div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span>} <span class="comment">// namespace detail</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span>} <span class="comment">// namespace xrpl</span></div>
<div class="ttc" id="aclassxrpl_1_1CountedObjects_1_1Counter_html"><div class="ttname"><a href="classxrpl_1_1CountedObjects_1_1Counter.html">xrpl::CountedObjects::Counter</a></div><div class="ttdoc">Implementation for CountedObject.</div><div class="ttdef"><b>Definition</b> <a href="CountedObject_8h_source.html#l00031">CountedObject.h:32</a></div></div>
<div class="ttc" id="aclassxrpl_1_1DigestAwareReadView_html_a7d12cead1582a53507cdfa7b9ab5569f"><div class="ttname"><a href="classxrpl_1_1DigestAwareReadView.html#a7d12cead1582a53507cdfa7b9ab5569f">xrpl::DigestAwareReadView::digest</a></div><div class="ttdeci">virtual std::optional&lt; digest_type &gt; digest(key_type const &amp;key) const =0</div><div class="ttdoc">Return the digest associated with the key.</div></div>
<div class="ttc" id="aclassxrpl_1_1ReadView_html_ae7286da5df8ee36f950cc43fd3a46806"><div class="ttname"><a href="classxrpl_1_1ReadView.html#ae7286da5df8ee36f950cc43fd3a46806">xrpl::ReadView::read</a></div><div class="ttdeci">virtual std::shared_ptr&lt; SLE const &gt; read(Keylet const &amp;k) const =0</div><div class="ttdoc">Return the state item associated with a key.</div></div>
@@ -156,7 +155,7 @@ $(document).ready(function() { init_codefold(0); });
<div class="ttc" id="aclassxrpl_1_1detail_1_1CachedViewImpl_html_a06eb9ccb97f31e08e89a267eb087cc8f"><div class="ttname"><a href="classxrpl_1_1detail_1_1CachedViewImpl.html#a06eb9ccb97f31e08e89a267eb087cc8f">xrpl::detail::CachedViewImpl::mutex_</a></div><div class="ttdeci">std::mutex mutex_</div><div class="ttdef"><b>Definition</b> <a href="CachedView_8h_source.html#l00020">CachedView.h:20</a></div></div>
<div class="ttc" id="aclassxrpl_1_1detail_1_1CachedViewImpl_html_a1e037eb2f88590d44b908a334a68aa71"><div class="ttname"><a href="classxrpl_1_1detail_1_1CachedViewImpl.html#a1e037eb2f88590d44b908a334a68aa71">xrpl::detail::CachedViewImpl::read</a></div><div class="ttdeci">std::shared_ptr&lt; SLE const &gt; read(Keylet const &amp;k) const override</div><div class="ttdoc">Return the state item associated with a key.</div><div class="ttdef"><b>Definition</b> <a href="CachedView_8cpp_source.html#l00014">CachedView.cpp:14</a></div></div>
<div class="ttc" id="aclassxrpl_1_1detail_1_1CachedViewImpl_html_a4fa4e65bb71cf6fe9ce6a9b1d75a1d87"><div class="ttname"><a href="classxrpl_1_1detail_1_1CachedViewImpl.html#a4fa4e65bb71cf6fe9ce6a9b1d75a1d87">xrpl::detail::CachedViewImpl::map_</a></div><div class="ttdeci">std::unordered_map&lt; key_type, uint256, hardened_hash&lt;&gt; &gt; map_</div><div class="ttdef"><b>Definition</b> <a href="CachedView_8h_source.html#l00021">CachedView.h:21</a></div></div>
<div class="ttc" id="aclassxrpl_1_1detail_1_1CachedViewImpl_html_a7b64b98421caa096db0936cc41bf42c1"><div class="ttname"><a href="classxrpl_1_1detail_1_1CachedViewImpl.html#a7b64b98421caa096db0936cc41bf42c1">xrpl::detail::CachedViewImpl::digest</a></div><div class="ttdeci">std::optional&lt; digest_type &gt; digest(key_type const &amp;key) const override</div><div class="ttdoc">Return the digest associated with the key.</div><div class="ttdef"><b>Definition</b> <a href="CachedView_8h_source.html#l00123">CachedView.h:123</a></div></div>
<div class="ttc" id="aclassxrpl_1_1detail_1_1CachedViewImpl_html_a7b64b98421caa096db0936cc41bf42c1"><div class="ttname"><a href="classxrpl_1_1detail_1_1CachedViewImpl.html#a7b64b98421caa096db0936cc41bf42c1">xrpl::detail::CachedViewImpl::digest</a></div><div class="ttdeci">std::optional&lt; digest_type &gt; digest(key_type const &amp;key) const override</div><div class="ttdoc">Return the digest associated with the key.</div><div class="ttdef"><b>Definition</b> <a href="CachedView_8h_source.html#l00120">CachedView.h:120</a></div></div>
<div class="ttc" id="aclassxrpl_1_1detail_1_1CachedViewImpl_html_a94affcb01d9788fe37a72e255777237f"><div class="ttname"><a href="classxrpl_1_1detail_1_1CachedViewImpl.html#a94affcb01d9788fe37a72e255777237f">xrpl::detail::CachedViewImpl::cache_</a></div><div class="ttdeci">CachedSLEs &amp; cache_</div><div class="ttdef"><b>Definition</b> <a href="CachedView_8h_source.html#l00019">CachedView.h:19</a></div></div>
<div class="ttc" id="aclassxrpl_1_1detail_1_1CachedViewImpl_html_aa4e2ba0c0dd89b688338368e857f67a4"><div class="ttname"><a href="classxrpl_1_1detail_1_1CachedViewImpl.html#aa4e2ba0c0dd89b688338368e857f67a4">xrpl::detail::CachedViewImpl::base_</a></div><div class="ttdeci">DigestAwareReadView const &amp; base_</div><div class="ttdef"><b>Definition</b> <a href="CachedView_8h_source.html#l00018">CachedView.h:18</a></div></div>
<div class="ttc" id="aclassxrpl_1_1detail_1_1CachedViewImpl_html_acad0a0b0630b7247ddc0d9bbaa1690e0"><div class="ttname"><a href="classxrpl_1_1detail_1_1CachedViewImpl.html#acad0a0b0630b7247ddc0d9bbaa1690e0">xrpl::detail::CachedViewImpl::exists</a></div><div class="ttdeci">bool exists(Keylet const &amp;k) const override</div><div class="ttdoc">Determine if a state item exists.</div><div class="ttdef"><b>Definition</b> <a href="CachedView_8cpp_source.html#l00008">CachedView.cpp:8</a></div></div>