This commit is contained in:
manojsdoshi
2021-06-04 17:39:30 +00:00
parent 375f650549
commit 2709cd752f
3925 changed files with 132532 additions and 172858 deletions

View File

@@ -359,7 +359,7 @@ $(function() {
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#ae5ea969b68090bcca188a43c65189c66">lastLog_</a> = present;</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; </div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <a class="code" href="classJson_1_1Value.html">Json::Value</a> <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#aed1efce69652da91d46e05b8549d3692">report</a>(<a class="code" href="namespaceJson.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">Json::objectValue</a>);</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#aed1efce69652da91d46e05b8549d3692">report</a>[jss::time] = <a class="code" href="namespaceripple.html#af9776f187d3686a7fba4c2d2fbeebdf4">to_string</a>(floor&lt;microseconds&gt;(present));</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#aed1efce69652da91d46e05b8549d3692">report</a>[jss::time] = <a class="code" href="namespaceripple.html#af9776f187d3686a7fba4c2d2fbeebdf4">to_string</a>(std::chrono::floor&lt;microseconds&gt;(present));</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; {</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <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_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#ad62cf933e90b3252ac06736c11a9f565">jobsMutex_</a>};</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#aed1efce69652da91d46e05b8549d3692">report</a>[jss::workers] =</div>
@@ -372,323 +372,308 @@ $(function() {
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#ad7e95c7d24fd917d729019dd9ee19c3d">logFile_</a> &lt;&lt; <a class="code" href="classJson_1_1Compact.html">Json::Compact</a>{std::move(<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#aed1efce69652da91d46e05b8549d3692">report</a>)} &lt;&lt; <a class="codeRef" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;}</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; </div>
<div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="classripple_1_1perf_1_1PerfLogImp.html#a841523ac7eb48e74b54d5e2f8bb10ae1"> 304</a></span>&#160;<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a841523ac7eb48e74b54d5e2f8bb10ae1">PerfLogImp::PerfLogImp</a>(</div>
<div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="classripple_1_1perf_1_1PerfLogImp.html#adb201719cfc0b6521dc6b5adda8dad15"> 304</a></span>&#160;<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#adb201719cfc0b6521dc6b5adda8dad15">PerfLogImp::PerfLogImp</a>(</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <a class="code" href="structripple_1_1perf_1_1PerfLog_1_1Setup.html">Setup</a> <span class="keyword">const</span>&amp; setup,</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <a class="code" href="classripple_1_1Stoppable.html">Stoppable</a>&amp; parent,</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <a class="code" href="classbeast_1_1Journal.html">beast::Journal</a> journal,</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt;<span class="keywordtype">void</span>()&gt;&amp;&amp; signalStop)</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; : <a class="code" href="classripple_1_1Stoppable.html">Stoppable</a>(<span class="stringliteral">&quot;PerfLogImp&quot;</span>, parent)</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; , <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#ac8aa2814945a4677e948d62836b34cc4">setup_</a>(setup)</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; , <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#ae2e4abdb39e2af357e8706107f1af6ff">j_</a>(journal)</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; , <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a039f133715e7b70d679d25c8b4275e04">signalStop_</a>(<a class="code" href="namespacestd.html">std</a>::move(signalStop))</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;{</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#ae99b291a5018e217c8e133f58d747249">openLog</a>();</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;}</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; </div>
<div class="line"><a name="l00317"></a><span class="lineno"><a class="line" href="classripple_1_1perf_1_1PerfLogImp.html#ab800b42ef0191eb5675e7f65acde20bd"> 317</a></span>&#160;<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#ab800b42ef0191eb5675e7f65acde20bd">PerfLogImp::~PerfLogImp</a>()</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;{</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a3ecaa02f9bbc6c0cd3990688f8e5ee4b">onStop</a>();</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;}</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; </div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00323"></a><span class="lineno"><a class="line" href="classripple_1_1perf_1_1PerfLogImp.html#a5a6df6b772a186b0c889ebec2cae7678"> 323</a></span>&#160;<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a5a6df6b772a186b0c889ebec2cae7678">PerfLogImp::rpcStart</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>&amp; method, <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> <span class="keyword">const</span> requestId)</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;{</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keyword">auto</span> counter = <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a05bb53df2b2251dc6150680f12098954">rpc_</a>.find(method);</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">if</span> (counter == <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a05bb53df2b2251dc6150680f12098954">rpc_</a>.end())</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; {</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; assert(<span class="keyword">false</span>);</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; }</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; </div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; {</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock(counter-&gt;second.mutex);</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; ++counter-&gt;second.value.started;</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; }</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <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_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#ab344810a6dfdbbc9e2808c8ff0d7683f">methodsMutex_</a>);</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a63af43350af863cbf29c75b635b30500">methods_</a>[requestId] = {</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; counter-&gt;first.c_str(), <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/steady_clock/now.html">steady_clock::now</a>()};</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;}</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; </div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="classripple_1_1perf_1_1PerfLogImp.html#a09db64fc2f2fda2ce5baed6593246e3a"> 342</a></span>&#160;<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a09db64fc2f2fda2ce5baed6593246e3a">PerfLogImp::rpcEnd</a>(</div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>&amp; method,</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> <span class="keyword">const</span> requestId,</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordtype">bool</span> finish)</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;{</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keyword">auto</span> counter = <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a05bb53df2b2251dc6150680f12098954">rpc_</a>.find(method);</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">if</span> (counter == <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a05bb53df2b2251dc6150680f12098954">rpc_</a>.end())</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; {</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; assert(<span class="keyword">false</span>);</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; }</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">steady_time_point</a> startTime;</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; {</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <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_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#ab344810a6dfdbbc9e2808c8ff0d7683f">methodsMutex_</a>);</div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> e = <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a63af43350af863cbf29c75b635b30500">methods_</a>.find(requestId);</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">if</span> (e != <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a63af43350af863cbf29c75b635b30500">methods_</a>.end())</div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; {</div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; startTime = e-&gt;second.second;</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a63af43350af863cbf29c75b635b30500">methods_</a>.erase(e);</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <a class="code" href="classbeast_1_1Journal.html">beast::Journal</a> journal,</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt;<span class="keywordtype">void</span>()&gt;&amp;&amp; signalStop)</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; : <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#ac8aa2814945a4677e948d62836b34cc4">setup_</a>(setup), <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#ae2e4abdb39e2af357e8706107f1af6ff">j_</a>(journal), <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a039f133715e7b70d679d25c8b4275e04">signalStop_</a>(<a class="code" href="namespacestd.html">std</a>::move(signalStop))</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;{</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#ae99b291a5018e217c8e133f58d747249">openLog</a>();</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;}</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; </div>
<div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="classripple_1_1perf_1_1PerfLogImp.html#ab800b42ef0191eb5675e7f65acde20bd"> 313</a></span>&#160;<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#ab800b42ef0191eb5675e7f65acde20bd">PerfLogImp::~PerfLogImp</a>()</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;{</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a8e96e40c590fb7d220c384e45922a3c3">stop</a>();</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;}</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; </div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00319"></a><span class="lineno"><a class="line" href="classripple_1_1perf_1_1PerfLogImp.html#a5a6df6b772a186b0c889ebec2cae7678"> 319</a></span>&#160;<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a5a6df6b772a186b0c889ebec2cae7678">PerfLogImp::rpcStart</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>&amp; method, <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> <span class="keyword">const</span> requestId)</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;{</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keyword">auto</span> counter = <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a05bb53df2b2251dc6150680f12098954">rpc_</a>.find(method);</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">if</span> (counter == <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a05bb53df2b2251dc6150680f12098954">rpc_</a>.end())</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; {</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; assert(<span class="keyword">false</span>);</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; }</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; </div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; {</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock(counter-&gt;second.mutex);</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; ++counter-&gt;second.value.started;</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; }</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <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_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#ab344810a6dfdbbc9e2808c8ff0d7683f">methodsMutex_</a>);</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a63af43350af863cbf29c75b635b30500">methods_</a>[requestId] = {</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; counter-&gt;first.c_str(), <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/steady_clock/now.html">steady_clock::now</a>()};</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;}</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; </div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00338"></a><span class="lineno"><a class="line" href="classripple_1_1perf_1_1PerfLogImp.html#a09db64fc2f2fda2ce5baed6593246e3a"> 338</a></span>&#160;<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a09db64fc2f2fda2ce5baed6593246e3a">PerfLogImp::rpcEnd</a>(</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span>&amp; method,</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> <span class="keyword">const</span> requestId,</div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordtype">bool</span> finish)</div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;{</div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keyword">auto</span> counter = <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a05bb53df2b2251dc6150680f12098954">rpc_</a>.find(method);</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">if</span> (counter == <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a05bb53df2b2251dc6150680f12098954">rpc_</a>.end())</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; {</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; assert(<span class="keyword">false</span>);</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; }</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">steady_time_point</a> startTime;</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; {</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <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_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#ab344810a6dfdbbc9e2808c8ff0d7683f">methodsMutex_</a>);</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> e = <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a63af43350af863cbf29c75b635b30500">methods_</a>.find(requestId);</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">if</span> (e != <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a63af43350af863cbf29c75b635b30500">methods_</a>.end())</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; {</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; startTime = e-&gt;second.second;</div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a63af43350af863cbf29c75b635b30500">methods_</a>.erase(e);</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; }</div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; {</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; assert(<span class="keyword">false</span>);</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; }</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; {</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; assert(<span class="keyword">false</span>);</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; }</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; }</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock(counter-&gt;second.mutex);</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keywordflow">if</span> (finish)</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; ++counter-&gt;second.value.finished;</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; ++counter-&gt;second.value.errored;</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; counter-&gt;second.value.duration += std::chrono::duration_cast&lt;microseconds&gt;(</div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/steady_clock/now.html">steady_clock::now</a>() - startTime);</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;}</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; </div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00377"></a><span class="lineno"><a class="line" href="classripple_1_1perf_1_1PerfLogImp.html#a2f3601164c8f96b278d3596a617e3a58"> 377</a></span>&#160;<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a2f3601164c8f96b278d3596a617e3a58">PerfLogImp::jobQueue</a>(<a class="code" href="namespaceripple.html#ae0f54f8ce649d639bf3e2b295347e17a">JobType</a> <span class="keyword">const</span> type)</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;{</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keyword">auto</span> counter = <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#afe955a760afed3a898cca80240fb8591">jq_</a>.find(type);</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">if</span> (counter == <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#afe955a760afed3a898cca80240fb8591">jq_</a>.end())</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; {</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; assert(<span class="keyword">false</span>);</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; }</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock(counter-&gt;second.mutex);</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; ++counter-&gt;second.value.queued;</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;}</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; </div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="classripple_1_1perf_1_1PerfLogImp.html#a4112e34e1dfcead94a54b47ca1c0407c"> 390</a></span>&#160;<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a4112e34e1dfcead94a54b47ca1c0407c">PerfLogImp::jobStart</a>(</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <a class="code" href="namespaceripple.html#ae0f54f8ce649d639bf3e2b295347e17a">JobType</a> <span class="keyword">const</span> type,</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">microseconds</a> dur,</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">steady_time_point</a> startTime,</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordtype">int</span> instance)</div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;{</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keyword">auto</span> counter = <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#afe955a760afed3a898cca80240fb8591">jq_</a>.find(type);</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">if</span> (counter == <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#afe955a760afed3a898cca80240fb8591">jq_</a>.end())</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; }</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock(counter-&gt;second.mutex);</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">if</span> (finish)</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; ++counter-&gt;second.value.finished;</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; ++counter-&gt;second.value.errored;</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; counter-&gt;second.value.duration += std::chrono::duration_cast&lt;microseconds&gt;(</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/steady_clock/now.html">steady_clock::now</a>() - startTime);</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;}</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; </div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="classripple_1_1perf_1_1PerfLogImp.html#a2f3601164c8f96b278d3596a617e3a58"> 373</a></span>&#160;<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a2f3601164c8f96b278d3596a617e3a58">PerfLogImp::jobQueue</a>(<a class="code" href="namespaceripple.html#ae0f54f8ce649d639bf3e2b295347e17a">JobType</a> <span class="keyword">const</span> type)</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;{</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keyword">auto</span> counter = <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#afe955a760afed3a898cca80240fb8591">jq_</a>.find(type);</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">if</span> (counter == <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#afe955a760afed3a898cca80240fb8591">jq_</a>.end())</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; {</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; assert(<span class="keyword">false</span>);</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; }</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock(counter-&gt;second.mutex);</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; ++counter-&gt;second.value.queued;</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;}</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; </div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="classripple_1_1perf_1_1PerfLogImp.html#a4112e34e1dfcead94a54b47ca1c0407c"> 386</a></span>&#160;<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a4112e34e1dfcead94a54b47ca1c0407c">PerfLogImp::jobStart</a>(</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <a class="code" href="namespaceripple.html#ae0f54f8ce649d639bf3e2b295347e17a">JobType</a> <span class="keyword">const</span> type,</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">microseconds</a> dur,</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">steady_time_point</a> startTime,</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordtype">int</span> instance)</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;{</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keyword">auto</span> counter = <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#afe955a760afed3a898cca80240fb8591">jq_</a>.find(type);</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">if</span> (counter == <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#afe955a760afed3a898cca80240fb8591">jq_</a>.end())</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; {</div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; assert(<span class="keyword">false</span>);</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; }</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; {</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; assert(<span class="keyword">false</span>);</div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; }</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; {</div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock(counter-&gt;second.mutex);</div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; ++counter-&gt;second.value.started;</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; counter-&gt;second.value.queuedDuration += dur;</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; }</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <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_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#ad62cf933e90b3252ac06736c11a9f565">jobsMutex_</a>);</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordflow">if</span> (instance &gt;= 0 &amp;&amp; instance &lt; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a497a30fda256f1ca07cb388aaaa77821">jobs_</a>.<a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>())</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a497a30fda256f1ca07cb388aaaa77821">jobs_</a>[instance] = {type, startTime};</div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;}</div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; </div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00413"></a><span class="lineno"><a class="line" href="classripple_1_1perf_1_1PerfLogImp.html#ae20e7fc6dada760cae91c8b37fa87422"> 413</a></span>&#160;<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#ae20e7fc6dada760cae91c8b37fa87422">PerfLogImp::jobFinish</a>(<a class="code" href="namespaceripple.html#ae0f54f8ce649d639bf3e2b295347e17a">JobType</a> <span class="keyword">const</span> type, <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">microseconds</a> dur, <span class="keywordtype">int</span> instance)</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;{</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keyword">auto</span> counter = <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#afe955a760afed3a898cca80240fb8591">jq_</a>.find(type);</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">if</span> (counter == <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#afe955a760afed3a898cca80240fb8591">jq_</a>.end())</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock(counter-&gt;second.mutex);</div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; ++counter-&gt;second.value.started;</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; counter-&gt;second.value.queuedDuration += dur;</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; }</div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <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_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#ad62cf933e90b3252ac06736c11a9f565">jobsMutex_</a>);</div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">if</span> (instance &gt;= 0 &amp;&amp; instance &lt; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a497a30fda256f1ca07cb388aaaa77821">jobs_</a>.<a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>())</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a497a30fda256f1ca07cb388aaaa77821">jobs_</a>[instance] = {type, startTime};</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;}</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; </div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00409"></a><span class="lineno"><a class="line" href="classripple_1_1perf_1_1PerfLogImp.html#ae20e7fc6dada760cae91c8b37fa87422"> 409</a></span>&#160;<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#ae20e7fc6dada760cae91c8b37fa87422">PerfLogImp::jobFinish</a>(<a class="code" href="namespaceripple.html#ae0f54f8ce649d639bf3e2b295347e17a">JobType</a> <span class="keyword">const</span> type, <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">microseconds</a> dur, <span class="keywordtype">int</span> instance)</div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;{</div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keyword">auto</span> counter = <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#afe955a760afed3a898cca80240fb8591">jq_</a>.find(type);</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">if</span> (counter == <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#afe955a760afed3a898cca80240fb8591">jq_</a>.end())</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; {</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; assert(<span class="keyword">false</span>);</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; }</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; {</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; assert(<span class="keyword">false</span>);</div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; }</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; {</div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock(counter-&gt;second.mutex);</div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; ++counter-&gt;second.value.finished;</div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; counter-&gt;second.value.runningDuration += dur;</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; }</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <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_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#ad62cf933e90b3252ac06736c11a9f565">jobsMutex_</a>);</div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">if</span> (instance &gt;= 0 &amp;&amp; instance &lt; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a497a30fda256f1ca07cb388aaaa77821">jobs_</a>.<a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>())</div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a497a30fda256f1ca07cb388aaaa77821">jobs_</a>[instance] = {<a class="code" href="namespaceripple.html#ae0f54f8ce649d639bf3e2b295347e17aa24d4471c57d1ff11dd7e60e7525c3882">jtINVALID</a>, <a class="code" href="classripple_1_1perf_1_1PerfLog.html#a2a46a4c21fbebad094b6d7b0b9fc0812">steady_time_point</a>()};</div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;}</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; </div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00432"></a><span class="lineno"><a class="line" href="classripple_1_1perf_1_1PerfLogImp.html#a0ac856fa5485f35e47fdb8352d34b3b7"> 432</a></span>&#160;<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a0ac856fa5485f35e47fdb8352d34b3b7">PerfLogImp::resizeJobs</a>(<span class="keywordtype">int</span> <span class="keyword">const</span> resize)</div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;{</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <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_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#ad62cf933e90b3252ac06736c11a9f565">jobsMutex_</a>);</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">if</span> (resize &gt; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a497a30fda256f1ca07cb388aaaa77821">jobs_</a>.<a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>())</div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a497a30fda256f1ca07cb388aaaa77821">jobs_</a>.<a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector/resize.html">resize</a>(resize, {<a class="code" href="namespaceripple.html#ae0f54f8ce649d639bf3e2b295347e17aa24d4471c57d1ff11dd7e60e7525c3882">jtINVALID</a>, <a class="code" href="classripple_1_1perf_1_1PerfLog.html#a2a46a4c21fbebad094b6d7b0b9fc0812">steady_time_point</a>()});</div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;}</div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; </div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00440"></a><span class="lineno"><a class="line" href="classripple_1_1perf_1_1PerfLogImp.html#a5afbfcca0cf2c81ac88fa18aabd50b1f"> 440</a></span>&#160;<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a5afbfcca0cf2c81ac88fa18aabd50b1f">PerfLogImp::rotate</a>()</div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;{</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#ac8aa2814945a4677e948d62836b34cc4">setup_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLog_1_1Setup.html#a54b372860912c7f6acfc8f084e981574">perfLog</a>.empty())</div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; </div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <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_1perf_1_1PerfLogImp.html#ac64e671807b0a09696d1392244b795dd">mutex_</a>);</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#ad7d1af796595eb57075c4d79fc92081e">rotate_</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a75bd7e44bdf90e50fa50640e877f091a">cond_</a>.<a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/condition_variable/notify_one.html">notify_one</a>();</div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;}</div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; </div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00451"></a><span class="lineno"><a class="line" href="classripple_1_1perf_1_1PerfLogImp.html#a81a7c17c2d7403d410f40266c8dc8a85"> 451</a></span>&#160;<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a81a7c17c2d7403d410f40266c8dc8a85">PerfLogImp::onStart</a>()</div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;{</div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#ac8aa2814945a4677e948d62836b34cc4">setup_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLog_1_1Setup.html#a54b372860912c7f6acfc8f084e981574">perfLog</a>.size())</div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a7c6f683b5952c800a659a810582462f2">thread_</a> = <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/thread.html">std::thread</a>(&amp;<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#afd6c74e0ad7435848b1306d0ea1ca267">PerfLogImp::run</a>, <span class="keyword">this</span>);</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;}</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; </div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="classripple_1_1perf_1_1PerfLogImp.html#a3ecaa02f9bbc6c0cd3990688f8e5ee4b"> 458</a></span>&#160;<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a3ecaa02f9bbc6c0cd3990688f8e5ee4b">PerfLogImp::onStop</a>()</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;{</div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a7c6f683b5952c800a659a810582462f2">thread_</a>.<a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/thread/joinable.html">joinable</a>())</div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; {</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; {</div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <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_1perf_1_1PerfLogImp.html#ac64e671807b0a09696d1392244b795dd">mutex_</a>);</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a9debb4743b9d653d2f6a9bc528ea4d5f">stop_</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a75bd7e44bdf90e50fa50640e877f091a">cond_</a>.<a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/condition_variable/notify_one.html">notify_one</a>();</div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; }</div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a7c6f683b5952c800a659a810582462f2">thread_</a>.<a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/thread/join.html">join</a>();</div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; }</div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;}</div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; </div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00472"></a><span class="lineno"><a class="line" href="classripple_1_1perf_1_1PerfLogImp.html#a32612bcc8d906ddf25a412d4024b33da"> 472</a></span>&#160;<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a32612bcc8d906ddf25a412d4024b33da">PerfLogImp::onChildrenStopped</a>()</div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;{</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <a class="code" href="classripple_1_1Stoppable.html#a65a95f9c14637491df60d3a07518fa09">stopped</a>();</div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;}</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; </div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;<span class="comment">//-----------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; </div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;<a class="code" href="structripple_1_1perf_1_1PerfLog_1_1Setup.html">PerfLog::Setup</a></div>
<div class="line"><a name="l00480"></a><span class="lineno"><a class="line" href="namespaceripple_1_1perf.html#a05a394877a70f3d8ee8ec2a42b906763"> 480</a></span>&#160;<a class="code" href="namespaceripple_1_1perf.html#a05a394877a70f3d8ee8ec2a42b906763">setup_PerfLog</a>(<a class="code" href="classripple_1_1Section.html">Section</a> <span class="keyword">const</span>&amp; section, boost::filesystem::path <span class="keyword">const</span>&amp; configDir)</div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;{</div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <a class="code" href="structripple_1_1perf_1_1PerfLog_1_1Setup.html">PerfLog::Setup</a> setup;</div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> perfLog;</div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <a class="code" href="namespaceripple.html#a53f80df10254751781250aa20704e98f">set</a>(perfLog, <span class="stringliteral">&quot;perf_log&quot;</span>, section);</div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keywordflow">if</span> (perfLog.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>())</div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; {</div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; setup.<a class="code" href="structripple_1_1perf_1_1PerfLog_1_1Setup.html#a54b372860912c7f6acfc8f084e981574">perfLog</a> = boost::filesystem::path(perfLog);</div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordflow">if</span> (setup.<a class="code" href="structripple_1_1perf_1_1PerfLog_1_1Setup.html#a54b372860912c7f6acfc8f084e981574">perfLog</a>.is_relative())</div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; {</div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; setup.<a class="code" href="structripple_1_1perf_1_1PerfLog_1_1Setup.html#a54b372860912c7f6acfc8f084e981574">perfLog</a> =</div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; boost::filesystem::absolute(setup.<a class="code" href="structripple_1_1perf_1_1PerfLog_1_1Setup.html#a54b372860912c7f6acfc8f084e981574">perfLog</a>, configDir);</div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; }</div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; }</div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; </div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> logInterval;</div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceripple.html#a55f440d44d3b98aa990fadd4ebb7c87e">get_if_exists</a>(section, <span class="stringliteral">&quot;log_interval&quot;</span>, logInterval))</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; setup.<a class="code" href="structripple_1_1perf_1_1PerfLog_1_1Setup.html#af75669578067c4dc062f0e8cbe722060">logInterval</a> = <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::seconds</a>(logInterval);</div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">return</span> setup;</div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;}</div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; </div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;<a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr&lt;PerfLog&gt;</a></div>
<div class="line"><a name="l00502"></a><span class="lineno"><a class="line" href="namespaceripple_1_1perf.html#a3084f09507655223d35f1f698f227d88"> 502</a></span>&#160;<a class="code" href="namespaceripple_1_1perf.html#a3084f09507655223d35f1f698f227d88">make_PerfLog</a>(</div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <a class="code" href="structripple_1_1perf_1_1PerfLog_1_1Setup.html">PerfLog::Setup</a> <span class="keyword">const</span>&amp; setup,</div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <a class="code" href="classripple_1_1Stoppable.html">Stoppable</a>&amp; parent,</div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <a class="code" href="classbeast_1_1Journal.html">beast::Journal</a> journal,</div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt;<span class="keywordtype">void</span>()&gt;&amp;&amp; signalStop)</div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;{</div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keywordflow">return</span> std::make_unique&lt;PerfLogImp&gt;(</div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; setup, parent, journal, std::move(signalStop));</div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;}</div>
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; </div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;} <span class="comment">// namespace perf</span></div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;} <span class="comment">// namespace ripple</span></div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock(counter-&gt;second.mutex);</div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; ++counter-&gt;second.value.finished;</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; counter-&gt;second.value.runningDuration += dur;</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; }</div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <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_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#ad62cf933e90b3252ac06736c11a9f565">jobsMutex_</a>);</div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordflow">if</span> (instance &gt;= 0 &amp;&amp; instance &lt; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a497a30fda256f1ca07cb388aaaa77821">jobs_</a>.<a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>())</div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a497a30fda256f1ca07cb388aaaa77821">jobs_</a>[instance] = {<a class="code" href="namespaceripple.html#ae0f54f8ce649d639bf3e2b295347e17aa24d4471c57d1ff11dd7e60e7525c3882">jtINVALID</a>, <a class="code" href="classripple_1_1perf_1_1PerfLog.html#a2a46a4c21fbebad094b6d7b0b9fc0812">steady_time_point</a>()};</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;}</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; </div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="classripple_1_1perf_1_1PerfLogImp.html#a0ac856fa5485f35e47fdb8352d34b3b7"> 428</a></span>&#160;<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a0ac856fa5485f35e47fdb8352d34b3b7">PerfLogImp::resizeJobs</a>(<span class="keywordtype">int</span> <span class="keyword">const</span> resize)</div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;{</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <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_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#ad62cf933e90b3252ac06736c11a9f565">jobsMutex_</a>);</div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">if</span> (resize &gt; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a497a30fda256f1ca07cb388aaaa77821">jobs_</a>.<a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>())</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">counters_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a497a30fda256f1ca07cb388aaaa77821">jobs_</a>.<a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector/resize.html">resize</a>(resize, {<a class="code" href="namespaceripple.html#ae0f54f8ce649d639bf3e2b295347e17aa24d4471c57d1ff11dd7e60e7525c3882">jtINVALID</a>, <a class="code" href="classripple_1_1perf_1_1PerfLog.html#a2a46a4c21fbebad094b6d7b0b9fc0812">steady_time_point</a>()});</div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;}</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; </div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00436"></a><span class="lineno"><a class="line" href="classripple_1_1perf_1_1PerfLogImp.html#a5afbfcca0cf2c81ac88fa18aabd50b1f"> 436</a></span>&#160;<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a5afbfcca0cf2c81ac88fa18aabd50b1f">PerfLogImp::rotate</a>()</div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;{</div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#ac8aa2814945a4677e948d62836b34cc4">setup_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLog_1_1Setup.html#a54b372860912c7f6acfc8f084e981574">perfLog</a>.empty())</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; </div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <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_1perf_1_1PerfLogImp.html#ac64e671807b0a09696d1392244b795dd">mutex_</a>);</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#ad7d1af796595eb57075c4d79fc92081e">rotate_</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a75bd7e44bdf90e50fa50640e877f091a">cond_</a>.<a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/condition_variable/notify_one.html">notify_one</a>();</div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;}</div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; </div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00447"></a><span class="lineno"><a class="line" href="classripple_1_1perf_1_1PerfLogImp.html#aaf753116ce7d16f627a2e6a2acacdf6f"> 447</a></span>&#160;<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#aaf753116ce7d16f627a2e6a2acacdf6f">PerfLogImp::start</a>()</div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;{</div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#ac8aa2814945a4677e948d62836b34cc4">setup_</a>.<a class="code" href="structripple_1_1perf_1_1PerfLog_1_1Setup.html#a54b372860912c7f6acfc8f084e981574">perfLog</a>.size())</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a7c6f683b5952c800a659a810582462f2">thread_</a> = <a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/thread.html">std::thread</a>(&amp;<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#afd6c74e0ad7435848b1306d0ea1ca267">PerfLogImp::run</a>, <span class="keyword">this</span>);</div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;}</div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; </div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="classripple_1_1perf_1_1PerfLogImp.html#a8e96e40c590fb7d220c384e45922a3c3"> 454</a></span>&#160;<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a8e96e40c590fb7d220c384e45922a3c3">PerfLogImp::stop</a>()</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;{</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a7c6f683b5952c800a659a810582462f2">thread_</a>.<a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/thread/joinable.html">joinable</a>())</div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; {</div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; {</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <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_1perf_1_1PerfLogImp.html#ac64e671807b0a09696d1392244b795dd">mutex_</a>);</div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a9debb4743b9d653d2f6a9bc528ea4d5f">stop_</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a75bd7e44bdf90e50fa50640e877f091a">cond_</a>.<a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/condition_variable/notify_one.html">notify_one</a>();</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; }</div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <a class="code" href="classripple_1_1perf_1_1PerfLogImp.html#a7c6f683b5952c800a659a810582462f2">thread_</a>.<a class="codeRef" href="http://en.cppreference.com/w/cpp/thread/thread/join.html">join</a>();</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; }</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;}</div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; </div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;<span class="comment">//-----------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; </div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<a class="code" href="structripple_1_1perf_1_1PerfLog_1_1Setup.html">PerfLog::Setup</a></div>
<div class="line"><a name="l00470"></a><span class="lineno"><a class="line" href="namespaceripple_1_1perf.html#a05a394877a70f3d8ee8ec2a42b906763"> 470</a></span>&#160;<a class="code" href="namespaceripple_1_1perf.html#a05a394877a70f3d8ee8ec2a42b906763">setup_PerfLog</a>(<a class="code" href="classripple_1_1Section.html">Section</a> <span class="keyword">const</span>&amp; section, boost::filesystem::path <span class="keyword">const</span>&amp; configDir)</div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;{</div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <a class="code" href="structripple_1_1perf_1_1PerfLog_1_1Setup.html">PerfLog::Setup</a> setup;</div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> perfLog;</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <a class="code" href="namespaceripple.html#a53f80df10254751781250aa20704e98f">set</a>(perfLog, <span class="stringliteral">&quot;perf_log&quot;</span>, section);</div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordflow">if</span> (perfLog.<a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>())</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; {</div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; setup.<a class="code" href="structripple_1_1perf_1_1PerfLog_1_1Setup.html#a54b372860912c7f6acfc8f084e981574">perfLog</a> = boost::filesystem::path(perfLog);</div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keywordflow">if</span> (setup.<a class="code" href="structripple_1_1perf_1_1PerfLog_1_1Setup.html#a54b372860912c7f6acfc8f084e981574">perfLog</a>.is_relative())</div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; {</div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; setup.<a class="code" href="structripple_1_1perf_1_1PerfLog_1_1Setup.html#a54b372860912c7f6acfc8f084e981574">perfLog</a> =</div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; boost::filesystem::absolute(setup.<a class="code" href="structripple_1_1perf_1_1PerfLog_1_1Setup.html#a54b372860912c7f6acfc8f084e981574">perfLog</a>, configDir);</div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; }</div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; }</div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; </div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a> logInterval;</div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceripple.html#a55f440d44d3b98aa990fadd4ebb7c87e">get_if_exists</a>(section, <span class="stringliteral">&quot;log_interval&quot;</span>, logInterval))</div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; setup.<a class="code" href="structripple_1_1perf_1_1PerfLog_1_1Setup.html#af75669578067c4dc062f0e8cbe722060">logInterval</a> = <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::seconds</a>(logInterval);</div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordflow">return</span> setup;</div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;}</div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; </div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;<a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr&lt;PerfLog&gt;</a></div>
<div class="line"><a name="l00492"></a><span class="lineno"><a class="line" href="namespaceripple_1_1perf.html#aacc161855367e57a3b88bb94b97e27c8"> 492</a></span>&#160;<a class="code" href="namespaceripple_1_1perf.html#aacc161855367e57a3b88bb94b97e27c8">make_PerfLog</a>(</div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <a class="code" href="structripple_1_1perf_1_1PerfLog_1_1Setup.html">PerfLog::Setup</a> <span class="keyword">const</span>&amp; setup,</div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <a class="code" href="classbeast_1_1Journal.html">beast::Journal</a> journal,</div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a>&lt;<span class="keywordtype">void</span>()&gt;&amp;&amp; signalStop)</div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;{</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keywordflow">return</span> std::make_unique&lt;PerfLogImp&gt;(setup, journal, std::move(signalStop));</div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;}</div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; </div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;} <span class="comment">// namespace perf</span></div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;} <span class="comment">// namespace ripple</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassbeast_1_1Journal_html_a3dfb8e2e3eecccdb5cf78ff21bca069c"><div class="ttname"><a href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">beast::Journal::fatal</a></div><div class="ttdeci">Stream fatal() const</div><div class="ttdef"><b>Definition:</b> <a href="Journal_8h_source.html#l00339">Journal.h:339</a></div></div>
<div class="ttc" id="aclassripple_1_1Section_html"><div class="ttname"><a href="classripple_1_1Section.html">ripple::Section</a></div><div class="ttdoc">Holds a collection of configuration values.</div><div class="ttdef"><b>Definition:</b> <a href="BasicConfig_8h_source.html#l00043">BasicConfig.h:43</a></div></div>
<div class="ttc" id="asstream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/sstream.html">sstream</a></div></div>
<div class="ttc" id="aresize_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/resize.html">std::vector::resize</a></div><div class="ttdeci">T resize(T... args)</div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Jq_html_ac1a27c3de1704642d3e40fd61a2b37be"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Jq.html#ac1a27c3de1704642d3e40fd61a2b37be">ripple::perf::PerfLogImp::Counters::Jq::runningDuration</a></div><div class="ttdeci">microseconds runningDuration</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00105">PerfLogImp.h:105</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Rpc_html_a563fe00d196b141fcbb3b5d13f8163aa"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Rpc.html#a563fe00d196b141fcbb3b5d13f8163aa">ripple::perf::PerfLogImp::Counters::Rpc::started</a></div><div class="ttdeci">std::uint64_t started</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00086">PerfLogImp.h:86</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Jq_html_ac1a27c3de1704642d3e40fd61a2b37be"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Jq.html#ac1a27c3de1704642d3e40fd61a2b37be">ripple::perf::PerfLogImp::Counters::Jq::runningDuration</a></div><div class="ttdeci">microseconds runningDuration</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00104">PerfLogImp.h:104</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Rpc_html_a563fe00d196b141fcbb3b5d13f8163aa"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Rpc.html#a563fe00d196b141fcbb3b5d13f8163aa">ripple::perf::PerfLogImp::Counters::Rpc::started</a></div><div class="ttdeci">std::uint64_t started</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00085">PerfLogImp.h:85</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="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Jq_html_a6a855ee13d576c6705bb4cfde6d8c1dd"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Jq.html#a6a855ee13d576c6705bb4cfde6d8c1dd">ripple::perf::PerfLogImp::Counters::Jq::finished</a></div><div class="ttdeci">std::uint64_t finished</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00102">PerfLogImp.h:102</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_ae5ea969b68090bcca188a43c65189c66"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#ae5ea969b68090bcca188a43c65189c66">ripple::perf::PerfLogImp::lastLog_</a></div><div class="ttdeci">system_time_point lastLog_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00134">PerfLogImp.h:134</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Jq_html_a6a855ee13d576c6705bb4cfde6d8c1dd"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Jq.html#a6a855ee13d576c6705bb4cfde6d8c1dd">ripple::perf::PerfLogImp::Counters::Jq::finished</a></div><div class="ttdeci">std::uint64_t finished</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00101">PerfLogImp.h:101</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_ae5ea969b68090bcca188a43c65189c66"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#ae5ea969b68090bcca188a43c65189c66">ripple::perf::PerfLogImp::lastLog_</a></div><div class="ttdeci">system_time_point lastLog_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00133">PerfLogImp.h:133</a></div></div>
<div class="ttc" id="autility_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/utility.html">utility</a></div></div>
<div class="ttc" id="aclassripple_1_1Stoppable_html_a65a95f9c14637491df60d3a07518fa09"><div class="ttname"><a href="classripple_1_1Stoppable.html#a65a95f9c14637491df60d3a07518fa09">ripple::Stoppable::stopped</a></div><div class="ttdeci">void stopped()</div><div class="ttdoc">Called by derived classes to indicate that the stoppable has stopped.</div><div class="ttdef"><b>Definition:</b> <a href="Stoppable_8cpp_source.html#l00072">Stoppable.cpp:72</a></div></div>
<div class="ttc" id="aclassripple_1_1JobTypes_html"><div class="ttname"><a href="classripple_1_1JobTypes.html">ripple::JobTypes</a></div><div class="ttdef"><b>Definition:</b> <a href="JobTypes_8h_source.html#l00032">JobTypes.h:32</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Jq_html_a648c1390f4bd4e8f6dbc90b6189dc262"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Jq.html#a648c1390f4bd4e8f6dbc90b6189dc262">ripple::perf::PerfLogImp::Counters::Jq::queued</a></div><div class="ttdeci">std::uint64_t queued</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00100">PerfLogImp.h:100</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Jq_html_a648c1390f4bd4e8f6dbc90b6189dc262"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Jq.html#a648c1390f4bd4e8f6dbc90b6189dc262">ripple::perf::PerfLogImp::Counters::Jq::queued</a></div><div class="ttdeci">std::uint64_t queued</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00099">PerfLogImp.h:99</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_ae99b291a5018e217c8e133f58d747249"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#ae99b291a5018e217c8e133f58d747249">ripple::perf::PerfLogImp::openLog</a></div><div class="ttdeci">void openLog()</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00220">PerfLogImp.cpp:220</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLog_1_1Setup_html_a54b372860912c7f6acfc8f084e981574"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLog_1_1Setup.html#a54b372860912c7f6acfc8f084e981574">ripple::perf::PerfLog::Setup::perfLog</a></div><div class="ttdeci">boost::filesystem::path perfLog</div><div class="ttdef"><b>Definition:</b> <a href="PerfLog_8h_source.html#l00062">PerfLog.h:62</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLog_1_1Setup_html_a54b372860912c7f6acfc8f084e981574"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLog_1_1Setup.html#a54b372860912c7f6acfc8f084e981574">ripple::perf::PerfLog::Setup::perfLog</a></div><div class="ttdeci">boost::filesystem::path perfLog</div><div class="ttdef"><b>Definition:</b> <a href="PerfLog_8h_source.html#l00063">PerfLog.h:63</a></div></div>
<div class="ttc" id="anamespaceJson_html_a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4"><div class="ttname"><a href="namespaceJson.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">Json::arrayValue</a></div><div class="ttdeci">@ arrayValue</div><div class="ttdoc">array value (ordered list)</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8h_source.html#l00042">json_value.h:42</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_html_ad62cf933e90b3252ac06736c11a9f565"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#ad62cf933e90b3252ac06736c11a9f565">ripple::perf::PerfLogImp::Counters::jobsMutex_</a></div><div class="ttdeci">std::mutex jobsMutex_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00113">PerfLogImp.h:113</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_html_ad62cf933e90b3252ac06736c11a9f565"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#ad62cf933e90b3252ac06736c11a9f565">ripple::perf::PerfLogImp::Counters::jobsMutex_</a></div><div class="ttdeci">std::mutex jobsMutex_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00112">PerfLogImp.h:112</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="aclassJson_1_1Compact_html"><div class="ttname"><a href="classJson_1_1Compact.html">Json::Compact</a></div><div class="ttdoc">Decorator for streaming out compact json.</div><div class="ttdef"><b>Definition:</b> <a href="json__writer_8h_source.html#l00316">json_writer.h:316</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_html_ab344810a6dfdbbc9e2808c8ff0d7683f"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#ab344810a6dfdbbc9e2808c8ff0d7683f">ripple::perf::PerfLogImp::Counters::methodsMutex_</a></div><div class="ttdeci">std::mutex methodsMutex_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00115">PerfLogImp.h:115</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_html_ab344810a6dfdbbc9e2808c8ff0d7683f"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#ab344810a6dfdbbc9e2808c8ff0d7683f">ripple::perf::PerfLogImp::Counters::methodsMutex_</a></div><div class="ttdeci">std::mutex methodsMutex_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00114">PerfLogImp.h:114</a></div></div>
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></div><div class="ttdoc">STL class.</div></div>
<div class="ttc" id="asize_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/size.html">std::vector::size</a></div><div class="ttdeci">T size(T... args)</div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_ae20e7fc6dada760cae91c8b37fa87422"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#ae20e7fc6dada760cae91c8b37fa87422">ripple::perf::PerfLogImp::jobFinish</a></div><div class="ttdeci">void jobFinish(JobType const type, microseconds dur, int instance) override</div><div class="ttdoc">Log job finishing.</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00413">PerfLogImp.cpp:413</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_ae2e4abdb39e2af357e8706107f1af6ff"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#ae2e4abdb39e2af357e8706107f1af6ff">ripple::perf::PerfLogImp::j_</a></div><div class="ttdeci">const beast::Journal j_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00127">PerfLogImp.h:127</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_a5afbfcca0cf2c81ac88fa18aabd50b1f"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#a5afbfcca0cf2c81ac88fa18aabd50b1f">ripple::perf::PerfLogImp::rotate</a></div><div class="ttdeci">void rotate() override</div><div class="ttdoc">Rotate perf log file.</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00440">PerfLogImp.cpp:440</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_ae20e7fc6dada760cae91c8b37fa87422"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#ae20e7fc6dada760cae91c8b37fa87422">ripple::perf::PerfLogImp::jobFinish</a></div><div class="ttdeci">void jobFinish(JobType const type, microseconds dur, int instance) override</div><div class="ttdoc">Log job finishing.</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00409">PerfLogImp.cpp:409</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_ae2e4abdb39e2af357e8706107f1af6ff"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#ae2e4abdb39e2af357e8706107f1af6ff">ripple::perf::PerfLogImp::j_</a></div><div class="ttdeci">const beast::Journal j_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00126">PerfLogImp.h:126</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_a5afbfcca0cf2c81ac88fa18aabd50b1f"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#a5afbfcca0cf2c81ac88fa18aabd50b1f">ripple::perf::PerfLogImp::rotate</a></div><div class="ttdeci">void rotate() override</div><div class="ttdoc">Rotate perf log file.</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00436">PerfLogImp.cpp:436</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::microseconds</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_a75bd7e44bdf90e50fa50640e877f091a"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#a75bd7e44bdf90e50fa50640e877f091a">ripple::perf::PerfLogImp::cond_</a></div><div class="ttdeci">std::condition_variable cond_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00133">PerfLogImp.h:133</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_a75bd7e44bdf90e50fa50640e877f091a"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#a75bd7e44bdf90e50fa50640e877f091a">ripple::perf::PerfLogImp::cond_</a></div><div class="ttdeci">std::condition_variable cond_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00132">PerfLogImp.h:132</a></div></div>
<div class="ttc" id="aiterator_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/iterator.html">iterator</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_a841523ac7eb48e74b54d5e2f8bb10ae1"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#a841523ac7eb48e74b54d5e2f8bb10ae1">ripple::perf::PerfLogImp::PerfLogImp</a></div><div class="ttdeci">PerfLogImp(Setup const &amp;setup, Stoppable &amp;parent, beast::Journal journal, std::function&lt; void()&gt; &amp;&amp;signalStop)</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00304">PerfLogImp.cpp:304</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Rpc_html_a600de761715fd64d460c8fa354102c06"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Rpc.html#a600de761715fd64d460c8fa354102c06">ripple::perf::PerfLogImp::Counters::Rpc::finished</a></div><div class="ttdeci">std::uint64_t finished</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00087">PerfLogImp.h:87</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Rpc_html_a600de761715fd64d460c8fa354102c06"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Rpc.html#a600de761715fd64d460c8fa354102c06">ripple::perf::PerfLogImp::Counters::Rpc::finished</a></div><div class="ttdeci">std::uint64_t finished</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00086">PerfLogImp.h:86</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="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Jq_html_abf04ceac08b10f40028e1502c49f99bf"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Jq.html#abf04ceac08b10f40028e1502c49f99bf">ripple::perf::PerfLogImp::Counters::Jq::started</a></div><div class="ttdeci">std::uint64_t started</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00101">PerfLogImp.h:101</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_html_a63af43350af863cbf29c75b635b30500"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a63af43350af863cbf29c75b635b30500">ripple::perf::PerfLogImp::Counters::methods_</a></div><div class="ttdeci">std::unordered_map&lt; std::uint64_t, MethodStart &gt; methods_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00114">PerfLogImp.h:114</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Jq_html_abf04ceac08b10f40028e1502c49f99bf"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Jq.html#abf04ceac08b10f40028e1502c49f99bf">ripple::perf::PerfLogImp::Counters::Jq::started</a></div><div class="ttdeci">std::uint64_t started</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00100">PerfLogImp.h:100</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_html_a63af43350af863cbf29c75b635b30500"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a63af43350af863cbf29c75b635b30500">ripple::perf::PerfLogImp::Counters::methods_</a></div><div class="ttdeci">std::unordered_map&lt; std::uint64_t, MethodStart &gt; methods_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00113">PerfLogImp.h:113</a></div></div>
<div class="ttc" id="afunction_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function</a></div></div>
<div class="ttc" id="anamespaceripple_1_1perf_html_a3084f09507655223d35f1f698f227d88"><div class="ttname"><a href="namespaceripple_1_1perf.html#a3084f09507655223d35f1f698f227d88">ripple::perf::make_PerfLog</a></div><div class="ttdeci">std::unique_ptr&lt; PerfLog &gt; make_PerfLog(PerfLog::Setup const &amp;setup, Stoppable &amp;parent, beast::Journal journal, std::function&lt; void()&gt; &amp;&amp;signalStop)</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00502">PerfLogImp.cpp:502</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Rpc_html_ab2565b12bb65b4e8e08755cbbacc4832"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Rpc.html#ab2565b12bb65b4e8e08755cbbacc4832">ripple::perf::PerfLogImp::Counters::Rpc::errored</a></div><div class="ttdeci">std::uint64_t errored</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00088">PerfLogImp.h:88</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Rpc_html_ab2565b12bb65b4e8e08755cbbacc4832"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Rpc.html#ab2565b12bb65b4e8e08755cbbacc4832">ripple::perf::PerfLogImp::Counters::Rpc::errored</a></div><div class="ttdeci">std::uint64_t errored</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00087">PerfLogImp.h:87</a></div></div>
<div class="ttc" id="aiostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/iostream.html">iostream</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_a72eb845c998086d8a252aa7096963613"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#a72eb845c998086d8a252aa7096963613">ripple::perf::PerfLogImp::hostname_</a></div><div class="ttdeci">const std::string hostname_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00135">PerfLogImp.h:135</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLog_1_1Setup_html"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLog_1_1Setup.html">ripple::perf::PerfLog::Setup</a></div><div class="ttdoc">Configuration from [perf] section of rippled.cfg.</div><div class="ttdef"><b>Definition:</b> <a href="PerfLog_8h_source.html#l00060">PerfLog.h:60</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_a4112e34e1dfcead94a54b47ca1c0407c"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#a4112e34e1dfcead94a54b47ca1c0407c">ripple::perf::PerfLogImp::jobStart</a></div><div class="ttdeci">void jobStart(JobType const type, microseconds dur, steady_time_point startTime, int instance) override</div><div class="ttdoc">Log job executing.</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00390">PerfLogImp.cpp:390</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_a72eb845c998086d8a252aa7096963613"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#a72eb845c998086d8a252aa7096963613">ripple::perf::PerfLogImp::hostname_</a></div><div class="ttdeci">const std::string hostname_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00134">PerfLogImp.h:134</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLog_1_1Setup_html"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLog_1_1Setup.html">ripple::perf::PerfLog::Setup</a></div><div class="ttdoc">Configuration from [perf] section of rippled.cfg.</div><div class="ttdef"><b>Definition:</b> <a href="PerfLog_8h_source.html#l00061">PerfLog.h:61</a></div></div>
<div class="ttc" id="anamespaceripple_1_1perf_html_aacc161855367e57a3b88bb94b97e27c8"><div class="ttname"><a href="namespaceripple_1_1perf.html#aacc161855367e57a3b88bb94b97e27c8">ripple::perf::make_PerfLog</a></div><div class="ttdeci">std::unique_ptr&lt; PerfLog &gt; make_PerfLog(PerfLog::Setup const &amp;setup, beast::Journal journal, std::function&lt; void()&gt; &amp;&amp;signalStop)</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00492">PerfLogImp.cpp:492</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_a4112e34e1dfcead94a54b47ca1c0407c"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#a4112e34e1dfcead94a54b47ca1c0407c">ripple::perf::PerfLogImp::jobStart</a></div><div class="ttdeci">void jobStart(JobType const type, microseconds dur, steady_time_point startTime, int instance) override</div><div class="ttdoc">Log job executing.</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00386">PerfLogImp.cpp:386</a></div></div>
<div class="ttc" id="anamespaceripple_html_a55f440d44d3b98aa990fadd4ebb7c87e"><div class="ttname"><a href="namespaceripple.html#a55f440d44d3b98aa990fadd4ebb7c87e">ripple::get_if_exists</a></div><div class="ttdeci">bool get_if_exists(Section const &amp;section, std::string const &amp;name, T &amp;v)</div><div class="ttdef"><b>Definition:</b> <a href="BasicConfig_8h_source.html#l00347">BasicConfig.h:347</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="astdexcept_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/stdexcept.html">stdexcept</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_ad7d1af796595eb57075c4d79fc92081e"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#ad7d1af796595eb57075c4d79fc92081e">ripple::perf::PerfLogImp::rotate_</a></div><div class="ttdeci">bool rotate_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00137">PerfLogImp.h:137</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_ad7d1af796595eb57075c4d79fc92081e"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#ad7d1af796595eb57075c4d79fc92081e">ripple::perf::PerfLogImp::rotate_</a></div><div class="ttdeci">bool rotate_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00136">PerfLogImp.h:136</a></div></div>
<div class="ttc" id="ajoinable_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/thread/thread/joinable.html">std::thread::joinable</a></div><div class="ttdeci">T joinable(T... args)</div></div>
<div class="ttc" id="aclassJson_1_1Value_html_a7e49ac977e4bcf59745a09d426669f75"><div class="ttname"><a href="classJson_1_1Value.html#a7e49ac977e4bcf59745a09d426669f75">Json::Value::append</a></div><div class="ttdeci">Value &amp; append(const Value &amp;value)</div><div class="ttdoc">Append value to array at the end.</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00882">json_value.cpp:882</a></div></div>
<div class="ttc" id="aclassripple_1_1Stoppable_html"><div class="ttname"><a href="classripple_1_1Stoppable.html">ripple::Stoppable</a></div><div class="ttdoc">Provides an interface for starting and stopping.</div><div class="ttdef"><b>Definition:</b> <a href="Stoppable_8h_source.html#l00201">Stoppable.h:201</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="anamespaceJson_html_a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6"><div class="ttname"><a href="namespaceJson.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">Json::objectValue</a></div><div class="ttdeci">@ objectValue</div><div class="ttdoc">object value (collection of name/value pairs).</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8h_source.html#l00043">json_value.h:43</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_a3ecaa02f9bbc6c0cd3990688f8e5ee4b"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#a3ecaa02f9bbc6c0cd3990688f8e5ee4b">ripple::perf::PerfLogImp::onStop</a></div><div class="ttdeci">void onStop() override</div><div class="ttdoc">Override called when the stop notification is issued.</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00458">PerfLogImp.cpp:458</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_ac64e671807b0a09696d1392244b795dd"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#ac64e671807b0a09696d1392244b795dd">ripple::perf::PerfLogImp::mutex_</a></div><div class="ttdeci">std::mutex mutex_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00132">PerfLogImp.h:132</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_html_a497a30fda256f1ca07cb388aaaa77821"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a497a30fda256f1ca07cb388aaaa77821">ripple::perf::PerfLogImp::Counters::jobs_</a></div><div class="ttdeci">std::vector&lt; std::pair&lt; JobType, steady_time_point &gt; &gt; jobs_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00112">PerfLogImp.h:112</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_html_afe955a760afed3a898cca80240fb8591"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#afe955a760afed3a898cca80240fb8591">ripple::perf::PerfLogImp::Counters::jq_</a></div><div class="ttdeci">std::unordered_map&lt; JobType, Locked&lt; Jq &gt; &gt; jq_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00111">PerfLogImp.h:111</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_ac64e671807b0a09696d1392244b795dd"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#ac64e671807b0a09696d1392244b795dd">ripple::perf::PerfLogImp::mutex_</a></div><div class="ttdeci">std::mutex mutex_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00131">PerfLogImp.h:131</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_html_a497a30fda256f1ca07cb388aaaa77821"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a497a30fda256f1ca07cb388aaaa77821">ripple::perf::PerfLogImp::Counters::jobs_</a></div><div class="ttdeci">std::vector&lt; std::pair&lt; JobType, steady_time_point &gt; &gt; jobs_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00111">PerfLogImp.h:111</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_html_afe955a760afed3a898cca80240fb8591"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#afe955a760afed3a898cca80240fb8591">ripple::perf::PerfLogImp::Counters::jq_</a></div><div class="ttdeci">std::unordered_map&lt; JobType, Locked&lt; Jq &gt; &gt; jq_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00110">PerfLogImp.h:110</a></div></div>
<div class="ttc" id="aunique_lock_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/thread/unique_lock.html">std::unique_lock</a></div><div class="ttdoc">STL class.</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>
<div class="ttc" id="anamespaceripple_html_ae0f54f8ce649d639bf3e2b295347e17aa24d4471c57d1ff11dd7e60e7525c3882"><div class="ttname"><a href="namespaceripple.html#ae0f54f8ce649d639bf3e2b295347e17aa24d4471c57d1ff11dd7e60e7525c3882">ripple::jtINVALID</a></div><div class="ttdeci">@ jtINVALID</div><div class="ttdef"><b>Definition:</b> <a href="Job_8h_source.html#l00035">Job.h:35</a></div></div>
<div class="ttc" id="anamespaceripple_html_ae0f54f8ce649d639bf3e2b295347e17aa24d4471c57d1ff11dd7e60e7525c3882"><div class="ttname"><a href="namespaceripple.html#ae0f54f8ce649d639bf3e2b295347e17aa24d4471c57d1ff11dd7e60e7525c3882">ripple::jtINVALID</a></div><div class="ttdeci">@ jtINVALID</div><div class="ttdef"><b>Definition:</b> <a href="Job_8h_source.html#l00036">Job.h:36</a></div></div>
<div class="ttc" id="anamespaceripple_html_a53f80df10254751781250aa20704e98f"><div class="ttname"><a href="namespaceripple.html#a53f80df10254751781250aa20704e98f">ripple::set</a></div><div class="ttdeci">bool set(T &amp;target, std::string const &amp;name, Section const &amp;section)</div><div class="ttdoc">Set a value from a configuration Section If the named value is not found or doesn't parse as a T,...</div><div class="ttdef"><b>Definition:</b> <a href="BasicConfig_8h_source.html#l00276">BasicConfig.h:276</a></div></div>
<div class="ttc" id="aclassripple_1_1JobTypes_html_a4e5843a04a010377e17cd37cc1bc7125"><div class="ttname"><a href="classripple_1_1JobTypes.html#a4e5843a04a010377e17cd37cc1bc7125">ripple::JobTypes::name</a></div><div class="ttdeci">static std::string const &amp; name(JobType jt)</div><div class="ttdef"><b>Definition:</b> <a href="JobTypes_8h_source.html#l00110">JobTypes.h:110</a></div></div>
<div class="ttc" id="aclose_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ofstream/close.html">std::ofstream::close</a></div><div class="ttdeci">T close(T... args)</div></div>
<div class="ttc" id="atime_point_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/time_point.html">std::chrono::time_point</a></div></div>
<div class="ttc" id="acstdint_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/cstdint.html">cstdint</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_a7c6f683b5952c800a659a810582462f2"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#a7c6f683b5952c800a659a810582462f2">ripple::perf::PerfLogImp::thread_</a></div><div class="ttdeci">std::thread thread_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00131">PerfLogImp.h:131</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_a7c6f683b5952c800a659a810582462f2"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#a7c6f683b5952c800a659a810582462f2">ripple::perf::PerfLogImp::thread_</a></div><div class="ttdeci">std::thread thread_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00130">PerfLogImp.h:130</a></div></div>
<div class="ttc" id="anamespaceripple_html_a6434c1a0fd22b77e2e4a228c0eca79eba43b5c9175984c071f30b873fdce0a000"><div class="ttname"><a href="namespaceripple.html#a6434c1a0fd22b77e2e4a228c0eca79eba43b5c9175984c071f30b873fdce0a000">ripple::ValStatus::current</a></div><div class="ttdeci">@ current</div><div class="ttdoc">This was a new validation and was added.</div></div>
<div class="ttc" id="aopen_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ofstream/open.html">std::ofstream::open</a></div><div class="ttdeci">T open(T... args)</div></div>
<div class="ttc" id="aclassbeast_1_1Journal_html"><div class="ttname"><a href="classbeast_1_1Journal.html">beast::Journal</a></div><div class="ttdoc">A generic endpoint for log messages.</div><div class="ttdef"><b>Definition:</b> <a href="Journal_8h_source.html#l00058">Journal.h:58</a></div></div>
<div class="ttc" id="ainteger_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint64_t</a></div></div>
<div class="ttc" id="aatomic_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/atomic.html">atomic</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_a039f133715e7b70d679d25c8b4275e04"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#a039f133715e7b70d679d25c8b4275e04">ripple::perf::PerfLogImp::signalStop_</a></div><div class="ttdeci">const std::function&lt; void()&gt; signalStop_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00128">PerfLogImp.h:128</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_html_a05bb53df2b2251dc6150680f12098954"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a05bb53df2b2251dc6150680f12098954">ripple::perf::PerfLogImp::Counters::rpc_</a></div><div class="ttdeci">std::unordered_map&lt; std::string, Locked&lt; Rpc &gt; &gt; rpc_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00110">PerfLogImp.h:110</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Jq_html"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Jq.html">ripple::perf::PerfLogImp::Counters::Jq</a></div><div class="ttdoc">Job Queue task performance counters.</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00096">PerfLogImp.h:96</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_ab800b42ef0191eb5675e7f65acde20bd"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#ab800b42ef0191eb5675e7f65acde20bd">ripple::perf::PerfLogImp::~PerfLogImp</a></div><div class="ttdeci">~PerfLogImp() override</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00317">PerfLogImp.cpp:317</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_a039f133715e7b70d679d25c8b4275e04"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#a039f133715e7b70d679d25c8b4275e04">ripple::perf::PerfLogImp::signalStop_</a></div><div class="ttdeci">const std::function&lt; void()&gt; signalStop_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00127">PerfLogImp.h:127</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_adb201719cfc0b6521dc6b5adda8dad15"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#adb201719cfc0b6521dc6b5adda8dad15">ripple::perf::PerfLogImp::PerfLogImp</a></div><div class="ttdeci">PerfLogImp(Setup const &amp;setup, beast::Journal journal, std::function&lt; void()&gt; &amp;&amp;signalStop)</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00304">PerfLogImp.cpp:304</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_html_a05bb53df2b2251dc6150680f12098954"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a05bb53df2b2251dc6150680f12098954">ripple::perf::PerfLogImp::Counters::rpc_</a></div><div class="ttdeci">std::unordered_map&lt; std::string, Locked&lt; Rpc &gt; &gt; rpc_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00109">PerfLogImp.h:109</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Jq_html"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Jq.html">ripple::perf::PerfLogImp::Counters::Jq</a></div><div class="ttdoc">Job Queue task performance counters.</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00095">PerfLogImp.h:95</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_ab800b42ef0191eb5675e7f65acde20bd"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#ab800b42ef0191eb5675e7f65acde20bd">ripple::perf::PerfLogImp::~PerfLogImp</a></div><div class="ttdeci">~PerfLogImp() override</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00313">PerfLogImp.cpp:313</a></div></div>
<div class="ttc" id="anotify_one_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/thread/condition_variable/notify_one.html">std::condition_variable::notify_one</a></div><div class="ttdeci">T notify_one(T... args)</div></div>
<div class="ttc" id="anamespaceripple_1_1perf_html_a05a394877a70f3d8ee8ec2a42b906763"><div class="ttname"><a href="namespaceripple_1_1perf.html#a05a394877a70f3d8ee8ec2a42b906763">ripple::perf::setup_PerfLog</a></div><div class="ttdeci">PerfLog::Setup setup_PerfLog(Section const &amp;section, boost::filesystem::path const &amp;configDir)</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00480">PerfLogImp.cpp:480</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Jq_html_aedd700468b7cf0377c25969484d4c138"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Jq.html#aedd700468b7cf0377c25969484d4c138">ripple::perf::PerfLogImp::Counters::Jq::queuedDuration</a></div><div class="ttdeci">microseconds queuedDuration</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00104">PerfLogImp.h:104</a></div></div>
<div class="ttc" id="anamespaceripple_1_1perf_html_a05a394877a70f3d8ee8ec2a42b906763"><div class="ttname"><a href="namespaceripple_1_1perf.html#a05a394877a70f3d8ee8ec2a42b906763">ripple::perf::setup_PerfLog</a></div><div class="ttdeci">PerfLog::Setup setup_PerfLog(Section const &amp;section, boost::filesystem::path const &amp;configDir)</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00470">PerfLogImp.cpp:470</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Jq_html_aedd700468b7cf0377c25969484d4c138"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Jq.html#aedd700468b7cf0377c25969484d4c138">ripple::perf::PerfLogImp::Counters::Jq::queuedDuration</a></div><div class="ttdeci">microseconds queuedDuration</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00103">PerfLogImp.h:103</a></div></div>
<div class="ttc" id="anamespacebeast_html_ab3bd70e6eb43bbd99b5fe518efce8c7e"><div class="ttname"><a href="namespacebeast.html#ab3bd70e6eb43bbd99b5fe518efce8c7e">beast::setCurrentThreadName</a></div><div class="ttdeci">void setCurrentThreadName(std::string_view name)</div><div class="ttdoc">Changes the name of the caller thread.</div><div class="ttdef"><b>Definition:</b> <a href="CurrentThreadName_8cpp_source.html#l00119">CurrentThreadName.cpp:119</a></div></div>
<div class="ttc" id="anamespaceripple_html"><div class="ttname"><a href="namespaceripple.html">ripple</a></div><div class="ttdoc">Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="RCLCensorshipDetector_8h_source.html#l00029">RCLCensorshipDetector.h:29</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLog_html_a2a46a4c21fbebad094b6d7b0b9fc0812"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLog.html#a2a46a4c21fbebad094b6d7b0b9fc0812">ripple::perf::PerfLog::steady_time_point</a></div><div class="ttdeci">std::chrono::time_point&lt; steady_clock &gt; steady_time_point</div><div class="ttdef"><b>Definition:</b> <a href="PerfLog_8h_source.html#l00051">PerfLog.h:51</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLog_html_a2a46a4c21fbebad094b6d7b0b9fc0812"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLog.html#a2a46a4c21fbebad094b6d7b0b9fc0812">ripple::perf::PerfLog::steady_time_point</a></div><div class="ttdeci">std::chrono::time_point&lt; steady_clock &gt; steady_time_point</div><div class="ttdef"><b>Definition:</b> <a href="PerfLog_8h_source.html#l00052">PerfLog.h:52</a></div></div>
<div class="ttc" id="acstdlib_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/cstdlib.html">cstdlib</a></div></div>
<div class="ttc" id="aendl_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a></div><div class="ttdeci">T endl(T... args)</div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_a9debb4743b9d653d2f6a9bc528ea4d5f"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#a9debb4743b9d653d2f6a9bc528ea4d5f">ripple::perf::PerfLogImp::stop_</a></div><div class="ttdeci">bool stop_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00136">PerfLogImp.h:136</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Rpc_html"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Rpc.html">ripple::perf::PerfLogImp::Counters::Rpc</a></div><div class="ttdoc">RPC performance counters.</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00082">PerfLogImp.h:82</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_a9debb4743b9d653d2f6a9bc528ea4d5f"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#a9debb4743b9d653d2f6a9bc528ea4d5f">ripple::perf::PerfLogImp::stop_</a></div><div class="ttdeci">bool stop_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00135">PerfLogImp.h:135</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Rpc_html"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Rpc.html">ripple::perf::PerfLogImp::Counters::Rpc</a></div><div class="ttdoc">RPC performance counters.</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00081">PerfLogImp.h:81</a></div></div>
<div class="ttc" id="await_until_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/thread/condition_variable/wait_until.html">std::condition_variable::wait_until</a></div><div class="ttdeci">T wait_until(T... args)</div></div>
<div class="ttc" id="anamespacestd_html"><div class="ttname"><a href="namespacestd.html">std</a></div><div class="ttdoc">STL namespace.</div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_a09db64fc2f2fda2ce5baed6593246e3a"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#a09db64fc2f2fda2ce5baed6593246e3a">ripple::perf::PerfLogImp::rpcEnd</a></div><div class="ttdeci">void rpcEnd(std::string const &amp;method, std::uint64_t const requestId, bool finish)</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00342">PerfLogImp.cpp:342</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_a5a6df6b772a186b0c889ebec2cae7678"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#a5a6df6b772a186b0c889ebec2cae7678">ripple::perf::PerfLogImp::rpcStart</a></div><div class="ttdeci">void rpcStart(std::string const &amp;method, std::uint64_t const requestId) override</div><div class="ttdoc">Log start of RPC call.</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00323">PerfLogImp.cpp:323</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_a09db64fc2f2fda2ce5baed6593246e3a"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#a09db64fc2f2fda2ce5baed6593246e3a">ripple::perf::PerfLogImp::rpcEnd</a></div><div class="ttdeci">void rpcEnd(std::string const &amp;method, std::uint64_t const requestId, bool finish)</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00338">PerfLogImp.cpp:338</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_a5a6df6b772a186b0c889ebec2cae7678"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#a5a6df6b772a186b0c889ebec2cae7678">ripple::perf::PerfLogImp::rpcStart</a></div><div class="ttdeci">void rpcStart(std::string const &amp;method, std::uint64_t const requestId) override</div><div class="ttdoc">Log start of RPC call.</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00319">PerfLogImp.cpp:319</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_html_a00784838ca66b11c10bd46349af29e45"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a00784838ca66b11c10bd46349af29e45">ripple::perf::PerfLogImp::Counters::currentJson</a></div><div class="ttdeci">Json::Value currentJson() const</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00171">PerfLogImp.cpp:171</a></div></div>
<div class="ttc" id="acount_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/duration/count.html">std::chrono::microseconds::count</a></div><div class="ttdeci">T count(T... args)</div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_afd6c74e0ad7435848b1306d0ea1ca267"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#afd6c74e0ad7435848b1306d0ea1ca267">ripple::perf::PerfLogImp::run</a></div><div class="ttdeci">void run()</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00254">PerfLogImp.cpp:254</a></div></div>
<div class="ttc" id="aoptional_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/optional.html">optional</a></div></div>
<div class="ttc" id="amutex_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/mutex.html">mutex</a></div></div>
<div class="ttc" id="anamespaceripple_html_ae0f54f8ce649d639bf3e2b295347e17a"><div class="ttname"><a href="namespaceripple.html#ae0f54f8ce649d639bf3e2b295347e17a">ripple::JobType</a></div><div class="ttdeci">JobType</div><div class="ttdef"><b>Definition:</b> <a href="Job_8h_source.html#l00033">Job.h:33</a></div></div>
<div class="ttc" id="anamespaceripple_html_af9776f187d3686a7fba4c2d2fbeebdf4"><div class="ttname"><a href="namespaceripple.html#af9776f187d3686a7fba4c2d2fbeebdf4">ripple::to_string</a></div><div class="ttdeci">std::string to_string(Manifest const &amp;m)</div><div class="ttdoc">Format the specified manifest to a string for debugging purposes.</div><div class="ttdef"><b>Definition:</b> <a href="app_2misc_2impl_2Manifest_8cpp_source.html#l00040">app/misc/impl/Manifest.cpp:40</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_ac8aa2814945a4677e948d62836b34cc4"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#ac8aa2814945a4677e948d62836b34cc4">ripple::perf::PerfLogImp::setup_</a></div><div class="ttdeci">const Setup setup_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00126">PerfLogImp.h:126</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_a32612bcc8d906ddf25a412d4024b33da"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#a32612bcc8d906ddf25a412d4024b33da">ripple::perf::PerfLogImp::onChildrenStopped</a></div><div class="ttdeci">void onChildrenStopped() override</div><div class="ttdoc">Override called when all children have stopped.</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00472">PerfLogImp.cpp:472</a></div></div>
<div class="ttc" id="anamespaceripple_html_ae0f54f8ce649d639bf3e2b295347e17a"><div class="ttname"><a href="namespaceripple.html#ae0f54f8ce649d639bf3e2b295347e17a">ripple::JobType</a></div><div class="ttdeci">JobType</div><div class="ttdef"><b>Definition:</b> <a href="Job_8h_source.html#l00034">Job.h:34</a></div></div>
<div class="ttc" id="anamespaceripple_html_af9776f187d3686a7fba4c2d2fbeebdf4"><div class="ttname"><a href="namespaceripple.html#af9776f187d3686a7fba4c2d2fbeebdf4">ripple::to_string</a></div><div class="ttdeci">std::string to_string(Manifest const &amp;m)</div><div class="ttdoc">Format the specified manifest to a string for debugging purposes.</div><div class="ttdef"><b>Definition:</b> <a href="app_2misc_2impl_2Manifest_8cpp_source.html#l00039">app/misc/impl/Manifest.cpp:39</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_ac8aa2814945a4677e948d62836b34cc4"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#ac8aa2814945a4677e948d62836b34cc4">ripple::perf::PerfLogImp::setup_</a></div><div class="ttdeci">const Setup setup_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00125">PerfLogImp.h:125</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_a8e96e40c590fb7d220c384e45922a3c3"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#a8e96e40c590fb7d220c384e45922a3c3">ripple::perf::PerfLogImp::stop</a></div><div class="ttdeci">void stop() override</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00454">PerfLogImp.cpp:454</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_html_a286f11dc9e9d2f228fe696b971e3c942"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#a286f11dc9e9d2f228fe696b971e3c942">ripple::perf::PerfLogImp::Counters::Counters</a></div><div class="ttdeci">Counters(std::vector&lt; char const * &gt; const &amp;labels, JobTypes const &amp;jobTypes)</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00043">PerfLogImp.cpp:43</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_ad7e95c7d24fd917d729019dd9ee19c3d"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#ad7e95c7d24fd917d729019dd9ee19c3d">ripple::perf::PerfLogImp::logFile_</a></div><div class="ttdeci">std::ofstream logFile_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00130">PerfLogImp.h:130</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_a20fd0dee9b953abca00dc37c4ce43964"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">ripple::perf::PerfLogImp::counters_</a></div><div class="ttdeci">Counters counters_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00129">PerfLogImp.h:129</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_ad7e95c7d24fd917d729019dd9ee19c3d"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#ad7e95c7d24fd917d729019dd9ee19c3d">ripple::perf::PerfLogImp::logFile_</a></div><div class="ttdeci">std::ofstream logFile_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00129">PerfLogImp.h:129</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_a20fd0dee9b953abca00dc37c4ce43964"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#a20fd0dee9b953abca00dc37c4ce43964">ripple::perf::PerfLogImp::counters_</a></div><div class="ttdeci">Counters counters_</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00128">PerfLogImp.h:128</a></div></div>
<div class="ttc" id="aunique_ptr_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr</a></div><div class="ttdoc">STL class.</div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Rpc_html_a4f48de56859fa9b36b537cd467d05f17"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Rpc.html#a4f48de56859fa9b36b537cd467d05f17">ripple::perf::PerfLogImp::Counters::Rpc::duration</a></div><div class="ttdeci">microseconds duration</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00090">PerfLogImp.h:90</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_a2f3601164c8f96b278d3596a617e3a58"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#a2f3601164c8f96b278d3596a617e3a58">ripple::perf::PerfLogImp::jobQueue</a></div><div class="ttdeci">void jobQueue(JobType const type) override</div><div class="ttdoc">Log queued job.</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00377">PerfLogImp.cpp:377</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Rpc_html_a4f48de56859fa9b36b537cd467d05f17"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters_1_1Rpc.html#a4f48de56859fa9b36b537cd467d05f17">ripple::perf::PerfLogImp::Counters::Rpc::duration</a></div><div class="ttdeci">microseconds duration</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8h_source.html#l00089">PerfLogImp.h:89</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_a2f3601164c8f96b278d3596a617e3a58"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#a2f3601164c8f96b278d3596a617e3a58">ripple::perf::PerfLogImp::jobQueue</a></div><div class="ttdeci">void jobQueue(JobType const type) override</div><div class="ttdoc">Log queued job.</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00373">PerfLogImp.cpp:373</a></div></div>
<div class="ttc" id="aunordered_map_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/unordered_map.html">unordered_map</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLog_1_1Setup_html_af75669578067c4dc062f0e8cbe722060"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLog_1_1Setup.html#af75669578067c4dc062f0e8cbe722060">ripple::perf::PerfLog::Setup::logInterval</a></div><div class="ttdeci">milliseconds logInterval</div><div class="ttdef"><b>Definition:</b> <a href="PerfLog_8h_source.html#l00064">PerfLog.h:64</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLog_1_1Setup_html_af75669578067c4dc062f0e8cbe722060"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLog_1_1Setup.html#af75669578067c4dc062f0e8cbe722060">ripple::perf::PerfLog::Setup::logInterval</a></div><div class="ttdeci">milliseconds logInterval</div><div class="ttdef"><b>Definition:</b> <a href="PerfLog_8h_source.html#l00065">PerfLog.h:65</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_aaf753116ce7d16f627a2e6a2acacdf6f"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#aaf753116ce7d16f627a2e6a2acacdf6f">ripple::perf::PerfLogImp::start</a></div><div class="ttdeci">void start() override</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00447">PerfLogImp.cpp:447</a></div></div>
<div class="ttc" id="aclassripple_1_1JobTypes_html_a8d73dfe5019a7e7ef72727198a28061b"><div class="ttname"><a href="classripple_1_1JobTypes.html#a8d73dfe5019a7e7ef72727198a28061b">ripple::JobTypes::size</a></div><div class="ttdeci">Map::size_type size() const</div><div class="ttdef"><b>Definition:</b> <a href="JobTypes_8h_source.html#l00134">JobTypes.h:134</a></div></div>
<div class="ttc" id="ais_open_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ofstream/is_open.html">std::ofstream::is_open</a></div><div class="ttdeci">T is_open(T... args)</div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_a81a7c17c2d7403d410f40266c8dc8a85"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#a81a7c17c2d7403d410f40266c8dc8a85">ripple::perf::PerfLogImp::onStart</a></div><div class="ttdeci">void onStart() override</div><div class="ttdoc">Override called during start.</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00451">PerfLogImp.cpp:451</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_a0ac856fa5485f35e47fdb8352d34b3b7"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#a0ac856fa5485f35e47fdb8352d34b3b7">ripple::perf::PerfLogImp::resizeJobs</a></div><div class="ttdeci">void resizeJobs(int const resize) override</div><div class="ttdoc">Ensure enough room to store each currently executing job.</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00432">PerfLogImp.cpp:432</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_a0ac856fa5485f35e47fdb8352d34b3b7"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#a0ac856fa5485f35e47fdb8352d34b3b7">ripple::perf::PerfLogImp::resizeJobs</a></div><div class="ttdeci">void resizeJobs(int const resize) override</div><div class="ttdoc">Ensure enough room to store each currently executing job.</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00428">PerfLogImp.cpp:428</a></div></div>
<div class="ttc" id="astructripple_1_1perf_1_1PerfLogImp_1_1Counters_html_af79a96d4164c8d6129d816102a8e3ad2"><div class="ttname"><a href="structripple_1_1perf_1_1PerfLogImp_1_1Counters.html#af79a96d4164c8d6129d816102a8e3ad2">ripple::perf::PerfLogImp::Counters::countersJson</a></div><div class="ttdeci">Json::Value countersJson() const</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00076">PerfLogImp.cpp:76</a></div></div>
<div class="ttc" id="aclassripple_1_1perf_1_1PerfLogImp_html_aed1efce69652da91d46e05b8549d3692"><div class="ttname"><a href="classripple_1_1perf_1_1PerfLogImp.html#aed1efce69652da91d46e05b8549d3692">ripple::perf::PerfLogImp::report</a></div><div class="ttdeci">void report()</div><div class="ttdef"><b>Definition:</b> <a href="PerfLogImp_8cpp_source.html#l00279">PerfLogImp.cpp:279</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>