mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-26 14:05:51 +00:00
deploy: 1a8eb5e6e3
This commit is contained in:
@@ -361,13 +361,13 @@ $(function() {
|
||||
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  }</div>
|
||||
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> }</div>
|
||||
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  </div>
|
||||
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="classripple_1_1SHAMap.html#a6978a86f8322bbd572ea34189beb00e5"> 294</a></span> SHAMap::walkMapParallel(</div>
|
||||
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="keywordtype">bool</span></div>
|
||||
<div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="classripple_1_1SHAMap.html#aa0fcb9d89a9f72e549c92cd38b92561b"> 294</a></span> SHAMap::walkMapParallel(</div>
|
||||
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<SHAMapMissingNode></a>& missingNodes,</div>
|
||||
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="keywordtype">int</span> maxMissing)<span class="keyword"> const</span></div>
|
||||
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="keyword"></span>{</div>
|
||||
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">if</span> (!root_->isInner()) <span class="comment">// root_ is only node, and we have it</span></div>
|
||||
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keywordflow">return</span>;</div>
|
||||
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  </div>
|
||||
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keyword">using</span> StackEntry = <a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr<SHAMapInnerNode></a>;</div>
|
||||
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/array.html">std::array<std::shared_ptr<SHAMapTreeNode></a>, 16> topChildren;</div>
|
||||
@@ -382,80 +382,102 @@ $(function() {
|
||||
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  }</div>
|
||||
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<std::thread></a> workers;</div>
|
||||
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  workers.<a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector/reserve.html">reserve</a>(16);</div>
|
||||
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  </div>
|
||||
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/array.html">std::array<std::stack<StackEntry, std::vector<StackEntry></a>>, 16> nodeStacks;</div>
|
||||
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<SHAMapMissingNode></a> exceptions;</div>
|
||||
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  exceptions.<a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector/reserve.html">reserve</a>(16);</div>
|
||||
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  </div>
|
||||
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="comment">// This mutex is used inside the worker threads to protect `missingNodes`</span></div>
|
||||
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="comment">// and `maxMissing` from race conditions</span></div>
|
||||
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/mutex.html">std::mutex</a> m;</div>
|
||||
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  </div>
|
||||
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> rootChildIndex = 0; rootChildIndex < 16; ++rootChildIndex)</div>
|
||||
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  {</div>
|
||||
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keyword">auto</span> <span class="keyword">const</span>& child = topChildren[rootChildIndex];</div>
|
||||
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="keywordflow">if</span> (!child || !child->isInner())</div>
|
||||
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="keywordflow">continue</span>;</div>
|
||||
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  </div>
|
||||
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  nodeStacks[rootChildIndex].push(</div>
|
||||
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  std::static_pointer_cast<SHAMapInnerNode>(child));</div>
|
||||
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  </div>
|
||||
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  JLOG(journal_.debug()) << <span class="stringliteral">"starting worker "</span> << rootChildIndex;</div>
|
||||
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  workers.<a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/thread.html">std::thread</a>(</div>
|
||||
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  [&m, &missingNodes, &maxMissing, <span class="keyword">this</span>](</div>
|
||||
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/stack.html">std::stack</a><StackEntry, <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<StackEntry></a>> nodeStack) {</div>
|
||||
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keywordflow">while</span> (!nodeStack.empty())</div>
|
||||
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  {</div>
|
||||
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  std::shared_ptr<SHAMapInnerNode> node =</div>
|
||||
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  std::move(nodeStack.top());</div>
|
||||
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  assert(node);</div>
|
||||
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  nodeStack.pop();</div>
|
||||
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  </div>
|
||||
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  for (int i = 0; i < 16; ++i)</div>
|
||||
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  {</div>
|
||||
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  if (node->isEmptyBranch(i))</div>
|
||||
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  continue;</div>
|
||||
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  std::shared_ptr<SHAMapTreeNode> nextNode =</div>
|
||||
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  descendNoStore(node, i);</div>
|
||||
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  </div>
|
||||
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  if (nextNode)</div>
|
||||
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  {</div>
|
||||
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  if (nextNode->isInner())</div>
|
||||
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  nodeStack.push(</div>
|
||||
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  std::static_pointer_cast<SHAMapInnerNode>(</div>
|
||||
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  nextNode));</div>
|
||||
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  }</div>
|
||||
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  else</div>
|
||||
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  {</div>
|
||||
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  std::lock_guard l{m};</div>
|
||||
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  missingNodes.emplace_back(</div>
|
||||
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  type_, node->getChildHash(i));</div>
|
||||
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  if (--maxMissing <= 0)</div>
|
||||
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  return;</div>
|
||||
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  }</div>
|
||||
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  }</div>
|
||||
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  }</div>
|
||||
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  },</div>
|
||||
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  std::move(nodeStacks[rootChildIndex])));</div>
|
||||
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  }</div>
|
||||
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  </div>
|
||||
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordflow">for</span> (<a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/thread.html">std::thread</a>& worker : workers)</div>
|
||||
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  worker.<a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/thread/join.html">join</a>();</div>
|
||||
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> }</div>
|
||||
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  </div>
|
||||
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> } <span class="comment">// namespace ripple</span></div>
|
||||
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/array.html">std::array<std::stack<StackEntry, std::vector<StackEntry></a>>, 16> nodeStacks;</div>
|
||||
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  </div>
|
||||
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="comment">// This mutex is used inside the worker threads to protect `missingNodes`</span></div>
|
||||
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="comment">// and `maxMissing` from race conditions</span></div>
|
||||
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/mutex.html">std::mutex</a> m;</div>
|
||||
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  </div>
|
||||
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> rootChildIndex = 0; rootChildIndex < 16; ++rootChildIndex)</div>
|
||||
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  {</div>
|
||||
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="keyword">auto</span> <span class="keyword">const</span>& child = topChildren[rootChildIndex];</div>
|
||||
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keywordflow">if</span> (!child || !child->isInner())</div>
|
||||
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="keywordflow">continue</span>;</div>
|
||||
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  </div>
|
||||
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  nodeStacks[rootChildIndex].push(</div>
|
||||
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  std::static_pointer_cast<SHAMapInnerNode>(child));</div>
|
||||
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  </div>
|
||||
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  JLOG(journal_.debug()) << <span class="stringliteral">"starting worker "</span> << rootChildIndex;</div>
|
||||
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  workers.<a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/thread.html">std::thread</a>(</div>
|
||||
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  [&m, &missingNodes, &maxMissing, &exceptions, <span class="keyword">this</span>](</div>
|
||||
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/stack.html">std::stack</a><StackEntry, <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector<StackEntry></a>> nodeStack) {</div>
|
||||
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="keywordflow">try</span></div>
|
||||
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  {</div>
|
||||
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <span class="keywordflow">while</span> (!nodeStack.empty())</div>
|
||||
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  {</div>
|
||||
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  std::shared_ptr<SHAMapInnerNode> node =</div>
|
||||
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  std::move(nodeStack.top());</div>
|
||||
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  assert(node);</div>
|
||||
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  nodeStack.pop();</div>
|
||||
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  </div>
|
||||
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  for (int i = 0; i < 16; ++i)</div>
|
||||
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  {</div>
|
||||
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  if (node->isEmptyBranch(i))</div>
|
||||
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  continue;</div>
|
||||
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  std::shared_ptr<SHAMapTreeNode> nextNode =</div>
|
||||
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  descendNoStore(node, i);</div>
|
||||
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  </div>
|
||||
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  if (nextNode)</div>
|
||||
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  {</div>
|
||||
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  if (nextNode->isInner())</div>
|
||||
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  nodeStack.push(std::static_pointer_cast<</div>
|
||||
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  SHAMapInnerNode>(nextNode));</div>
|
||||
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  }</div>
|
||||
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  else</div>
|
||||
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  {</div>
|
||||
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  std::lock_guard l{m};</div>
|
||||
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  missingNodes.emplace_back(</div>
|
||||
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  type_, node->getChildHash(i));</div>
|
||||
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  if (--maxMissing <= 0)</div>
|
||||
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  return;</div>
|
||||
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  }</div>
|
||||
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  }</div>
|
||||
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  }</div>
|
||||
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  }</div>
|
||||
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordflow">catch</span> (<a class="code" href="classripple_1_1SHAMapMissingNode.html">SHAMapMissingNode</a> <span class="keyword">const</span>& e)</div>
|
||||
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  {</div>
|
||||
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> l(m);</div>
|
||||
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  exceptions.<a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(e);</div>
|
||||
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  }</div>
|
||||
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  },</div>
|
||||
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  std::move(nodeStacks[rootChildIndex])));</div>
|
||||
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  }</div>
|
||||
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  </div>
|
||||
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordflow">for</span> (<a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/thread.html">std::thread</a>& worker : workers)</div>
|
||||
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  worker.<a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/thread/join.html">join</a>();</div>
|
||||
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  </div>
|
||||
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> l(m);</div>
|
||||
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keywordflow">if</span> (exceptions.empty())</div>
|
||||
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/io/basic_stringstream.html">std::stringstream</a> ss;</div>
|
||||
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  ss << <span class="stringliteral">"Exception(s) in ledger load: "</span>;</div>
|
||||
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>& e : exceptions)</div>
|
||||
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  ss << e.what() << <span class="stringliteral">", "</span>;</div>
|
||||
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  JLOG(journal_.error()) << ss.<a class="codeRef" href="http://en.cppreference.com/w/cpp/io/basic_stringstream/str.html">str</a>();</div>
|
||||
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> }</div>
|
||||
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  </div>
|
||||
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> } <span class="comment">// namespace ripple</span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassripple_1_1SHAMap_html_aa36f13285448ce66cdc04a0b7f4d8af7"><div class="ttname"><a href="classripple_1_1SHAMap.html#aa36f13285448ce66cdc04a0b7f4d8af7">ripple::SHAMap::isValid</a></div><div class="ttdeci">bool isValid() const</div><div class="ttdef"><b>Definition:</b> <a href="SHAMap_8h_source.html#l00584">SHAMap.h:584</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1SHAMap_html_aa36f13285448ce66cdc04a0b7f4d8af7"><div class="ttname"><a href="classripple_1_1SHAMap.html#aa36f13285448ce66cdc04a0b7f4d8af7">ripple::SHAMap::isValid</a></div><div class="ttdeci">bool isValid() const</div><div class="ttdef"><b>Definition:</b> <a href="SHAMap_8h_source.html#l00611">SHAMap.h:611</a></div></div>
|
||||
<div class="ttc" id="ashared_ptr_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</a></div><div class="ttdoc">STL class.</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1SHAMap_html_a9b0dff3c3bf35efc30104c93becdc079"><div class="ttname"><a href="classripple_1_1SHAMap.html#a9b0dff3c3bf35efc30104c93becdc079">ripple::SHAMap::getHash</a></div><div class="ttdeci">SHAMapHash getHash() const</div><div class="ttdef"><b>Definition:</b> <a href="SHAMap_8cpp_source.html#l00783">SHAMap.cpp:783</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1SHAMap_html_a9b0dff3c3bf35efc30104c93becdc079"><div class="ttname"><a href="classripple_1_1SHAMap.html#a9b0dff3c3bf35efc30104c93becdc079">ripple::SHAMap::getHash</a></div><div class="ttdeci">SHAMapHash getHash() const</div><div class="ttdef"><b>Definition:</b> <a href="SHAMap_8cpp_source.html#l00845">SHAMap.cpp:845</a></div></div>
|
||||
<div class="ttc" id="apair_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a></div></div>
|
||||
<div class="ttc" id="areserve_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/reserve.html">std::vector::reserve</a></div><div class="ttdeci">T reserve(T... args)</div></div>
|
||||
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/vector.html">vector</a></div></div>
|
||||
<div class="ttc" id="astack_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/stack.html">stack</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1SHAMap_html_a122cf539ce917e7a322cfb41c8db3f57"><div class="ttname"><a href="classripple_1_1SHAMap.html#a122cf539ce917e7a322cfb41c8db3f57">ripple::SHAMap::peekItem</a></div><div class="ttdeci">std::shared_ptr< SHAMapItem const > const & peekItem(uint256 const &id) const</div><div class="ttdef"><b>Definition:</b> <a href="SHAMap_8cpp_source.html#l00561">SHAMap.cpp:561</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1SHAMap_html_a122cf539ce917e7a322cfb41c8db3f57"><div class="ttname"><a href="classripple_1_1SHAMap.html#a122cf539ce917e7a322cfb41c8db3f57">ripple::SHAMap::peekItem</a></div><div class="ttdeci">std::shared_ptr< SHAMapItem const > const & peekItem(uint256 const &id) const</div><div class="ttdef"><b>Definition:</b> <a href="SHAMap_8cpp_source.html#l00586">SHAMap.cpp:586</a></div></div>
|
||||
<div class="ttc" id="abasic_stringstream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_stringstream.html">std::stringstream</a></div><div class="ttdoc">STL class.</div></div>
|
||||
<div class="ttc" id="alock_guard_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a></div><div class="ttdoc">STL class.</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1SHAMapTreeNode_html_a7aff7622ccd8ffd0be9367518b39436e"><div class="ttname"><a href="classripple_1_1SHAMapTreeNode.html#a7aff7622ccd8ffd0be9367518b39436e">ripple::SHAMapTreeNode::isInner</a></div><div class="ttdeci">virtual bool isInner() const =0</div><div class="ttdoc">Determines if this is an inner node.</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1SHAMapLeafNode_html"><div class="ttname"><a href="classripple_1_1SHAMapLeafNode.html">ripple::SHAMapLeafNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SHAMapLeafNode_8h_source.html#l00032">SHAMapLeafNode.h:32</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1SHAMapMissingNode_html"><div class="ttname"><a href="classripple_1_1SHAMapMissingNode.html">ripple::SHAMapMissingNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SHAMapMissingNode_8h_source.html#l00055">SHAMapMissingNode.h:55</a></div></div>
|
||||
<div class="ttc" id="apush_back_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">std::vector::push_back</a></div><div class="ttdeci">T push_back(T... args)</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1base__uint_html"><div class="ttname"><a href="classripple_1_1base__uint.html">ripple::base_uint< 256 ></a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1SHAMap_html_af97eaa11f0ba83945729dc0f5af2b193"><div class="ttname"><a href="classripple_1_1SHAMap.html#af97eaa11f0ba83945729dc0f5af2b193">ripple::SHAMap::DeltaRef</a></div><div class="ttdeci">std::pair< std::shared_ptr< SHAMapItem const > const &, std::shared_ptr< SHAMapItem const > const & > DeltaRef</div><div class="ttdef"><b>Definition:</b> <a href="SHAMap_8h_source.html#l00351">SHAMap.h:351</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1SHAMap_html_af97eaa11f0ba83945729dc0f5af2b193"><div class="ttname"><a href="classripple_1_1SHAMap.html#af97eaa11f0ba83945729dc0f5af2b193">ripple::SHAMap::DeltaRef</a></div><div class="ttdeci">std::pair< std::shared_ptr< SHAMapItem const > const &, std::shared_ptr< SHAMapItem const > const & > DeltaRef</div><div class="ttdef"><b>Definition:</b> <a href="SHAMap_8h_source.html#l00359">SHAMap.h:359</a></div></div>
|
||||
<div class="ttc" id="athread_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/thread/thread.html">std::thread</a></div><div class="ttdoc">STL class.</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1SHAMapInnerNode_html"><div class="ttname"><a href="classripple_1_1SHAMapInnerNode.html">ripple::SHAMapInnerNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SHAMapInnerNode_8h_source.html#l00039">SHAMapInnerNode.h:39</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1SHAMap_html"><div class="ttname"><a href="classripple_1_1SHAMap.html">ripple::SHAMap</a></div><div class="ttdoc">A SHAMap is both a radix tree with a fan-out of 16 and a Merkle tree.</div><div class="ttdef"><b>Definition:</b> <a href="SHAMap_8h_source.html#l00095">SHAMap.h:95</a></div></div>
|
||||
@@ -471,6 +493,7 @@ $(function() {
|
||||
<div class="ttc" id="aempty_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/stack/empty.html">std::stack::empty</a></div><div class="ttdeci">T empty(T... args)</div></div>
|
||||
<div class="ttc" id="apush_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/stack/push.html">std::stack::push</a></div><div class="ttdeci">T push(T... args)</div></div>
|
||||
<div class="ttc" id="amutex_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/thread/mutex.html">std::mutex</a></div><div class="ttdoc">STL class.</div></div>
|
||||
<div class="ttc" id="astr_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_stringstream/str.html">std::stringstream::str</a></div><div class="ttdeci">T str(T... args)</div></div>
|
||||
<div class="ttc" id="amake_pair_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html">std::make_pair</a></div><div class="ttdeci">T make_pair(T... args)</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1SHAMap_html_ae328c6d5cac6d3aea7054a9c7d2ffb5b"><div class="ttname"><a href="classripple_1_1SHAMap.html#ae328c6d5cac6d3aea7054a9c7d2ffb5b">ripple::SHAMap::walkBranch</a></div><div class="ttdeci">bool walkBranch(SHAMapTreeNode *node, std::shared_ptr< SHAMapItem const > const &otherMapItem, bool isFirstMap, Delta &differences, int &maxCount) const</div><div class="ttdef"><b>Definition:</b> <a href="SHAMapDelta_8cpp_source.html#l00038">SHAMapDelta.cpp:38</a></div></div>
|
||||
<div class="ttc" id="ajoin_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/thread/thread/join.html">std::thread::join</a></div><div class="ttdeci">T join(T... args)</div></div>
|
||||
|
||||
Reference in New Issue
Block a user