mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-24 04:55:52 +00:00
deploy: fe05b8c4fe
This commit is contained in:
@@ -487,188 +487,189 @@ $(function() {
|
||||
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  }</div>
|
||||
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  </div>
|
||||
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="comment">// Make lambdas mutable captured vars can be moved from</span></div>
|
||||
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keyword">auto</span> wrapper = <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a7a73b2116e2f13962a7f5527a998c618">jobCounter_</a>.<a class="code" href="classripple_1_1ClosureCounter.html#a5c4e424f66edeb721a59fd151fed604e">wrap</a>([=,</div>
|
||||
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  dstPath = std::move(dstPath)]() <span class="keyword">mutable</span> {</div>
|
||||
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#aa603cda3c95e978af655f4eb4b86fe8c">stopping_</a>)</div>
|
||||
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <span class="keywordflow">return</span>;</div>
|
||||
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keyword">auto</span> wrapper =</div>
|
||||
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a7a73b2116e2f13962a7f5527a998c618">jobCounter_</a>.<a class="code" href="classripple_1_1ClosureCounter.html#a5c4e424f66edeb721a59fd151fed604e">wrap</a>([=, <span class="keyword">this</span>, dstPath = std::move(dstPath)]() <span class="keyword">mutable</span> {</div>
|
||||
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#aa603cda3c95e978af655f4eb4b86fe8c">stopping_</a>)</div>
|
||||
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <span class="keywordflow">return</span>;</div>
|
||||
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  </div>
|
||||
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="comment">// If not synced then defer and retry</span></div>
|
||||
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keyword">auto</span> <span class="keyword">const</span> mode{<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#ad3c425217141170c27ce54597febe7f5">app_</a>.<a class="code" href="classripple_1_1Application.html#a7c963aa5c47180b24897ff6b5622e5bc">getOPs</a>().getOperatingMode()};</div>
|
||||
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keywordflow">if</span> (mode != <a class="code" href="namespaceripple.html#a597325d7385ff9c19686e14e5bead510aba7de5bc6888294e5884b024a4c894f1">OperatingMode::FULL</a>)</div>
|
||||
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  {</div>
|
||||
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock(<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a236fb42ce35edfad5e0f61f1405bb40a">m_</a>);</div>
|
||||
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#af7644eb39d61a4ce3ad5c26fa8fa34a4">timer_</a>.expires_from_now(<span class="keyword">static_cast<</span><a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::seconds</a><span class="keyword">></span>(</div>
|
||||
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  (<span class="keyword">static_cast<</span><a class="codeRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a><span class="keyword">></span>(<a class="code" href="namespaceripple.html#a597325d7385ff9c19686e14e5bead510aba7de5bc6888294e5884b024a4c894f1">OperatingMode::FULL</a>) -</div>
|
||||
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keyword">static_cast<</span><a class="codeRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a><span class="keyword">></span>(mode)) *</div>
|
||||
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  10));</div>
|
||||
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="comment">// If not synced then defer and retry</span></div>
|
||||
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keyword">auto</span> <span class="keyword">const</span> mode{<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#ad3c425217141170c27ce54597febe7f5">app_</a>.<a class="code" href="classripple_1_1Application.html#a7c963aa5c47180b24897ff6b5622e5bc">getOPs</a>().getOperatingMode()};</div>
|
||||
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keywordflow">if</span> (mode != <a class="code" href="namespaceripple.html#a597325d7385ff9c19686e14e5bead510aba7de5bc6888294e5884b024a4c894f1">OperatingMode::FULL</a>)</div>
|
||||
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  {</div>
|
||||
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock(<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a236fb42ce35edfad5e0f61f1405bb40a">m_</a>);</div>
|
||||
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#af7644eb39d61a4ce3ad5c26fa8fa34a4">timer_</a>.expires_from_now(<span class="keyword">static_cast<</span><a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::seconds</a><span class="keyword">></span>(</div>
|
||||
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  (<span class="keyword">static_cast<</span><a class="codeRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a><span class="keyword">></span>(<a class="code" href="namespaceripple.html#a597325d7385ff9c19686e14e5bead510aba7de5bc6888294e5884b024a4c894f1">OperatingMode::FULL</a>) -</div>
|
||||
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keyword">static_cast<</span><a class="codeRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a><span class="keyword">></span>(mode)) *</div>
|
||||
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  10));</div>
|
||||
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  </div>
|
||||
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keyword">auto</span> wrapper = <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a22d8c0f551d59bfff5fe3463da5cb247">timerCounter_</a>.<a class="code" href="classripple_1_1ClosureCounter.html#a5c4e424f66edeb721a59fd151fed604e">wrap</a>(</div>
|
||||
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  [=, dstPath = std::move(dstPath)](</div>
|
||||
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  boost::system::error_code <span class="keyword">const</span>& ec) <span class="keyword">mutable</span> {</div>
|
||||
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <span class="keywordflow">if</span> (ec != boost::asio::error::operation_aborted)</div>
|
||||
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#aa49e1c3f0afd83dea8b99ad37e785f04">complete</a>(std::move(dstPath));</div>
|
||||
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  });</div>
|
||||
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keyword">auto</span> wrapper = <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a22d8c0f551d59bfff5fe3463da5cb247">timerCounter_</a>.<a class="code" href="classripple_1_1ClosureCounter.html#a5c4e424f66edeb721a59fd151fed604e">wrap</a>(</div>
|
||||
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  [=, <span class="keyword">this</span>, dstPath = std::move(dstPath)](</div>
|
||||
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  boost::system::error_code <span class="keyword">const</span>& ec) <span class="keyword">mutable</span> {</div>
|
||||
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <span class="keywordflow">if</span> (ec != boost::asio::error::operation_aborted)</div>
|
||||
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#aa49e1c3f0afd83dea8b99ad37e785f04">complete</a>(std::move(dstPath));</div>
|
||||
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  });</div>
|
||||
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  </div>
|
||||
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keywordflow">if</span> (!wrapper)</div>
|
||||
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#accc0befbd62fead5da3a51dce1993990">onClosureFailed</a>(</div>
|
||||
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="stringliteral">"failed to wrap closure for operating mode timer"</span>, lock);</div>
|
||||
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#af7644eb39d61a4ce3ad5c26fa8fa34a4">timer_</a>.async_wait(*wrapper);</div>
|
||||
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  }</div>
|
||||
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  {</div>
|
||||
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a0962cbf9e2d4b7a067a85676ad317c1f">process</a>(dstPath);</div>
|
||||
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock(<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a236fb42ce35edfad5e0f61f1405bb40a">m_</a>);</div>
|
||||
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a29c53e2203380b6def0818dc887964e2">removeAndProceed</a>(lock);</div>
|
||||
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  }</div>
|
||||
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  });</div>
|
||||
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  </div>
|
||||
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="keywordflow">if</span> (!wrapper)</div>
|
||||
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  {</div>
|
||||
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#aa603cda3c95e978af655f4eb4b86fe8c">stopping_</a>)</div>
|
||||
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <span class="keywordflow">return</span>;</div>
|
||||
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  </div>
|
||||
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  JLOG(<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a0cd1a67c3837025faf68bc5540c98294">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a49b0713e65bb8e2c51b76fbf16252afe">error</a>()) << <span class="stringliteral">"failed to wrap closure for process()"</span>;</div>
|
||||
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  </div>
|
||||
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock(<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a236fb42ce35edfad5e0f61f1405bb40a">m_</a>);</div>
|
||||
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a29c53e2203380b6def0818dc887964e2">removeAndProceed</a>(lock);</div>
|
||||
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  }</div>
|
||||
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  </div>
|
||||
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="comment">// Process in another thread to not hold up the IO service</span></div>
|
||||
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#ad3c425217141170c27ce54597febe7f5">app_</a>.<a class="code" href="classripple_1_1Application.html#a860be08979e27d8c6f37f722f996ba6c">getJobQueue</a>().<a class="code" href="classripple_1_1JobQueue.html#af5e34187d55aa58e551dc196aaf1ec25">addJob</a>(<a class="code" href="namespaceripple.html#ae0f54f8ce649d639bf3e2b295347e17aac906d2c5f143cf8a27542897f78e7ee5">jtCLIENT_SHARD</a>, <span class="stringliteral">"ShardArchiveHandler"</span>, *wrapper);</div>
|
||||
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> }</div>
|
||||
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  </div>
|
||||
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00471"></a><span class="lineno"><a class="line" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a0962cbf9e2d4b7a067a85676ad317c1f"> 471</a></span> <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a0962cbf9e2d4b7a067a85676ad317c1f">ShardArchiveHandler::process</a>(path <span class="keyword">const</span>& dstPath)</div>
|
||||
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> {</div>
|
||||
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> shardIndex;</div>
|
||||
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  {</div>
|
||||
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock(<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a236fb42ce35edfad5e0f61f1405bb40a">m_</a>);</div>
|
||||
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  shardIndex = <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#ab84c25aafda27b95933b5c1cbc68f0dd">archives_</a>.begin()->first;</div>
|
||||
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  }</div>
|
||||
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  </div>
|
||||
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <span class="keyword">auto</span> <span class="keyword">const</span> shardDir{dstPath.parent_path() / <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/to_string.html">std::to_string</a>(shardIndex)};</div>
|
||||
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <span class="keywordflow">try</span></div>
|
||||
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  {</div>
|
||||
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="comment">// Extract the downloaded archive</span></div>
|
||||
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <a class="code" href="namespaceripple.html#a7f1e5ab90444ff67cddc760563d127b1">extractTarLz4</a>(dstPath, dstPath.parent_path());</div>
|
||||
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  </div>
|
||||
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="comment">// The extracted root directory name must match the shard index</span></div>
|
||||
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keywordflow">if</span> (!is_directory(shardDir))</div>
|
||||
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  {</div>
|
||||
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  JLOG(<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a0cd1a67c3837025faf68bc5540c98294">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a49b0713e65bb8e2c51b76fbf16252afe">error</a>()) << <span class="stringliteral">"Shard "</span> << shardIndex</div>
|
||||
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  << <span class="stringliteral">" mismatches archive shard directory"</span>;</div>
|
||||
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <span class="keywordflow">return</span>;</div>
|
||||
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  }</div>
|
||||
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  }</div>
|
||||
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <span class="keywordflow">catch</span> (<a class="codeRef" href="http://en.cppreference.com/w/cpp/error/exception.html">std::exception</a> <span class="keyword">const</span>& e)</div>
|
||||
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  {</div>
|
||||
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  JLOG(<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a0cd1a67c3837025faf68bc5540c98294">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a49b0713e65bb8e2c51b76fbf16252afe">error</a>()) << <span class="stringliteral">"exception: "</span> << e.<a class="codeRef" href="http://en.cppreference.com/w/cpp/error/exception/what.html">what</a>();</div>
|
||||
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keywordflow">return</span>;</div>
|
||||
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  }</div>
|
||||
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  </div>
|
||||
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  <span class="comment">// Import the shard into the shard store</span></div>
|
||||
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="keywordflow">if</span> (!<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#ad3c425217141170c27ce54597febe7f5">app_</a>.<a class="code" href="classripple_1_1Application.html#a5ea4991eb9c4d29e8de734016293ba33">getShardStore</a>()-><a class="code" href="classripple_1_1NodeStore_1_1DatabaseShard.html#ae86f08a36583502b9050a087c95ba1b6">importShard</a>(shardIndex, shardDir))</div>
|
||||
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  {</div>
|
||||
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  JLOG(<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a0cd1a67c3837025faf68bc5540c98294">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a49b0713e65bb8e2c51b76fbf16252afe">error</a>()) << <span class="stringliteral">"Importing shard "</span> << shardIndex;</div>
|
||||
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="keywordflow">return</span>;</div>
|
||||
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  }</div>
|
||||
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  </div>
|
||||
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  JLOG(<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a0cd1a67c3837025faf68bc5540c98294">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">debug</a>()) << <span class="stringliteral">"Shard "</span> << shardIndex << <span class="stringliteral">" downloaded and imported"</span>;</div>
|
||||
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> }</div>
|
||||
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  </div>
|
||||
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a96be731243ad4013480bcc9e56502924"> 510</a></span> <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a96be731243ad4013480bcc9e56502924">ShardArchiveHandler::remove</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard<std::mutex></a> <span class="keyword">const</span>&)</div>
|
||||
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> {</div>
|
||||
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#ae753e220dc179447da97185d3d1fc97a">verificationScheduler_</a>.<a class="code" href="classripple_1_1RPC_1_1ShardVerificationScheduler.html#a33b34d5ee1010717b41810e3413323f1">reset</a>();</div>
|
||||
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  </div>
|
||||
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <span class="keyword">auto</span> <span class="keyword">const</span> shardIndex{<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#ab84c25aafda27b95933b5c1cbc68f0dd">archives_</a>.begin()->first};</div>
|
||||
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#ad3c425217141170c27ce54597febe7f5">app_</a>.<a class="code" href="classripple_1_1Application.html#a5ea4991eb9c4d29e8de734016293ba33">getShardStore</a>()-><a class="code" href="classripple_1_1NodeStore_1_1DatabaseShard.html#a435483044cad610e25db707999b4544a">removePreShard</a>(shardIndex);</div>
|
||||
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#ab84c25aafda27b95933b5c1cbc68f0dd">archives_</a>.erase(shardIndex);</div>
|
||||
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  </div>
|
||||
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <a class="code" href="namespaceripple.html#a7a3b3ad3c32efd30c4610177b011638e">deleteFromArchiveDB</a>(*<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a4c72dbc6be97c8acfd0883464d8f3bb8">sqlDB_</a>, shardIndex);</div>
|
||||
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  </div>
|
||||
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <span class="keyword">auto</span> <span class="keyword">const</span> dstDir{<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a3ff9ae0459edf9d27608ecce2dbf7e66">downloadDir_</a> / <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/to_string.html">std::to_string</a>(shardIndex)};</div>
|
||||
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="keywordflow">try</span></div>
|
||||
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  {</div>
|
||||
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  remove_all(dstDir);</div>
|
||||
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  }</div>
|
||||
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <span class="keywordflow">catch</span> (<a class="codeRef" href="http://en.cppreference.com/w/cpp/error/exception.html">std::exception</a> <span class="keyword">const</span>& e)</div>
|
||||
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  {</div>
|
||||
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  JLOG(<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a0cd1a67c3837025faf68bc5540c98294">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a49b0713e65bb8e2c51b76fbf16252afe">error</a>()) << <span class="stringliteral">"exception: "</span> << e.<a class="codeRef" href="http://en.cppreference.com/w/cpp/error/exception/what.html">what</a>();</div>
|
||||
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  }</div>
|
||||
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> }</div>
|
||||
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  </div>
|
||||
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00532"></a><span class="lineno"><a class="line" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a7d5cfda0a96ee124cdf366b2018c5d33"> 532</a></span> <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a7d5cfda0a96ee124cdf366b2018c5d33">ShardArchiveHandler::doRelease</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard<std::mutex></a> <span class="keyword">const</span>&)</div>
|
||||
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> {</div>
|
||||
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#af7644eb39d61a4ce3ad5c26fa8fa34a4">timer_</a>.cancel();</div>
|
||||
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>& ar : <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#ab84c25aafda27b95933b5c1cbc68f0dd">archives_</a>)</div>
|
||||
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#ad3c425217141170c27ce54597febe7f5">app_</a>.<a class="code" href="classripple_1_1Application.html#a5ea4991eb9c4d29e8de734016293ba33">getShardStore</a>()-><a class="code" href="classripple_1_1NodeStore_1_1DatabaseShard.html#a435483044cad610e25db707999b4544a">removePreShard</a>(ar.first);</div>
|
||||
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#ab84c25aafda27b95933b5c1cbc68f0dd">archives_</a>.clear();</div>
|
||||
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  </div>
|
||||
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <a class="code" href="namespaceripple.html#aa75536690380592aa104ab1f9df0d1a1">dropArchiveDB</a>(*<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a4c72dbc6be97c8acfd0883464d8f3bb8">sqlDB_</a>);</div>
|
||||
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  </div>
|
||||
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a4c72dbc6be97c8acfd0883464d8f3bb8">sqlDB_</a>.reset();</div>
|
||||
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  </div>
|
||||
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <span class="comment">// Remove temp root download directory</span></div>
|
||||
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  <span class="keywordflow">try</span></div>
|
||||
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  {</div>
|
||||
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  remove_all(<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a3ff9ae0459edf9d27608ecce2dbf7e66">downloadDir_</a>);</div>
|
||||
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  }</div>
|
||||
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <span class="keywordflow">catch</span> (<a class="codeRef" href="http://en.cppreference.com/w/cpp/error/exception.html">std::exception</a> <span class="keyword">const</span>& e)</div>
|
||||
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  {</div>
|
||||
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  JLOG(<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a0cd1a67c3837025faf68bc5540c98294">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a49b0713e65bb8e2c51b76fbf16252afe">error</a>()) << <span class="stringliteral">"exception: "</span> << e.<a class="codeRef" href="http://en.cppreference.com/w/cpp/error/exception/what.html">what</a>()</div>
|
||||
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  << <span class="stringliteral">" in function: "</span> << __func__;</div>
|
||||
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  }</div>
|
||||
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  </div>
|
||||
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a34d3fabb2e65c099599876069e7e7b0e">downloader_</a>.reset();</div>
|
||||
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a050e467324d568c212779f599613a0a7">process_</a> = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> }</div>
|
||||
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  </div>
|
||||
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> <span class="keywordtype">bool</span></div>
|
||||
<div class="line"><a name="l00559"></a><span class="lineno"><a class="line" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#accc0befbd62fead5da3a51dce1993990"> 559</a></span> <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#accc0befbd62fead5da3a51dce1993990">ShardArchiveHandler::onClosureFailed</a>(</div>
|
||||
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>& errorMsg,</div>
|
||||
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard<std::mutex></a> <span class="keyword">const</span>& lock)</div>
|
||||
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> {</div>
|
||||
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#aa603cda3c95e978af655f4eb4b86fe8c">stopping_</a>)</div>
|
||||
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  </div>
|
||||
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  JLOG(<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a0cd1a67c3837025faf68bc5540c98294">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a49b0713e65bb8e2c51b76fbf16252afe">error</a>()) << errorMsg;</div>
|
||||
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  </div>
|
||||
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <span class="keywordflow">return</span> <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a29c53e2203380b6def0818dc887964e2">removeAndProceed</a>(lock);</div>
|
||||
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> }</div>
|
||||
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  </div>
|
||||
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> <span class="keywordtype">bool</span></div>
|
||||
<div class="line"><a name="l00572"></a><span class="lineno"><a class="line" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a29c53e2203380b6def0818dc887964e2"> 572</a></span> <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a29c53e2203380b6def0818dc887964e2">ShardArchiveHandler::removeAndProceed</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard<std::mutex></a> <span class="keyword">const</span>& lock)</div>
|
||||
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> {</div>
|
||||
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a96be731243ad4013480bcc9e56502924">remove</a>(lock);</div>
|
||||
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <span class="keywordflow">return</span> <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#aa245784a9b0380252756a6f44b07eda0">next</a>(lock);</div>
|
||||
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> }</div>
|
||||
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  </div>
|
||||
<div class="line"><a name="l00578"></a><span class="lineno"><a class="line" href="classripple_1_1RPC_1_1RecoveryHandler.html#a13c5f2c42cd06e623f17ea4997e7a509"> 578</a></span> <a class="code" href="classripple_1_1RPC_1_1RecoveryHandler.html#a13c5f2c42cd06e623f17ea4997e7a509">RecoveryHandler::RecoveryHandler</a>(<a class="code" href="classripple_1_1Application.html">Application</a>& app) : <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html">ShardArchiveHandler</a>(app)</div>
|
||||
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> {</div>
|
||||
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> }</div>
|
||||
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  </div>
|
||||
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> } <span class="comment">// namespace RPC</span></div>
|
||||
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> } <span class="comment">// namespace ripple</span></div>
|
||||
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keywordflow">if</span> (!wrapper)</div>
|
||||
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#accc0befbd62fead5da3a51dce1993990">onClosureFailed</a>(</div>
|
||||
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="stringliteral">"failed to wrap closure for operating mode timer"</span>,</div>
|
||||
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  lock);</div>
|
||||
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#af7644eb39d61a4ce3ad5c26fa8fa34a4">timer_</a>.async_wait(*wrapper);</div>
|
||||
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  }</div>
|
||||
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  {</div>
|
||||
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a0962cbf9e2d4b7a067a85676ad317c1f">process</a>(dstPath);</div>
|
||||
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock(<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a236fb42ce35edfad5e0f61f1405bb40a">m_</a>);</div>
|
||||
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a29c53e2203380b6def0818dc887964e2">removeAndProceed</a>(lock);</div>
|
||||
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  }</div>
|
||||
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  });</div>
|
||||
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  </div>
|
||||
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keywordflow">if</span> (!wrapper)</div>
|
||||
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  {</div>
|
||||
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#aa603cda3c95e978af655f4eb4b86fe8c">stopping_</a>)</div>
|
||||
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <span class="keywordflow">return</span>;</div>
|
||||
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  </div>
|
||||
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  JLOG(<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a0cd1a67c3837025faf68bc5540c98294">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a49b0713e65bb8e2c51b76fbf16252afe">error</a>()) << <span class="stringliteral">"failed to wrap closure for process()"</span>;</div>
|
||||
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  </div>
|
||||
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock(<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a236fb42ce35edfad5e0f61f1405bb40a">m_</a>);</div>
|
||||
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a29c53e2203380b6def0818dc887964e2">removeAndProceed</a>(lock);</div>
|
||||
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  }</div>
|
||||
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  </div>
|
||||
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="comment">// Process in another thread to not hold up the IO service</span></div>
|
||||
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#ad3c425217141170c27ce54597febe7f5">app_</a>.<a class="code" href="classripple_1_1Application.html#a860be08979e27d8c6f37f722f996ba6c">getJobQueue</a>().<a class="code" href="classripple_1_1JobQueue.html#af5e34187d55aa58e551dc196aaf1ec25">addJob</a>(<a class="code" href="namespaceripple.html#ae0f54f8ce649d639bf3e2b295347e17aac906d2c5f143cf8a27542897f78e7ee5">jtCLIENT_SHARD</a>, <span class="stringliteral">"ShardArchiveHandler"</span>, *wrapper);</div>
|
||||
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> }</div>
|
||||
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  </div>
|
||||
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00472"></a><span class="lineno"><a class="line" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a0962cbf9e2d4b7a067a85676ad317c1f"> 472</a></span> <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a0962cbf9e2d4b7a067a85676ad317c1f">ShardArchiveHandler::process</a>(path <span class="keyword">const</span>& dstPath)</div>
|
||||
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> {</div>
|
||||
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> shardIndex;</div>
|
||||
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  {</div>
|
||||
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock(<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a236fb42ce35edfad5e0f61f1405bb40a">m_</a>);</div>
|
||||
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  shardIndex = <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#ab84c25aafda27b95933b5c1cbc68f0dd">archives_</a>.begin()->first;</div>
|
||||
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  }</div>
|
||||
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  </div>
|
||||
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <span class="keyword">auto</span> <span class="keyword">const</span> shardDir{dstPath.parent_path() / <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/to_string.html">std::to_string</a>(shardIndex)};</div>
|
||||
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="keywordflow">try</span></div>
|
||||
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  {</div>
|
||||
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <span class="comment">// Extract the downloaded archive</span></div>
|
||||
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <a class="code" href="namespaceripple.html#a7f1e5ab90444ff67cddc760563d127b1">extractTarLz4</a>(dstPath, dstPath.parent_path());</div>
|
||||
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  </div>
|
||||
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="comment">// The extracted root directory name must match the shard index</span></div>
|
||||
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="keywordflow">if</span> (!is_directory(shardDir))</div>
|
||||
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  {</div>
|
||||
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  JLOG(<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a0cd1a67c3837025faf68bc5540c98294">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a49b0713e65bb8e2c51b76fbf16252afe">error</a>()) << <span class="stringliteral">"Shard "</span> << shardIndex</div>
|
||||
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  << <span class="stringliteral">" mismatches archive shard directory"</span>;</div>
|
||||
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="keywordflow">return</span>;</div>
|
||||
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  }</div>
|
||||
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  }</div>
|
||||
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keywordflow">catch</span> (<a class="codeRef" href="http://en.cppreference.com/w/cpp/error/exception.html">std::exception</a> <span class="keyword">const</span>& e)</div>
|
||||
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  {</div>
|
||||
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  JLOG(<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a0cd1a67c3837025faf68bc5540c98294">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a49b0713e65bb8e2c51b76fbf16252afe">error</a>()) << <span class="stringliteral">"exception: "</span> << e.<a class="codeRef" href="http://en.cppreference.com/w/cpp/error/exception/what.html">what</a>();</div>
|
||||
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <span class="keywordflow">return</span>;</div>
|
||||
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  }</div>
|
||||
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  </div>
|
||||
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="comment">// Import the shard into the shard store</span></div>
|
||||
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  <span class="keywordflow">if</span> (!<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#ad3c425217141170c27ce54597febe7f5">app_</a>.<a class="code" href="classripple_1_1Application.html#a5ea4991eb9c4d29e8de734016293ba33">getShardStore</a>()-><a class="code" href="classripple_1_1NodeStore_1_1DatabaseShard.html#ae86f08a36583502b9050a087c95ba1b6">importShard</a>(shardIndex, shardDir))</div>
|
||||
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  {</div>
|
||||
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  JLOG(<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a0cd1a67c3837025faf68bc5540c98294">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a49b0713e65bb8e2c51b76fbf16252afe">error</a>()) << <span class="stringliteral">"Importing shard "</span> << shardIndex;</div>
|
||||
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <span class="keywordflow">return</span>;</div>
|
||||
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  }</div>
|
||||
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  </div>
|
||||
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  JLOG(<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a0cd1a67c3837025faf68bc5540c98294">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">debug</a>()) << <span class="stringliteral">"Shard "</span> << shardIndex << <span class="stringliteral">" downloaded and imported"</span>;</div>
|
||||
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> }</div>
|
||||
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  </div>
|
||||
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00511"></a><span class="lineno"><a class="line" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a96be731243ad4013480bcc9e56502924"> 511</a></span> <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a96be731243ad4013480bcc9e56502924">ShardArchiveHandler::remove</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard<std::mutex></a> <span class="keyword">const</span>&)</div>
|
||||
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> {</div>
|
||||
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#ae753e220dc179447da97185d3d1fc97a">verificationScheduler_</a>.<a class="code" href="classripple_1_1RPC_1_1ShardVerificationScheduler.html#a33b34d5ee1010717b41810e3413323f1">reset</a>();</div>
|
||||
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  </div>
|
||||
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <span class="keyword">auto</span> <span class="keyword">const</span> shardIndex{<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#ab84c25aafda27b95933b5c1cbc68f0dd">archives_</a>.begin()->first};</div>
|
||||
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#ad3c425217141170c27ce54597febe7f5">app_</a>.<a class="code" href="classripple_1_1Application.html#a5ea4991eb9c4d29e8de734016293ba33">getShardStore</a>()-><a class="code" href="classripple_1_1NodeStore_1_1DatabaseShard.html#a435483044cad610e25db707999b4544a">removePreShard</a>(shardIndex);</div>
|
||||
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#ab84c25aafda27b95933b5c1cbc68f0dd">archives_</a>.erase(shardIndex);</div>
|
||||
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  </div>
|
||||
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <a class="code" href="namespaceripple.html#a7a3b3ad3c32efd30c4610177b011638e">deleteFromArchiveDB</a>(*<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a4c72dbc6be97c8acfd0883464d8f3bb8">sqlDB_</a>, shardIndex);</div>
|
||||
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  </div>
|
||||
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="keyword">auto</span> <span class="keyword">const</span> dstDir{<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a3ff9ae0459edf9d27608ecce2dbf7e66">downloadDir_</a> / <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/to_string.html">std::to_string</a>(shardIndex)};</div>
|
||||
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="keywordflow">try</span></div>
|
||||
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  {</div>
|
||||
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  remove_all(dstDir);</div>
|
||||
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  }</div>
|
||||
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <span class="keywordflow">catch</span> (<a class="codeRef" href="http://en.cppreference.com/w/cpp/error/exception.html">std::exception</a> <span class="keyword">const</span>& e)</div>
|
||||
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  {</div>
|
||||
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  JLOG(<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a0cd1a67c3837025faf68bc5540c98294">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a49b0713e65bb8e2c51b76fbf16252afe">error</a>()) << <span class="stringliteral">"exception: "</span> << e.<a class="codeRef" href="http://en.cppreference.com/w/cpp/error/exception/what.html">what</a>();</div>
|
||||
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  }</div>
|
||||
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> }</div>
|
||||
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  </div>
|
||||
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l00533"></a><span class="lineno"><a class="line" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a7d5cfda0a96ee124cdf366b2018c5d33"> 533</a></span> <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a7d5cfda0a96ee124cdf366b2018c5d33">ShardArchiveHandler::doRelease</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard<std::mutex></a> <span class="keyword">const</span>&)</div>
|
||||
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> {</div>
|
||||
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#af7644eb39d61a4ce3ad5c26fa8fa34a4">timer_</a>.cancel();</div>
|
||||
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>& ar : <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#ab84c25aafda27b95933b5c1cbc68f0dd">archives_</a>)</div>
|
||||
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#ad3c425217141170c27ce54597febe7f5">app_</a>.<a class="code" href="classripple_1_1Application.html#a5ea4991eb9c4d29e8de734016293ba33">getShardStore</a>()-><a class="code" href="classripple_1_1NodeStore_1_1DatabaseShard.html#a435483044cad610e25db707999b4544a">removePreShard</a>(ar.first);</div>
|
||||
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#ab84c25aafda27b95933b5c1cbc68f0dd">archives_</a>.clear();</div>
|
||||
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  </div>
|
||||
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <a class="code" href="namespaceripple.html#aa75536690380592aa104ab1f9df0d1a1">dropArchiveDB</a>(*<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a4c72dbc6be97c8acfd0883464d8f3bb8">sqlDB_</a>);</div>
|
||||
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  </div>
|
||||
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a4c72dbc6be97c8acfd0883464d8f3bb8">sqlDB_</a>.reset();</div>
|
||||
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  </div>
|
||||
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  <span class="comment">// Remove temp root download directory</span></div>
|
||||
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <span class="keywordflow">try</span></div>
|
||||
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  {</div>
|
||||
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  remove_all(<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a3ff9ae0459edf9d27608ecce2dbf7e66">downloadDir_</a>);</div>
|
||||
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  }</div>
|
||||
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <span class="keywordflow">catch</span> (<a class="codeRef" href="http://en.cppreference.com/w/cpp/error/exception.html">std::exception</a> <span class="keyword">const</span>& e)</div>
|
||||
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  {</div>
|
||||
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  JLOG(<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a0cd1a67c3837025faf68bc5540c98294">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a49b0713e65bb8e2c51b76fbf16252afe">error</a>()) << <span class="stringliteral">"exception: "</span> << e.<a class="codeRef" href="http://en.cppreference.com/w/cpp/error/exception/what.html">what</a>()</div>
|
||||
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  << <span class="stringliteral">" in function: "</span> << __func__;</div>
|
||||
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  }</div>
|
||||
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  </div>
|
||||
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a34d3fabb2e65c099599876069e7e7b0e">downloader_</a>.reset();</div>
|
||||
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a050e467324d568c212779f599613a0a7">process_</a> = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> }</div>
|
||||
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  </div>
|
||||
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> <span class="keywordtype">bool</span></div>
|
||||
<div class="line"><a name="l00560"></a><span class="lineno"><a class="line" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#accc0befbd62fead5da3a51dce1993990"> 560</a></span> <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#accc0befbd62fead5da3a51dce1993990">ShardArchiveHandler::onClosureFailed</a>(</div>
|
||||
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>& errorMsg,</div>
|
||||
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard<std::mutex></a> <span class="keyword">const</span>& lock)</div>
|
||||
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> {</div>
|
||||
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#aa603cda3c95e978af655f4eb4b86fe8c">stopping_</a>)</div>
|
||||
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  </div>
|
||||
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  JLOG(<a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a0cd1a67c3837025faf68bc5540c98294">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a49b0713e65bb8e2c51b76fbf16252afe">error</a>()) << errorMsg;</div>
|
||||
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  </div>
|
||||
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <span class="keywordflow">return</span> <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a29c53e2203380b6def0818dc887964e2">removeAndProceed</a>(lock);</div>
|
||||
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> }</div>
|
||||
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  </div>
|
||||
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> <span class="keywordtype">bool</span></div>
|
||||
<div class="line"><a name="l00573"></a><span class="lineno"><a class="line" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a29c53e2203380b6def0818dc887964e2"> 573</a></span> <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a29c53e2203380b6def0818dc887964e2">ShardArchiveHandler::removeAndProceed</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard<std::mutex></a> <span class="keyword">const</span>& lock)</div>
|
||||
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> {</div>
|
||||
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a96be731243ad4013480bcc9e56502924">remove</a>(lock);</div>
|
||||
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <span class="keywordflow">return</span> <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html#aa245784a9b0380252756a6f44b07eda0">next</a>(lock);</div>
|
||||
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> }</div>
|
||||
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  </div>
|
||||
<div class="line"><a name="l00579"></a><span class="lineno"><a class="line" href="classripple_1_1RPC_1_1RecoveryHandler.html#a13c5f2c42cd06e623f17ea4997e7a509"> 579</a></span> <a class="code" href="classripple_1_1RPC_1_1RecoveryHandler.html#a13c5f2c42cd06e623f17ea4997e7a509">RecoveryHandler::RecoveryHandler</a>(<a class="code" href="classripple_1_1Application.html">Application</a>& app) : <a class="code" href="classripple_1_1RPC_1_1ShardArchiveHandler.html">ShardArchiveHandler</a>(app)</div>
|
||||
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> {</div>
|
||||
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> }</div>
|
||||
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  </div>
|
||||
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> } <span class="comment">// namespace RPC</span></div>
|
||||
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> } <span class="comment">// namespace ripple</span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassripple_1_1NodeStore_1_1Database_html_a9d32ff3a7c28f6a852155ef954f7f59c"><div class="ttname"><a href="classripple_1_1NodeStore_1_1Database.html#a9d32ff3a7c28f6a852155ef954f7f59c">ripple::NodeStore::Database::lastLedgerSeq</a></div><div class="ttdeci">std::uint32_t lastLedgerSeq(std::uint32_t shardIndex) const noexcept</div><div class="ttdoc">Calculates the last ledger sequence for a given shard index.</div><div class="ttdef"><b>Definition:</b> <a href="Database_8h_source.html#l00271">Database.h:271</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Application_html"><div class="ttname"><a href="classripple_1_1Application.html">ripple::Application</a></div><div class="ttdef"><b>Definition:</b> <a href="Application_8h_source.html#l00115">Application.h:115</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPC_1_1ShardArchiveHandler_html_a3f71f8f6a470ef8f35d20f308eb73ac3"><div class="ttname"><a href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a3f71f8f6a470ef8f35d20f308eb73ac3">ripple::RPC::ShardArchiveHandler::getDownloadDirectory</a></div><div class="ttdeci">static boost::filesystem::path getDownloadDirectory(Config const &config)</div><div class="ttdef"><b>Definition:</b> <a href="ShardArchiveHandler_8cpp_source.html#l00038">ShardArchiveHandler.cpp:38</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPC_1_1ShardArchiveHandler_html_a34d3fabb2e65c099599876069e7e7b0e"><div class="ttname"><a href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a34d3fabb2e65c099599876069e7e7b0e">ripple::RPC::ShardArchiveHandler::downloader_</a></div><div class="ttdeci">std::shared_ptr< DatabaseDownloader > downloader_</div><div class="ttdef"><b>Definition:</b> <a href="ShardArchiveHandler_8h_source.html#l00139">ShardArchiveHandler.h:139</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPC_1_1ShardArchiveHandler_html_a3ff9ae0459edf9d27608ecce2dbf7e66"><div class="ttname"><a href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a3ff9ae0459edf9d27608ecce2dbf7e66">ripple::RPC::ShardArchiveHandler::downloadDir_</a></div><div class="ttdeci">const boost::filesystem::path downloadDir_</div><div class="ttdef"><b>Definition:</b> <a href="ShardArchiveHandler_8h_source.html#l00147">ShardArchiveHandler.h:147</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPC_1_1ShardArchiveHandler_html_a96be731243ad4013480bcc9e56502924"><div class="ttname"><a href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a96be731243ad4013480bcc9e56502924">ripple::RPC::ShardArchiveHandler::remove</a></div><div class="ttdeci">void remove(std::lock_guard< std::mutex > const &)</div><div class="ttdef"><b>Definition:</b> <a href="ShardArchiveHandler_8cpp_source.html#l00510">ShardArchiveHandler.cpp:510</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPC_1_1ShardArchiveHandler_html_a96be731243ad4013480bcc9e56502924"><div class="ttname"><a href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a96be731243ad4013480bcc9e56502924">ripple::RPC::ShardArchiveHandler::remove</a></div><div class="ttdeci">void remove(std::lock_guard< std::mutex > const &)</div><div class="ttdef"><b>Definition:</b> <a href="ShardArchiveHandler_8cpp_source.html#l00511">ShardArchiveHandler.cpp:511</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPC_1_1ShardArchiveHandler_html_a22d8c0f551d59bfff5fe3463da5cb247"><div class="ttname"><a href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a22d8c0f551d59bfff5fe3463da5cb247">ripple::RPC::ShardArchiveHandler::timerCounter_</a></div><div class="ttdeci">TimerOpCounter timerCounter_</div><div class="ttdef"><b>Definition:</b> <a href="ShardArchiveHandler_8h_source.html#l00150">ShardArchiveHandler.h:150</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPC_1_1ShardArchiveHandler_html_ae753e220dc179447da97185d3d1fc97a"><div class="ttname"><a href="classripple_1_1RPC_1_1ShardArchiveHandler.html#ae753e220dc179447da97185d3d1fc97a">ripple::RPC::ShardArchiveHandler::verificationScheduler_</a></div><div class="ttdeci">ShardVerificationScheduler verificationScheduler_</div><div class="ttdef"><b>Definition:</b> <a href="ShardArchiveHandler_8h_source.html#l00151">ShardArchiveHandler.h:151</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPC_1_1ShardArchiveHandler_html_abfd788059fe248e08426657dbaef7f57"><div class="ttname"><a href="classripple_1_1RPC_1_1ShardArchiveHandler.html#abfd788059fe248e08426657dbaef7f57">ripple::RPC::ShardArchiveHandler::stop</a></div><div class="ttdeci">void stop()</div><div class="ttdef"><b>Definition:</b> <a href="ShardArchiveHandler_8cpp_source.html#l00176">ShardArchiveHandler.cpp:176</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPC_1_1ShardArchiveHandler_html_a736e1259883482445a85ba9fa1b160db"><div class="ttname"><a href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a736e1259883482445a85ba9fa1b160db">ripple::RPC::ShardArchiveHandler::makeShardArchiveHandler</a></div><div class="ttdeci">static std::unique_ptr< ShardArchiveHandler > makeShardArchiveHandler(Application &app)</div><div class="ttdef"><b>Definition:</b> <a href="ShardArchiveHandler_8cpp_source.html#l00049">ShardArchiveHandler.cpp:49</a></div></div>
|
||||
<div class="ttc" id="abasic_string_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></div><div class="ttdoc">STL class.</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPC_1_1ShardArchiveHandler_html_a29c53e2203380b6def0818dc887964e2"><div class="ttname"><a href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a29c53e2203380b6def0818dc887964e2">ripple::RPC::ShardArchiveHandler::removeAndProceed</a></div><div class="ttdeci">bool removeAndProceed(std::lock_guard< std::mutex > const &lock)</div><div class="ttdef"><b>Definition:</b> <a href="ShardArchiveHandler_8cpp_source.html#l00572">ShardArchiveHandler.cpp:572</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPC_1_1ShardArchiveHandler_html_a29c53e2203380b6def0818dc887964e2"><div class="ttname"><a href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a29c53e2203380b6def0818dc887964e2">ripple::RPC::ShardArchiveHandler::removeAndProceed</a></div><div class="ttdeci">bool removeAndProceed(std::lock_guard< std::mutex > const &lock)</div><div class="ttdef"><b>Definition:</b> <a href="ShardArchiveHandler_8cpp_source.html#l00573">ShardArchiveHandler.cpp:573</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPC_1_1ShardArchiveHandler_html_a1d5fcb70e734bc8c0df786b826bdcab0"><div class="ttname"><a href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a1d5fcb70e734bc8c0df786b826bdcab0">ripple::RPC::ShardArchiveHandler::start</a></div><div class="ttdeci">bool start()</div><div class="ttdoc">Starts downloading and importing archives.</div><div class="ttdef"><b>Definition:</b> <a href="ShardArchiveHandler_8cpp_source.html#l00235">ShardArchiveHandler.cpp:235</a></div></div>
|
||||
<div class="ttc" id="aexception_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/error/exception.html">std::exception</a></div><div class="ttdoc">STL class.</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPC_1_1ShardArchiveHandler_html_a497de5fc940b275d7903ca8c5b6fe4d2"><div class="ttname"><a href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a497de5fc940b275d7903ca8c5b6fe4d2">ripple::RPC::ShardArchiveHandler::add</a></div><div class="ttdeci">bool add(std::uint32_t shardIndex, std::pair< parsedURL, std::string > &&url)</div><div class="ttdef"><b>Definition:</b> <a href="ShardArchiveHandler_8cpp_source.html#l00199">ShardArchiveHandler.cpp:199</a></div></div>
|
||||
<div class="ttc" id="astructripple_1_1parsedURL_html"><div class="ttname"><a href="structripple_1_1parsedURL.html">ripple::parsedURL</a></div><div class="ttdef"><b>Definition:</b> <a href="StringUtilities_8h_source.html#l00100">StringUtilities.h:100</a></div></div>
|
||||
<div class="ttc" id="astructripple_1_1parsedURL_html"><div class="ttname"><a href="structripple_1_1parsedURL.html">ripple::parsedURL</a></div><div class="ttdef"><b>Definition:</b> <a href="StringUtilities_8h_source.html#l00116">StringUtilities.h:116</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="aclassripple_1_1RPC_1_1ShardVerificationScheduler_html_a33b34d5ee1010717b41810e3413323f1"><div class="ttname"><a href="classripple_1_1RPC_1_1ShardVerificationScheduler.html#a33b34d5ee1010717b41810e3413323f1">ripple::RPC::ShardVerificationScheduler::reset</a></div><div class="ttdeci">void reset()</div><div class="ttdef"><b>Definition:</b> <a href="ShardVerificationScheduler_8cpp_source.html#l00062">ShardVerificationScheduler.cpp:62</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1LedgerMaster_html_af3eaa659ab184feed8b939836efeebcf"><div class="ttname"><a href="classripple_1_1LedgerMaster.html#af3eaa659ab184feed8b939836efeebcf">ripple::LedgerMaster::getValidLedgerIndex</a></div><div class="ttdeci">LedgerIndex getValidLedgerIndex()</div><div class="ttdef"><b>Definition:</b> <a href="LedgerMaster_8cpp_source.html#l00213">LedgerMaster.cpp:213</a></div></div>
|
||||
@@ -677,22 +678,22 @@ $(function() {
|
||||
<div class="ttc" id="astructripple_1_1ConfigSection_html_abab87cd32670610e64b43124c381775c"><div class="ttname"><a href="structripple_1_1ConfigSection.html#abab87cd32670610e64b43124c381775c">ripple::ConfigSection::shardDatabase</a></div><div class="ttdeci">static std::string shardDatabase()</div><div class="ttdef"><b>Definition:</b> <a href="ConfigSections_8h_source.html#l00038">ConfigSections.h:38</a></div></div>
|
||||
<div class="ttc" id="aduration_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::milliseconds</a></div></div>
|
||||
<div class="ttc" id="aclassbeast_1_1Journal_html_ad8fefe3e8ad583e1ed1bf02094ac3d8f"><div class="ttname"><a href="classbeast_1_1Journal.html#ad8fefe3e8ad583e1ed1bf02094ac3d8f">beast::Journal::warn</a></div><div class="ttdeci">Stream warn() const</div><div class="ttdef"><b>Definition:</b> <a href="Journal_8h_source.html#l00327">Journal.h:327</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPC_1_1ShardArchiveHandler_html_a7d5cfda0a96ee124cdf366b2018c5d33"><div class="ttname"><a href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a7d5cfda0a96ee124cdf366b2018c5d33">ripple::RPC::ShardArchiveHandler::doRelease</a></div><div class="ttdeci">void doRelease(std::lock_guard< std::mutex > const &)</div><div class="ttdef"><b>Definition:</b> <a href="ShardArchiveHandler_8cpp_source.html#l00532">ShardArchiveHandler.cpp:532</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPC_1_1ShardArchiveHandler_html_a7d5cfda0a96ee124cdf366b2018c5d33"><div class="ttname"><a href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a7d5cfda0a96ee124cdf366b2018c5d33">ripple::RPC::ShardArchiveHandler::doRelease</a></div><div class="ttdeci">void doRelease(std::lock_guard< std::mutex > const &)</div><div class="ttdef"><b>Definition:</b> <a href="ShardArchiveHandler_8cpp_source.html#l00533">ShardArchiveHandler.cpp:533</a></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_1Application_html_a5ea4991eb9c4d29e8de734016293ba33"><div class="ttname"><a href="classripple_1_1Application.html#a5ea4991eb9c4d29e8de734016293ba33">ripple::Application::getShardStore</a></div><div class="ttdeci">virtual NodeStore::DatabaseShard * getShardStore()=0</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPC_1_1RecoveryHandler_html_a13c5f2c42cd06e623f17ea4997e7a509"><div class="ttname"><a href="classripple_1_1RPC_1_1RecoveryHandler.html#a13c5f2c42cd06e623f17ea4997e7a509">ripple::RPC::RecoveryHandler::RecoveryHandler</a></div><div class="ttdeci">RecoveryHandler(Application &app)</div><div class="ttdef"><b>Definition:</b> <a href="ShardArchiveHandler_8cpp_source.html#l00578">ShardArchiveHandler.cpp:578</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPC_1_1RecoveryHandler_html_a13c5f2c42cd06e623f17ea4997e7a509"><div class="ttname"><a href="classripple_1_1RPC_1_1RecoveryHandler.html#a13c5f2c42cd06e623f17ea4997e7a509">ripple::RPC::RecoveryHandler::RecoveryHandler</a></div><div class="ttdeci">RecoveryHandler(Application &app)</div><div class="ttdef"><b>Definition:</b> <a href="ShardArchiveHandler_8cpp_source.html#l00579">ShardArchiveHandler.cpp:579</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1JobQueue_html_af5e34187d55aa58e551dc196aaf1ec25"><div class="ttname"><a href="classripple_1_1JobQueue.html#af5e34187d55aa58e551dc196aaf1ec25">ripple::JobQueue::addJob</a></div><div class="ttdeci">bool addJob(JobType type, std::string const &name, JobHandler &&jobHandler)</div><div class="ttdoc">Adds a job to the JobQueue.</div><div class="ttdef"><b>Definition:</b> <a href="JobQueue_8h_source.html#l00166">JobQueue.h:166</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPC_1_1ShardArchiveHandler_html_a591ad0b890e673e40ea9c5cdd029e7c8"><div class="ttname"><a href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a591ad0b890e673e40ea9c5cdd029e7c8">ripple::RPC::ShardArchiveHandler::initFromDB</a></div><div class="ttdeci">bool initFromDB(std::lock_guard< std::mutex > const &)</div><div class="ttdef"><b>Definition:</b> <a href="ShardArchiveHandler_8cpp_source.html#l00131">ShardArchiveHandler.cpp:131</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPC_1_1ShardArchiveHandler_html_accc0befbd62fead5da3a51dce1993990"><div class="ttname"><a href="classripple_1_1RPC_1_1ShardArchiveHandler.html#accc0befbd62fead5da3a51dce1993990">ripple::RPC::ShardArchiveHandler::onClosureFailed</a></div><div class="ttdeci">bool onClosureFailed(std::string const &errorMsg, std::lock_guard< std::mutex > const &lock)</div><div class="ttdef"><b>Definition:</b> <a href="ShardArchiveHandler_8cpp_source.html#l00559">ShardArchiveHandler.cpp:559</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPC_1_1ShardArchiveHandler_html_accc0befbd62fead5da3a51dce1993990"><div class="ttname"><a href="classripple_1_1RPC_1_1ShardArchiveHandler.html#accc0befbd62fead5da3a51dce1993990">ripple::RPC::ShardArchiveHandler::onClosureFailed</a></div><div class="ttdeci">bool onClosureFailed(std::string const &errorMsg, std::lock_guard< std::mutex > const &lock)</div><div class="ttdef"><b>Definition:</b> <a href="ShardArchiveHandler_8cpp_source.html#l00560">ShardArchiveHandler.cpp:560</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a7f1e5ab90444ff67cddc760563d127b1"><div class="ttname"><a href="namespaceripple.html#a7f1e5ab90444ff67cddc760563d127b1">ripple::extractTarLz4</a></div><div class="ttdeci">void extractTarLz4(boost::filesystem::path const &src, boost::filesystem::path const &dst)</div><div class="ttdoc">Extract a tar archive compressed with lz4.</div><div class="ttdef"><b>Definition:</b> <a href="Archive_8cpp_source.html#l00029">Archive.cpp:29</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1LedgerMaster_html_a4c6df242c0ea3409a06e44436495235f"><div class="ttname"><a href="classripple_1_1LedgerMaster.html#a4c6df242c0ea3409a06e44436495235f">ripple::LedgerMaster::walkHashBySeq</a></div><div class="ttdeci">std::optional< LedgerHash > walkHashBySeq(std::uint32_t index, InboundLedger::Reason reason)</div><div class="ttdoc">Walk to a ledger's hash using the skip list.</div><div class="ttdef"><b>Definition:</b> <a href="LedgerMaster_8cpp_source.html#l01750">LedgerMaster.cpp:1750</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPC_1_1ShardArchiveHandler_html_aa603cda3c95e978af655f4eb4b86fe8c"><div class="ttname"><a href="classripple_1_1RPC_1_1ShardArchiveHandler.html#aa603cda3c95e978af655f4eb4b86fe8c">ripple::RPC::ShardArchiveHandler::stopping_</a></div><div class="ttdeci">std::atomic_bool stopping_</div><div class="ttdef"><b>Definition:</b> <a href="ShardArchiveHandler_8h_source.html#l00138">ShardArchiveHandler.h:138</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Application_html_a7c963aa5c47180b24897ff6b5622e5bc"><div class="ttname"><a href="classripple_1_1Application.html#a7c963aa5c47180b24897ff6b5622e5bc">ripple::Application::getOPs</a></div><div class="ttdeci">virtual NetworkOPs & getOPs()=0</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPC_1_1ShardArchiveHandler_html_af7644eb39d61a4ce3ad5c26fa8fa34a4"><div class="ttname"><a href="classripple_1_1RPC_1_1ShardArchiveHandler.html#af7644eb39d61a4ce3ad5c26fa8fa34a4">ripple::RPC::ShardArchiveHandler::timer_</a></div><div class="ttdeci">boost::asio::basic_waitable_timer< std::chrono::steady_clock > timer_</div><div class="ttdef"><b>Definition:</b> <a href="ShardArchiveHandler_8h_source.html#l00148">ShardArchiveHandler.h:148</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPC_1_1ShardArchiveHandler_html_a6677b860054025ac3f19ab5dd1b70be1"><div class="ttname"><a href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a6677b860054025ac3f19ab5dd1b70be1">ripple::RPC::ShardArchiveHandler::release</a></div><div class="ttdeci">void release()</div><div class="ttdef"><b>Definition:</b> <a href="ShardArchiveHandler_8cpp_source.html#l00287">ShardArchiveHandler.cpp:287</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPC_1_1ShardArchiveHandler_html_a0962cbf9e2d4b7a067a85676ad317c1f"><div class="ttname"><a href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a0962cbf9e2d4b7a067a85676ad317c1f">ripple::RPC::ShardArchiveHandler::process</a></div><div class="ttdeci">void process(boost::filesystem::path const &dstPath)</div><div class="ttdef"><b>Definition:</b> <a href="ShardArchiveHandler_8cpp_source.html#l00471">ShardArchiveHandler.cpp:471</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1RPC_1_1ShardArchiveHandler_html_a0962cbf9e2d4b7a067a85676ad317c1f"><div class="ttname"><a href="classripple_1_1RPC_1_1ShardArchiveHandler.html#a0962cbf9e2d4b7a067a85676ad317c1f">ripple::RPC::ShardArchiveHandler::process</a></div><div class="ttdeci">void process(boost::filesystem::path const &dstPath)</div><div class="ttdef"><b>Definition:</b> <a href="ShardArchiveHandler_8cpp_source.html#l00472">ShardArchiveHandler.cpp:472</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Application_html_a57929fa83c551514e364fe6981b0c104"><div class="ttname"><a href="classripple_1_1Application.html#a57929fa83c551514e364fe6981b0c104">ripple::Application::getLedgerMaster</a></div><div class="ttdeci">virtual LedgerMaster & getLedgerMaster()=0</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Config_html"><div class="ttname"><a href="classripple_1_1Config.html">ripple::Config</a></div><div class="ttdef"><b>Definition:</b> <a href="Config_8h_source.html#l00068">Config.h:68</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Config_html"><div class="ttname"><a href="classripple_1_1Config.html">ripple::Config</a></div><div class="ttdef"><b>Definition:</b> <a href="Config_8h_source.html#l00069">Config.h:69</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a7a3b3ad3c32efd30c4610177b011638e"><div class="ttname"><a href="namespaceripple.html#a7a3b3ad3c32efd30c4610177b011638e">ripple::deleteFromArchiveDB</a></div><div class="ttdeci">void deleteFromArchiveDB(DatabaseCon &db, std::uint32_t shardIndex)</div><div class="ttdoc">deleteFromArchiveDB Deletes an entry from the shard archive database.</div><div class="ttdef"><b>Definition:</b> <a href="ShardArchive_8cpp_source.html#l00056">ShardArchive.cpp:56</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Application_html_aca56b7c63030174e59720ab51d739422"><div class="ttname"><a href="classripple_1_1Application.html#aca56b7c63030174e59720ab51d739422">ripple::Application::config</a></div><div class="ttdeci">virtual Config & config()=0</div></div>
|
||||
<div class="ttc" id="ato_string_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string/to_string.html">std::to_string</a></div><div class="ttdeci">T to_string(T... args)</div></div>
|
||||
|
||||
Reference in New Issue
Block a user