This commit is contained in:
lemire
2024-04-24 06:14:29 +00:00
parent b3e6c90680
commit 4fa5c21397
12 changed files with 260 additions and 248 deletions
@@ -203,7 +203,7 @@ simdjson_inline <a class="el" href="classsimdjson_1_1dom_1_1document__stream_1_1
<p>You should only call <a class="el" href="classsimdjson_1_1dom_1_1document__stream.html#a6c2a07e08213dc9a51754940942f9e69" title="After iterating through the stream, this method returns the number of bytes that were not parsed at t...">truncated_bytes()</a> after streaming through all documents, like so:</p>
<p><a class="el" href="classsimdjson_1_1dom_1_1document__stream.html" title="A forward-only stream of documents.">document_stream</a> stream = parser.parse_many(json,window); for(auto doc : stream) { // do something with doc } size_t truncated = stream.truncated_bytes(); </p>
<p class="definition">Definition at line <a class="el" href="dom_2document__stream-inl_8h_source.html#l00262">262</a> of file <a class="el" href="dom_2document__stream-inl_8h_source.html">document_stream-inl.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="dom_2document__stream-inl_8h_source.html#l00266">266</a> of file <a class="el" href="dom_2document__stream-inl_8h_source.html">document_stream-inl.h</a>.</p>
</div>
</div>
+117 -113
View File
@@ -316,133 +316,137 @@ $(document).ready(function(){initNavTree('dom_2document__stream-inl_8h_source.ht
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">return</span> std::string_view(start, next_doc_index - current_index() + 1);</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordtype">size_t</span> next_doc_index = stream-&gt;batch_start + stream-&gt;parser-&gt;implementation-&gt;structural_indexes[stream-&gt;parser-&gt;implementation-&gt;next_structural_index];</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">return</span> std::string_view(<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(stream-&gt;buf) + current_index(), next_doc_index - current_index() - 1);</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; }</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;}</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; </div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; </div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> document_stream::next() noexcept {</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="comment">// We always exit at once, once in an error condition.</span></div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">if</span> (error) { <span class="keywordflow">return</span>; }</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordtype">size_t</span> svlen = next_doc_index - current_index();</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">if</span>(svlen &gt; 1) {</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; svlen--;</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">return</span> std::string_view(<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(stream-&gt;buf) + current_index(), svlen);</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; }</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;}</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; </div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; </div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="comment">// Load the next document from the batch</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; doc_index = batch_start + parser-&gt;implementation-&gt;structural_indexes[parser-&gt;implementation-&gt;next_structural_index];</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; error = parser-&gt;implementation-&gt;stage2_next(parser-&gt;doc);</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="comment">// If that was the last document in the batch, load another batch (if available)</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">while</span> (error == <a class="code" href="namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9a7aed571b420dcdfe59742e0df97b415a">EMPTY</a>) {</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; batch_start = next_batch_start();</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">if</span> (batch_start &gt;= len) { <span class="keywordflow">break</span>; }</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; </div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="preprocessor">#ifdef SIMDJSON_THREADS_ENABLED</span></div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">if</span>(use_thread) {</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; load_from_stage1_thread();</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; error = run_stage1(*parser, batch_start);</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; }</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; error = run_stage1(*parser, batch_start);</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">if</span> (error) { <span class="keywordflow">continue</span>; } <span class="comment">// If the error was EMPTY, we may want to load another batch.</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="comment">// Run stage 2 on the first document in the batch</span></div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; doc_index = batch_start + parser-&gt;implementation-&gt;structural_indexes[parser-&gt;implementation-&gt;next_structural_index];</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; error = parser-&gt;implementation-&gt;stage2_next(parser-&gt;doc);</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; }</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;}</div>
<div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="classsimdjson_1_1dom_1_1document__stream.html#a2a08525ae815167b73b6393a8999e46b"> 258</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">size_t</span> <a class="code" href="classsimdjson_1_1dom_1_1document__stream.html#a2a08525ae815167b73b6393a8999e46b">document_stream::size_in_bytes</a>() const noexcept {</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">return</span> len;</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;}</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; </div>
<div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="classsimdjson_1_1dom_1_1document__stream.html#a6c2a07e08213dc9a51754940942f9e69"> 262</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">size_t</span> <a class="code" href="classsimdjson_1_1dom_1_1document__stream.html#a6c2a07e08213dc9a51754940942f9e69">document_stream::truncated_bytes</a>() const noexcept {</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">if</span>(error == <a class="code" href="namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9a2d50048bbe409023df4e88f6ffe3bc71">CAPACITY</a>) { <span class="keywordflow">return</span> len - batch_start; }</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classsimdjson_1_1dom_1_1parser.html">parser</a>-&gt;implementation-&gt;structural_indexes[<a class="code" href="classsimdjson_1_1dom_1_1parser.html">parser</a>-&gt;implementation-&gt;n_structural_indexes] - <a class="code" href="classsimdjson_1_1dom_1_1parser.html">parser</a>-&gt;implementation-&gt;structural_indexes[<a class="code" href="classsimdjson_1_1dom_1_1parser.html">parser</a>-&gt;implementation-&gt;n_structural_indexes + 1];</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;}</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; </div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">size_t</span> document_stream::next_batch_start() const noexcept {</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">return</span> batch_start + <a class="code" href="classsimdjson_1_1dom_1_1parser.html">parser</a>-&gt;implementation-&gt;structural_indexes[<a class="code" href="classsimdjson_1_1dom_1_1parser.html">parser</a>-&gt;implementation-&gt;n_structural_indexes];</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> document_stream::next() noexcept {</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="comment">// We always exit at once, once in an error condition.</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">if</span> (error) { <span class="keywordflow">return</span>; }</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; </div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="comment">// Load the next document from the batch</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; doc_index = batch_start + parser-&gt;implementation-&gt;structural_indexes[parser-&gt;implementation-&gt;next_structural_index];</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; error = parser-&gt;implementation-&gt;stage2_next(parser-&gt;doc);</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="comment">// If that was the last document in the batch, load another batch (if available)</span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">while</span> (error == <a class="code" href="namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9a7aed571b420dcdfe59742e0df97b415a">EMPTY</a>) {</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; batch_start = next_batch_start();</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">if</span> (batch_start &gt;= len) { <span class="keywordflow">break</span>; }</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; </div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="preprocessor">#ifdef SIMDJSON_THREADS_ENABLED</span></div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">if</span>(use_thread) {</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; load_from_stage1_thread();</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; error = run_stage1(*parser, batch_start);</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; }</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; error = run_stage1(*parser, batch_start);</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">if</span> (error) { <span class="keywordflow">continue</span>; } <span class="comment">// If the error was EMPTY, we may want to load another batch.</span></div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="comment">// Run stage 2 on the first document in the batch</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; doc_index = batch_start + parser-&gt;implementation-&gt;structural_indexes[parser-&gt;implementation-&gt;next_structural_index];</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; error = parser-&gt;implementation-&gt;stage2_next(parser-&gt;doc);</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; }</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;}</div>
<div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="classsimdjson_1_1dom_1_1document__stream.html#a2a08525ae815167b73b6393a8999e46b"> 262</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">size_t</span> <a class="code" href="classsimdjson_1_1dom_1_1document__stream.html#a2a08525ae815167b73b6393a8999e46b">document_stream::size_in_bytes</a>() const noexcept {</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">return</span> len;</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;}</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; </div>
<div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="classsimdjson_1_1dom_1_1document__stream.html#a6c2a07e08213dc9a51754940942f9e69"> 266</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">size_t</span> <a class="code" href="classsimdjson_1_1dom_1_1document__stream.html#a6c2a07e08213dc9a51754940942f9e69">document_stream::truncated_bytes</a>() const noexcept {</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">if</span>(error == <a class="code" href="namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9a2d50048bbe409023df4e88f6ffe3bc71">CAPACITY</a>) { <span class="keywordflow">return</span> len - batch_start; }</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classsimdjson_1_1dom_1_1parser.html">parser</a>-&gt;implementation-&gt;structural_indexes[<a class="code" href="classsimdjson_1_1dom_1_1parser.html">parser</a>-&gt;implementation-&gt;n_structural_indexes] - <a class="code" href="classsimdjson_1_1dom_1_1parser.html">parser</a>-&gt;implementation-&gt;structural_indexes[<a class="code" href="classsimdjson_1_1dom_1_1parser.html">parser</a>-&gt;implementation-&gt;n_structural_indexes + 1];</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;}</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; </div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="keyword">inline</span> <a class="code" href="namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9">error_code</a> document_stream::run_stage1(<a class="code" href="classsimdjson_1_1dom_1_1parser.html">dom::parser</a> &amp;p, <span class="keywordtype">size_t</span> _batch_start) noexcept {</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordtype">size_t</span> remaining = len - _batch_start;</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">if</span> (remaining &lt;= batch_size) {</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">return</span> p.implementation-&gt;stage1(&amp;buf[_batch_start], remaining, stage1_mode::streaming_final);</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">return</span> p.implementation-&gt;stage1(&amp;buf[_batch_start], batch_size, stage1_mode::streaming_partial);</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; }</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;}</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; </div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="preprocessor">#ifdef SIMDJSON_THREADS_ENABLED</span></div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; </div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> document_stream::load_from_stage1_thread() noexcept {</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; worker-&gt;finish();</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="comment">// Swap to the parser that was loaded up in the thread. Make sure the parser has</span></div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="comment">// enough memory to swap to, as well.</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; std::swap(*parser, stage1_thread_parser);</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; error = stage1_thread_error;</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">if</span> (error) { <span class="keywordflow">return</span>; }</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; <span class="comment">// If there&#39;s anything left, start the stage 1 thread!</span></div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">if</span> (next_batch_start() &lt; len) {</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; start_stage1_thread();</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; }</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;}</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; </div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> document_stream::start_stage1_thread() noexcept {</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="comment">// we call the thread on a lambda that will update</span></div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="comment">// this-&gt;stage1_thread_error</span></div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="comment">// there is only one thread that may write to this value</span></div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="comment">// TODO this is NOT exception-safe.</span></div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; this-&gt;stage1_thread_error = <a class="code" href="namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9ac2aef8f0fc33187cc118c95fade925d2">UNINITIALIZED</a>; <span class="comment">// In case something goes wrong, make sure it&#39;s an error</span></div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordtype">size_t</span> _next_batch_start = this-&gt;next_batch_start();</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"> 304</span>&#160; worker-&gt;run(<span class="keyword">this</span>, &amp; this-&gt;stage1_thread_parser, _next_batch_start);</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;}</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; </div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// SIMDJSON_THREADS_ENABLED</span></div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; </div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;} <span class="comment">// namespace dom</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">size_t</span> document_stream::next_batch_start() const noexcept {</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">return</span> batch_start + <a class="code" href="classsimdjson_1_1dom_1_1parser.html">parser</a>-&gt;implementation-&gt;structural_indexes[<a class="code" href="classsimdjson_1_1dom_1_1parser.html">parser</a>-&gt;implementation-&gt;n_structural_indexes];</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;}</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; </div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="keyword">inline</span> <a class="code" href="namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9">error_code</a> document_stream::run_stage1(<a class="code" href="classsimdjson_1_1dom_1_1parser.html">dom::parser</a> &amp;p, <span class="keywordtype">size_t</span> _batch_start) noexcept {</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordtype">size_t</span> remaining = len - _batch_start;</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">if</span> (remaining &lt;= batch_size) {</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">return</span> p.implementation-&gt;stage1(&amp;buf[_batch_start], remaining, stage1_mode::streaming_final);</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">return</span> p.implementation-&gt;stage1(&amp;buf[_batch_start], batch_size, stage1_mode::streaming_partial);</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; }</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;}</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; </div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="preprocessor">#ifdef SIMDJSON_THREADS_ENABLED</span></div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; </div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> document_stream::load_from_stage1_thread() noexcept {</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; worker-&gt;finish();</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="comment">// Swap to the parser that was loaded up in the thread. Make sure the parser has</span></div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="comment">// enough memory to swap to, as well.</span></div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; std::swap(*parser, stage1_thread_parser);</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; error = stage1_thread_error;</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">if</span> (error) { <span class="keywordflow">return</span>; }</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; </div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="comment">// If there&#39;s anything left, start the stage 1 thread!</span></div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">if</span> (next_batch_start() &lt; len) {</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; start_stage1_thread();</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; }</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;}</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; </div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> document_stream::start_stage1_thread() noexcept {</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="comment">// we call the thread on a lambda that will update</span></div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="comment">// this-&gt;stage1_thread_error</span></div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="comment">// there is only one thread that may write to this value</span></div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="comment">// TODO this is NOT exception-safe.</span></div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; this-&gt;stage1_thread_error = <a class="code" href="namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9ac2aef8f0fc33187cc118c95fade925d2">UNINITIALIZED</a>; <span class="comment">// In case something goes wrong, make sure it&#39;s an error</span></div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordtype">size_t</span> _next_batch_start = this-&gt;next_batch_start();</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; </div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; worker-&gt;run(<span class="keyword">this</span>, &amp; this-&gt;stage1_thread_parser, _next_batch_start);</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; </div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;simdjson_inline simdjson_result&lt;dom::document_stream&gt;::simdjson_result() noexcept</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; : simdjson_result_base() {</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;simdjson_inline simdjson_result&lt;dom::document_stream&gt;::simdjson_result(<a class="code" href="namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9">error_code</a> error) noexcept</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; : simdjson_result_base(error) {</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;simdjson_inline simdjson_result&lt;dom::document_stream&gt;::simdjson_result(dom::document_stream &amp;&amp;value) noexcept</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; : simdjson_result_base(std::forward&lt;dom::document_stream&gt;(value)) {</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;}</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="preprocessor">#if SIMDJSON_EXCEPTIONS</span></div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;simdjson_inline dom::document_stream::iterator simdjson_result&lt;dom::document_stream&gt;::begin() noexcept(false) {</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">if</span> (error()) { <span class="keywordflow">throw</span> simdjson_error(error()); }</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">return</span> first.begin();</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;}</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;simdjson_inline dom::document_stream::iterator simdjson_result&lt;dom::document_stream&gt;::end() noexcept(false) {</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// SIMDJSON_THREADS_ENABLED</span></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"> 313</span>&#160;} <span class="comment">// namespace dom</span></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;simdjson_inline simdjson_result&lt;dom::document_stream&gt;::simdjson_result() noexcept</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; : simdjson_result_base() {</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;simdjson_inline simdjson_result&lt;dom::document_stream&gt;::simdjson_result(<a class="code" href="namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9">error_code</a> error) noexcept</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; : simdjson_result_base(error) {</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;simdjson_inline simdjson_result&lt;dom::document_stream&gt;::simdjson_result(dom::document_stream &amp;&amp;value) noexcept</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; : simdjson_result_base(std::forward&lt;dom::document_stream&gt;(value)) {</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; </div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="preprocessor">#if SIMDJSON_EXCEPTIONS</span></div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;simdjson_inline dom::document_stream::iterator simdjson_result&lt;dom::document_stream&gt;::begin() noexcept(false) {</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">if</span> (error()) { <span class="keywordflow">throw</span> simdjson_error(error()); }</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">return</span> first.end();</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">return</span> first.begin();</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;}</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="preprocessor">#else </span><span class="comment">// SIMDJSON_EXCEPTIONS</span></div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="preprocessor">#ifndef SIMDJSON_DISABLE_DEPRECATED_API</span></div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;simdjson_inline dom::document_stream::iterator simdjson_result&lt;dom::document_stream&gt;::begin() noexcept {</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; first.error = error();</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">return</span> first.begin();</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;simdjson_inline dom::document_stream::iterator simdjson_result&lt;dom::document_stream&gt;::end() noexcept {</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;simdjson_inline dom::document_stream::iterator simdjson_result&lt;dom::document_stream&gt;::end() noexcept(false) {</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">if</span> (error()) { <span class="keywordflow">throw</span> simdjson_error(error()); }</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">return</span> first.end();</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;}</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="preprocessor">#else </span><span class="comment">// SIMDJSON_EXCEPTIONS</span></div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="preprocessor">#ifndef SIMDJSON_DISABLE_DEPRECATED_API</span></div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;simdjson_inline dom::document_stream::iterator simdjson_result&lt;dom::document_stream&gt;::begin() noexcept {</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; first.error = error();</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">return</span> first.end();</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">return</span> first.begin();</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;<span class="preprocessor">#endif </span><span class="comment">// SIMDJSON_DISABLE_DEPRECATED_API</span></div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// SIMDJSON_EXCEPTIONS</span></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="comment">// namespace simdjson</span></div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// SIMDJSON_DOCUMENT_STREAM_INL_H</span></div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;simdjson_inline dom::document_stream::iterator simdjson_result&lt;dom::document_stream&gt;::end() noexcept {</div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; first.error = error();</div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">return</span> first.end();</div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;}</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// SIMDJSON_DISABLE_DEPRECATED_API</span></div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// SIMDJSON_EXCEPTIONS</span></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="comment">// namespace simdjson</span></div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// SIMDJSON_DOCUMENT_STREAM_INL_H</span></div>
<div class="ttc" id="aclasssimdjson_1_1dom_1_1document__stream_1_1iterator_html"><div class="ttname"><a href="classsimdjson_1_1dom_1_1document__stream_1_1iterator.html">simdjson::dom::document_stream::iterator</a></div><div class="ttdoc">An iterator through a forward-only stream of documents.</div><div class="ttdef"><b>Definition:</b> <a href="dom_2document__stream_8h_source.html#l00115">document_stream.h:115</a></div></div>
<div class="ttc" id="aclasssimdjson_1_1dom_1_1document__stream_1_1iterator_html_a09b193fe348fa8a267b96edd96f7515e"><div class="ttname"><a href="classsimdjson_1_1dom_1_1document__stream_1_1iterator.html#a09b193fe348fa8a267b96edd96f7515e">simdjson::dom::document_stream::iterator::operator*</a></div><div class="ttdeci">simdjson_inline reference operator*() noexcept</div><div class="ttdoc">Get the current document (or error).</div><div class="ttdef"><b>Definition:</b> <a href="dom_2document__stream-inl_8h_source.html#l00146">document_stream-inl.h:146</a></div></div>
<div class="ttc" id="aclasssimdjson_1_1dom_1_1document__stream_1_1iterator_html_a56c69d73c7e424e008a28771661ab218"><div class="ttname"><a href="classsimdjson_1_1dom_1_1document__stream_1_1iterator.html#a56c69d73c7e424e008a28771661ab218">simdjson::dom::document_stream::iterator::operator!=</a></div><div class="ttdeci">simdjson_inline bool operator!=(const iterator &amp;other) const noexcept</div><div class="ttdoc">Check if we're at the end yet.</div><div class="ttdef"><b>Definition:</b> <a href="dom_2document__stream-inl_8h_source.html#l00183">document_stream-inl.h:183</a></div></div>
<div class="ttc" id="aclasssimdjson_1_1dom_1_1document__stream_1_1iterator_html_a6c3a5002801ab80b1c59422d7f3400d3"><div class="ttname"><a href="classsimdjson_1_1dom_1_1document__stream_1_1iterator.html#a6c3a5002801ab80b1c59422d7f3400d3">simdjson::dom::document_stream::iterator::iterator</a></div><div class="ttdeci">simdjson_inline iterator() noexcept</div><div class="ttdoc">Default constructor.</div><div class="ttdef"><b>Definition:</b> <a href="dom_2document__stream-inl_8h_source.html#l00128">document_stream-inl.h:128</a></div></div>
<div class="ttc" id="aclasssimdjson_1_1dom_1_1document__stream_1_1iterator_html_a7b05ed75aa2b2a6d3a17204b9863956a"><div class="ttname"><a href="classsimdjson_1_1dom_1_1document__stream_1_1iterator.html#a7b05ed75aa2b2a6d3a17204b9863956a">simdjson::dom::document_stream::iterator::operator++</a></div><div class="ttdeci">iterator &amp; operator++() noexcept</div><div class="ttdoc">Advance to the next document (prefix).</div><div class="ttdef"><b>Definition:</b> <a href="dom_2document__stream-inl_8h_source.html#l00156">document_stream-inl.h:156</a></div></div>
<div class="ttc" id="aclasssimdjson_1_1dom_1_1document__stream_html"><div class="ttname"><a href="classsimdjson_1_1dom_1_1document__stream.html">simdjson::dom::document_stream</a></div><div class="ttdoc">A forward-only stream of documents.</div><div class="ttdef"><b>Definition:</b> <a href="dom_2document__stream_8h_source.html#l00072">document_stream.h:72</a></div></div>
<div class="ttc" id="aclasssimdjson_1_1dom_1_1document__stream_html_a2a08525ae815167b73b6393a8999e46b"><div class="ttname"><a href="classsimdjson_1_1dom_1_1document__stream.html#a2a08525ae815167b73b6393a8999e46b">simdjson::dom::document_stream::size_in_bytes</a></div><div class="ttdeci">size_t size_in_bytes() const noexcept</div><div class="ttdoc">Returns the input size in bytes.</div><div class="ttdef"><b>Definition:</b> <a href="dom_2document__stream-inl_8h_source.html#l00258">document_stream-inl.h:258</a></div></div>
<div class="ttc" id="aclasssimdjson_1_1dom_1_1document__stream_html_a6c2a07e08213dc9a51754940942f9e69"><div class="ttname"><a href="classsimdjson_1_1dom_1_1document__stream.html#a6c2a07e08213dc9a51754940942f9e69">simdjson::dom::document_stream::truncated_bytes</a></div><div class="ttdeci">size_t truncated_bytes() const noexcept</div><div class="ttdoc">After iterating through the stream, this method returns the number of bytes that were not parsed at t...</div><div class="ttdef"><b>Definition:</b> <a href="dom_2document__stream-inl_8h_source.html#l00262">document_stream-inl.h:262</a></div></div>
<div class="ttc" id="aclasssimdjson_1_1dom_1_1document__stream_html_a2a08525ae815167b73b6393a8999e46b"><div class="ttname"><a href="classsimdjson_1_1dom_1_1document__stream.html#a2a08525ae815167b73b6393a8999e46b">simdjson::dom::document_stream::size_in_bytes</a></div><div class="ttdeci">size_t size_in_bytes() const noexcept</div><div class="ttdoc">Returns the input size in bytes.</div><div class="ttdef"><b>Definition:</b> <a href="dom_2document__stream-inl_8h_source.html#l00262">document_stream-inl.h:262</a></div></div>
<div class="ttc" id="aclasssimdjson_1_1dom_1_1document__stream_html_a6c2a07e08213dc9a51754940942f9e69"><div class="ttname"><a href="classsimdjson_1_1dom_1_1document__stream.html#a6c2a07e08213dc9a51754940942f9e69">simdjson::dom::document_stream::truncated_bytes</a></div><div class="ttdeci">size_t truncated_bytes() const noexcept</div><div class="ttdoc">After iterating through the stream, this method returns the number of bytes that were not parsed at t...</div><div class="ttdef"><b>Definition:</b> <a href="dom_2document__stream-inl_8h_source.html#l00266">document_stream-inl.h:266</a></div></div>
<div class="ttc" id="aclasssimdjson_1_1dom_1_1document__stream_html_a9a51df3d81c9b7849bbbc8ae42096b76"><div class="ttname"><a href="classsimdjson_1_1dom_1_1document__stream.html#a9a51df3d81c9b7849bbbc8ae42096b76">simdjson::dom::document_stream::begin</a></div><div class="ttdeci">simdjson_inline iterator begin() noexcept</div><div class="ttdoc">Start iterating the documents in the stream.</div><div class="ttdef"><b>Definition:</b> <a href="dom_2document__stream-inl_8h_source.html#l00132">document_stream-inl.h:132</a></div></div>
<div class="ttc" id="aclasssimdjson_1_1dom_1_1document__stream_html_adec1e168e4188bf9c90ee87adbd72850"><div class="ttname"><a href="classsimdjson_1_1dom_1_1document__stream.html#adec1e168e4188bf9c90ee87adbd72850">simdjson::dom::document_stream::end</a></div><div class="ttdeci">simdjson_inline iterator end() noexcept</div><div class="ttdoc">The end of the stream, for iterator comparison purposes.</div><div class="ttdef"><b>Definition:</b> <a href="dom_2document__stream-inl_8h_source.html#l00138">document_stream-inl.h:138</a></div></div>
<div class="ttc" id="aclasssimdjson_1_1dom_1_1document__stream_html_ae6ee894790448145e11a456f12253364"><div class="ttname"><a href="classsimdjson_1_1dom_1_1document__stream.html#ae6ee894790448145e11a456f12253364">simdjson::dom::document_stream::document_stream</a></div><div class="ttdeci">simdjson_inline document_stream() noexcept</div><div class="ttdoc">Construct an uninitialized document_stream.</div><div class="ttdef"><b>Definition:</b> <a href="dom_2document__stream-inl_8h_source.html#l00110">document_stream-inl.h:110</a></div></div>
+2 -2
View File
@@ -246,8 +246,8 @@ $(document).ready(function(){initNavTree('dom_2document__stream_8h_source.html',
<div class="ttc" id="aclasssimdjson_1_1dom_1_1document__stream_1_1iterator_html"><div class="ttname"><a href="classsimdjson_1_1dom_1_1document__stream_1_1iterator.html">simdjson::dom::document_stream::iterator</a></div><div class="ttdoc">An iterator through a forward-only stream of documents.</div><div class="ttdef"><b>Definition:</b> <a href="dom_2document__stream_8h_source.html#l00115">document_stream.h:115</a></div></div>
<div class="ttc" id="aclasssimdjson_1_1dom_1_1document__stream_html"><div class="ttname"><a href="classsimdjson_1_1dom_1_1document__stream.html">simdjson::dom::document_stream</a></div><div class="ttdoc">A forward-only stream of documents.</div><div class="ttdef"><b>Definition:</b> <a href="dom_2document__stream_8h_source.html#l00072">document_stream.h:72</a></div></div>
<div class="ttc" id="aclasssimdjson_1_1dom_1_1document__stream_html_a162d002972b41bbb7d8e4021341e15ba"><div class="ttname"><a href="classsimdjson_1_1dom_1_1document__stream.html#a162d002972b41bbb7d8e4021341e15ba">simdjson::dom::document_stream::operator=</a></div><div class="ttdeci">simdjson_inline document_stream &amp; operator=(document_stream &amp;&amp;other) noexcept=default</div><div class="ttdoc">Move one document_stream to another.</div></div>
<div class="ttc" id="aclasssimdjson_1_1dom_1_1document__stream_html_a2a08525ae815167b73b6393a8999e46b"><div class="ttname"><a href="classsimdjson_1_1dom_1_1document__stream.html#a2a08525ae815167b73b6393a8999e46b">simdjson::dom::document_stream::size_in_bytes</a></div><div class="ttdeci">size_t size_in_bytes() const noexcept</div><div class="ttdoc">Returns the input size in bytes.</div><div class="ttdef"><b>Definition:</b> <a href="dom_2document__stream-inl_8h_source.html#l00258">document_stream-inl.h:258</a></div></div>
<div class="ttc" id="aclasssimdjson_1_1dom_1_1document__stream_html_a6c2a07e08213dc9a51754940942f9e69"><div class="ttname"><a href="classsimdjson_1_1dom_1_1document__stream.html#a6c2a07e08213dc9a51754940942f9e69">simdjson::dom::document_stream::truncated_bytes</a></div><div class="ttdeci">size_t truncated_bytes() const noexcept</div><div class="ttdoc">After iterating through the stream, this method returns the number of bytes that were not parsed at t...</div><div class="ttdef"><b>Definition:</b> <a href="dom_2document__stream-inl_8h_source.html#l00262">document_stream-inl.h:262</a></div></div>
<div class="ttc" id="aclasssimdjson_1_1dom_1_1document__stream_html_a2a08525ae815167b73b6393a8999e46b"><div class="ttname"><a href="classsimdjson_1_1dom_1_1document__stream.html#a2a08525ae815167b73b6393a8999e46b">simdjson::dom::document_stream::size_in_bytes</a></div><div class="ttdeci">size_t size_in_bytes() const noexcept</div><div class="ttdoc">Returns the input size in bytes.</div><div class="ttdef"><b>Definition:</b> <a href="dom_2document__stream-inl_8h_source.html#l00262">document_stream-inl.h:262</a></div></div>
<div class="ttc" id="aclasssimdjson_1_1dom_1_1document__stream_html_a6c2a07e08213dc9a51754940942f9e69"><div class="ttname"><a href="classsimdjson_1_1dom_1_1document__stream.html#a6c2a07e08213dc9a51754940942f9e69">simdjson::dom::document_stream::truncated_bytes</a></div><div class="ttdeci">size_t truncated_bytes() const noexcept</div><div class="ttdoc">After iterating through the stream, this method returns the number of bytes that were not parsed at t...</div><div class="ttdef"><b>Definition:</b> <a href="dom_2document__stream-inl_8h_source.html#l00266">document_stream-inl.h:266</a></div></div>
<div class="ttc" id="aclasssimdjson_1_1dom_1_1document__stream_html_a9a51df3d81c9b7849bbbc8ae42096b76"><div class="ttname"><a href="classsimdjson_1_1dom_1_1document__stream.html#a9a51df3d81c9b7849bbbc8ae42096b76">simdjson::dom::document_stream::begin</a></div><div class="ttdeci">simdjson_inline iterator begin() noexcept</div><div class="ttdoc">Start iterating the documents in the stream.</div><div class="ttdef"><b>Definition:</b> <a href="dom_2document__stream-inl_8h_source.html#l00132">document_stream-inl.h:132</a></div></div>
<div class="ttc" id="aclasssimdjson_1_1dom_1_1document__stream_html_a9d6bb44a7d8f818c401d65fb80f6a523"><div class="ttname"><a href="classsimdjson_1_1dom_1_1document__stream.html#a9d6bb44a7d8f818c401d65fb80f6a523">simdjson::dom::document_stream::document_stream</a></div><div class="ttdeci">simdjson_inline document_stream(document_stream &amp;&amp;other) noexcept=default</div><div class="ttdoc">Move one document_stream to another.</div></div>
<div class="ttc" id="aclasssimdjson_1_1dom_1_1document__stream_html_adec1e168e4188bf9c90ee87adbd72850"><div class="ttname"><a href="classsimdjson_1_1dom_1_1document__stream.html#adec1e168e4188bf9c90ee87adbd72850">simdjson::dom::document_stream::end</a></div><div class="ttdeci">simdjson_inline iterator end() noexcept</div><div class="ttdoc">The end of the stream, for iterator comparison purposes.</div><div class="ttdef"><b>Definition:</b> <a href="dom_2document__stream-inl_8h_source.html#l00138">document_stream-inl.h:138</a></div></div>
@@ -397,91 +397,99 @@ $(document).ready(function(){initNavTree('generic_2ondemand_2document__stream-in
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; depth--;</div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">default</span>: <span class="comment">// Scalar value document</span></div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="comment">// TODO: Remove any trailing whitespaces</span></div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="comment">// TODO: We could remove trailing whitespaces</span></div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="comment">// This returns a string spanning from start of value to the beginning of the next document (excluded)</span></div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordflow">return</span> std::string_view(<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(stream-&gt;buf) + current_index(), stream-&gt;parser-&gt;implementation-&gt;structural_indexes[++cur_struct_index] - current_index() - 1);</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; cur_struct_index++;</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; </div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">while</span> (cur_struct_index &lt;= <span class="keyword">static_cast&lt;</span>int64_t<span class="keyword">&gt;</span>(stream-&gt;parser-&gt;implementation-&gt;n_structural_indexes)) {</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">switch</span> (stream-&gt;buf[stream-&gt;batch_start + stream-&gt;parser-&gt;implementation-&gt;structural_indexes[cur_struct_index]]) {</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;{&#39;</span>: <span class="keywordflow">case</span> <span class="charliteral">&#39;[&#39;</span>:</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; depth++;</div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;}&#39;</span>: <span class="keywordflow">case</span> <span class="charliteral">&#39;]&#39;</span>:</div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; depth--;</div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; }</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">if</span> (depth == 0) { <span class="keywordflow">break</span>; }</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; cur_struct_index++;</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; </div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">return</span> std::string_view(<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(stream-&gt;buf) + current_index(), stream-&gt;parser-&gt;implementation-&gt;structural_indexes[cur_struct_index] - current_index() + stream-&gt;batch_start + 1);;</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; </div>
<div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__stream_1_1iterator.html#a4111757108422ffaf647024319205d5c"> 368</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9">error_code</a> <a class="code" href="classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__stream_1_1iterator.html#a4111757108422ffaf647024319205d5c">document_stream::iterator::error</a>() const noexcept {</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">return</span> stream-&gt;error;</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="preprocessor">#ifdef SIMDJSON_THREADS_ENABLED</span></div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; </div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> document_stream::load_from_stage1_thread() noexcept {</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; worker-&gt;finish();</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="comment">// Swap to the parser that was loaded up in the thread. Make sure the parser has</span></div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="comment">// enough memory to swap to, as well.</span></div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; std::swap(stage1_thread_parser,*<a class="code" href="classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1parser.html">parser</a>);</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; error = stage1_thread_error;</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">if</span> (error) { <span class="keywordflow">return</span>; }</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; {</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keyword">auto</span> next_index = stream-&gt;parser-&gt;implementation-&gt;structural_indexes[++cur_struct_index];</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="comment">// normally the length would be next_index - current_index() - 1, except for the last document</span></div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordtype">size_t</span> svlen = next_index - current_index();</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">if</span>(svlen &gt; 1) {</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; svlen--;</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; }</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordflow">return</span> std::string_view(<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(stream-&gt;buf) + current_index(), svlen);</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; }</div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; }</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; cur_struct_index++;</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; </div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordflow">while</span> (cur_struct_index &lt;= <span class="keyword">static_cast&lt;</span>int64_t<span class="keyword">&gt;</span>(stream-&gt;parser-&gt;implementation-&gt;n_structural_indexes)) {</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">switch</span> (stream-&gt;buf[stream-&gt;batch_start + stream-&gt;parser-&gt;implementation-&gt;structural_indexes[cur_struct_index]]) {</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;{&#39;</span>: <span class="keywordflow">case</span> <span class="charliteral">&#39;[&#39;</span>:</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; depth++;</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;}&#39;</span>: <span class="keywordflow">case</span> <span class="charliteral">&#39;]&#39;</span>:</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; depth--;</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; }</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">if</span> (depth == 0) { <span class="keywordflow">break</span>; }</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; cur_struct_index++;</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; </div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">return</span> std::string_view(<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(stream-&gt;buf) + current_index(), stream-&gt;parser-&gt;implementation-&gt;structural_indexes[cur_struct_index] - current_index() + stream-&gt;batch_start + 1);;</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"><a class="line" href="classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__stream_1_1iterator.html#a4111757108422ffaf647024319205d5c"> 376</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9">error_code</a> <a class="code" href="classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__stream_1_1iterator.html#a4111757108422ffaf647024319205d5c">document_stream::iterator::error</a>() const noexcept {</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordflow">return</span> stream-&gt;error;</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; </div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="preprocessor">#ifdef SIMDJSON_THREADS_ENABLED</span></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; <span class="comment">// If there&#39;s anything left, start the stage 1 thread!</span></div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">if</span> (next_batch_start() &lt; len) {</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; start_stage1_thread();</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; }</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;}</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;<span class="keyword">inline</span> <span class="keywordtype">void</span> document_stream::start_stage1_thread() noexcept {</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="comment">// we call the thread on a lambda that will update</span></div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="comment">// this-&gt;stage1_thread_error</span></div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="comment">// there is only one thread that may write to this value</span></div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="comment">// TODO this is NOT exception-safe.</span></div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; this-&gt;stage1_thread_error = <a class="code" href="namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9ac2aef8f0fc33187cc118c95fade925d2">UNINITIALIZED</a>; <span class="comment">// In case something goes wrong, make sure it&#39;s an error</span></div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordtype">size_t</span> _next_batch_start = this-&gt;next_batch_start();</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> document_stream::load_from_stage1_thread() noexcept {</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; worker-&gt;finish();</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="comment">// Swap to the parser that was loaded up in the thread. Make sure the parser has</span></div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="comment">// enough memory to swap to, as well.</span></div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; std::swap(stage1_thread_parser,*<a class="code" href="classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1parser.html">parser</a>);</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; error = stage1_thread_error;</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">if</span> (error) { <span class="keywordflow">return</span>; }</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; </div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="comment">// If there&#39;s anything left, start the stage 1 thread!</span></div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">if</span> (next_batch_start() &lt; len) {</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; start_stage1_thread();</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; }</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; </div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; worker-&gt;run(<span class="keyword">this</span>, &amp; this-&gt;stage1_thread_parser, _next_batch_start);</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;<span class="preprocessor">#endif </span><span class="comment">// SIMDJSON_THREADS_ENABLED</span></div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; </div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;} <span class="comment">// namespace ondemand</span></div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;} <span class="comment">// namespace SIMDJSON_IMPLEMENTATION</span></div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;} <span class="comment">// namespace simdjson</span></div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; </div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacesimdjson.html">simdjson</a> {</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> document_stream::start_stage1_thread() noexcept {</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="comment">// we call the thread on a lambda that will update</span></div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="comment">// this-&gt;stage1_thread_error</span></div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="comment">// there is only one thread that may write to this value</span></div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="comment">// TODO this is NOT exception-safe.</span></div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; this-&gt;stage1_thread_error = <a class="code" href="namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9ac2aef8f0fc33187cc118c95fade925d2">UNINITIALIZED</a>; <span class="comment">// In case something goes wrong, make sure it&#39;s an error</span></div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordtype">size_t</span> _next_batch_start = this-&gt;next_batch_start();</div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; </div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; worker-&gt;run(<span class="keyword">this</span>, &amp; this-&gt;stage1_thread_parser, _next_batch_start);</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;}</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;simdjson_inline simdjson_result&lt;SIMDJSON_IMPLEMENTATION::ondemand::document_stream&gt;::simdjson_result(</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <a class="code" href="namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9">error_code</a> error</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;) noexcept :</div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; implementation_simdjson_result_base&lt;SIMDJSON_IMPLEMENTATION::ondemand::document_stream&gt;(error)</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;}</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;simdjson_inline simdjson_result&lt;SIMDJSON_IMPLEMENTATION::ondemand::document_stream&gt;::simdjson_result(</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; SIMDJSON_IMPLEMENTATION::ondemand::document_stream &amp;&amp;value</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;) noexcept :</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; implementation_simdjson_result_base&lt;SIMDJSON_IMPLEMENTATION::ondemand::document_stream&gt;(</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; std::forward&lt;SIMDJSON_IMPLEMENTATION::ondemand::document_stream&gt;(value)</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; )</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// SIMDJSON_THREADS_ENABLED</span></div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; </div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;} <span class="comment">// namespace ondemand</span></div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;} <span class="comment">// namespace SIMDJSON_IMPLEMENTATION</span></div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;} <span class="comment">// namespace simdjson</span></div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; </div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacesimdjson.html">simdjson</a> {</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;simdjson_inline simdjson_result&lt;SIMDJSON_IMPLEMENTATION::ondemand::document_stream&gt;::simdjson_result(</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <a class="code" href="namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9">error_code</a> error</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;) noexcept :</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; implementation_simdjson_result_base&lt;SIMDJSON_IMPLEMENTATION::ondemand::document_stream&gt;(error)</div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;{</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;}</div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; </div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H</span></div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;simdjson_inline simdjson_result&lt;SIMDJSON_IMPLEMENTATION::ondemand::document_stream&gt;::simdjson_result(</div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; SIMDJSON_IMPLEMENTATION::ondemand::document_stream &amp;&amp;value</div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;) noexcept :</div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; implementation_simdjson_result_base&lt;SIMDJSON_IMPLEMENTATION::ondemand::document_stream&gt;(</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; std::forward&lt;SIMDJSON_IMPLEMENTATION::ondemand::document_stream&gt;(value)</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;{</div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;}</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; </div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// SIMDJSON_GENERIC_ONDEMAND_DOCUMENT_STREAM_INL_H</span></div>
<div class="ttc" id="aclasssimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__stream_1_1iterator_html"><div class="ttname"><a href="classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__stream_1_1iterator.html">simdjson::SIMDJSON_IMPLEMENTATION::ondemand::document_stream::iterator</a></div><div class="ttdef"><b>Definition:</b> <a href="generic_2ondemand_2document__stream_8h_source.html#l00122">document_stream.h:122</a></div></div>
<div class="ttc" id="aclasssimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__stream_1_1iterator_html_a03e0c8d93b86a18b10370d51b99548ef"><div class="ttname"><a href="classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__stream_1_1iterator.html#a03e0c8d93b86a18b10370d51b99548ef">simdjson::SIMDJSON_IMPLEMENTATION::ondemand::document_stream::iterator::operator++</a></div><div class="ttdeci">iterator &amp; operator++() noexcept</div><div class="ttdoc">Advance to the next document (prefix).</div><div class="ttdef"><b>Definition:</b> <a href="generic_2ondemand_2document__stream-inl_8h_source.html#l00159">document_stream-inl.h:159</a></div></div>
<div class="ttc" id="aclasssimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__stream_1_1iterator_html_a05396b8e8322363b523b3bf9730a31f1"><div class="ttname"><a href="classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__stream_1_1iterator.html#a05396b8e8322363b523b3bf9730a31f1">simdjson::SIMDJSON_IMPLEMENTATION::ondemand::document_stream::iterator::operator!=</a></div><div class="ttdeci">simdjson_inline bool operator!=(const iterator &amp;other) const noexcept</div><div class="ttdoc">Check if we're at the end yet.</div><div class="ttdef"><b>Definition:</b> <a href="generic_2ondemand_2document__stream-inl_8h_source.html#l00186">document_stream-inl.h:186</a></div></div>
<div class="ttc" id="aclasssimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__stream_1_1iterator_html_a3b0ac5e3e64e53167a011afdd0b77345"><div class="ttname"><a href="classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__stream_1_1iterator.html#a3b0ac5e3e64e53167a011afdd0b77345">simdjson::SIMDJSON_IMPLEMENTATION::ondemand::document_stream::iterator::iterator</a></div><div class="ttdeci">simdjson_inline iterator() noexcept</div><div class="ttdoc">Default constructor.</div><div class="ttdef"><b>Definition:</b> <a href="generic_2ondemand_2document__stream-inl_8h_source.html#l00146">document_stream-inl.h:146</a></div></div>
<div class="ttc" id="aclasssimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__stream_1_1iterator_html_a4111757108422ffaf647024319205d5c"><div class="ttname"><a href="classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__stream_1_1iterator.html#a4111757108422ffaf647024319205d5c">simdjson::SIMDJSON_IMPLEMENTATION::ondemand::document_stream::iterator::error</a></div><div class="ttdeci">error_code error() const noexcept</div><div class="ttdoc">Returns error of the stream (if any).</div><div class="ttdef"><b>Definition:</b> <a href="generic_2ondemand_2document__stream-inl_8h_source.html#l00368">document_stream-inl.h:368</a></div></div>
<div class="ttc" id="aclasssimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__stream_1_1iterator_html_a4111757108422ffaf647024319205d5c"><div class="ttname"><a href="classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__stream_1_1iterator.html#a4111757108422ffaf647024319205d5c">simdjson::SIMDJSON_IMPLEMENTATION::ondemand::document_stream::iterator::error</a></div><div class="ttdeci">error_code error() const noexcept</div><div class="ttdoc">Returns error of the stream (if any).</div><div class="ttdef"><b>Definition:</b> <a href="generic_2ondemand_2document__stream-inl_8h_source.html#l00376">document_stream-inl.h:376</a></div></div>
<div class="ttc" id="aclasssimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__stream_1_1iterator_html_a5fe3ce985cc1921d5917667d6b25841b"><div class="ttname"><a href="classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__stream_1_1iterator.html#a5fe3ce985cc1921d5917667d6b25841b">simdjson::SIMDJSON_IMPLEMENTATION::ondemand::document_stream::iterator::operator*</a></div><div class="ttdeci">simdjson_inline reference operator*() noexcept</div><div class="ttdoc">Get the current document (or error).</div><div class="ttdef"><b>Definition:</b> <a href="generic_2ondemand_2document__stream-inl_8h_source.html#l00154">document_stream-inl.h:154</a></div></div>
<div class="ttc" id="aclasssimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__stream_html_a0a0d40ed80767c01232a6aacb6258b2b"><div class="ttname"><a href="classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__stream.html#a0a0d40ed80767c01232a6aacb6258b2b">simdjson::SIMDJSON_IMPLEMENTATION::ondemand::document_stream::end</a></div><div class="ttdeci">simdjson_inline iterator end() noexcept</div><div class="ttdoc">The end of the stream, for iterator comparison purposes.</div><div class="ttdef"><b>Definition:</b> <a href="generic_2ondemand_2document__stream-inl_8h_source.html#l00196">document_stream-inl.h:196</a></div></div>
<div class="ttc" id="aclasssimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__stream_html_a43723c86c43ee3533a3278b5cd2fe2d0"><div class="ttname"><a href="classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__stream.html#a43723c86c43ee3533a3278b5cd2fe2d0">simdjson::SIMDJSON_IMPLEMENTATION::ondemand::document_stream::size_in_bytes</a></div><div class="ttdeci">size_t size_in_bytes() const noexcept</div><div class="ttdoc">Returns the input size in bytes.</div><div class="ttdef"><b>Definition:</b> <a href="generic_2ondemand_2document__stream-inl_8h_source.html#l00137">document_stream-inl.h:137</a></div></div>
+7 -7
View File
@@ -193,13 +193,13 @@ var NAVTREE =
var NAVTREEINDEX =
[
"",
"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1field.html#a598e64f8fff7f033b2e38057798799d9",
"classsimdjson_1_1dom_1_1element.html#ae38f84f4272ae3c32b32dd6d5007ffb9",
"haswell_2numberparsing__defs_8h_source.html",
"namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9a80bcf6820da38abe1a2e9abeaa0f0c49",
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#a88d370115d7ac1708b0127fc64ce9b2d",
"westmere_2base_8h_source.html"
"amalgamated_8h_source.html",
"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1field.html#ad5f688629f86f80dff49cab2270b1967",
"classsimdjson_1_1dom_1_1element.html#afb98fdfcb6ddf19071cd2300613218d3",
"icelake_2base_8h_source.html",
"namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9ab70f5a6f0ac798d482e95a0fcc528676",
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#aad912138afff908ddd2f1ceacc51fb86",
"westmere_2intrinsics_8h_source.html"
];
var SYNCONMSG = 'click to disable panel synchronisation';
+7 -7
View File
@@ -1,11 +1,5 @@
var NAVTREEINDEX0 =
{
"":[10,0,0,7],
"":[10,0,0,9],
"":[10,0,1],
"":[10,0,0,9,0],
"":[10,0,0,9,1],
"":[10,0,0,9,2,0],
"amalgamated_8h_source.html":[12,0,0,0,4,1],
"annotated.html":[11,0],
"arm64_2base_8h_source.html":[12,0,0,0,0,0],
@@ -249,5 +243,11 @@ var NAVTREEINDEX0 =
"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1field.html":[11,0,0,1,0,5],
"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1field.html#a248d65ae4cf327f277a5a48ba7480386":[11,0,0,1,0,5,4],
"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1field.html#a4f49d8e89feb3ca69cf85ce2aea80c0f":[11,0,0,1,0,5,3],
"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1field.html#a56fd10d90f6366433ca435a221830af7":[11,0,0,1,0,5,8]
"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1field.html#a56fd10d90f6366433ca435a221830af7":[11,0,0,1,0,5,8],
"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1field.html#a598e64f8fff7f033b2e38057798799d9":[11,0,0,1,0,5,2],
"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1field.html#a73a389f50a576d2a5eb315dbd8abced7":[11,0,0,1,0,5,6],
"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1field.html#a7d565f0d79dec8bf19c307e464452650":[11,0,0,1,0,5,1],
"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1field.html#a8e655ba1a0fd26809821f77aac355b7c":[11,0,0,1,0,5,5],
"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1field.html#a9415aecf3526ad6081be495c9be61b43":[11,0,0,1,0,5,0],
"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1field.html#ac91f0ec4a1944cba079924b366424f89":[11,0,0,1,0,5,9]
};
+7 -7
View File
@@ -1,11 +1,5 @@
var NAVTREEINDEX1 =
{
"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1field.html#a598e64f8fff7f033b2e38057798799d9":[11,0,0,1,0,5,2],
"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1field.html#a73a389f50a576d2a5eb315dbd8abced7":[11,0,0,1,0,5,6],
"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1field.html#a7d565f0d79dec8bf19c307e464452650":[11,0,0,1,0,5,1],
"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1field.html#a8e655ba1a0fd26809821f77aac355b7c":[11,0,0,1,0,5,5],
"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1field.html#a9415aecf3526ad6081be495c9be61b43":[11,0,0,1,0,5,0],
"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1field.html#ac91f0ec4a1944cba079924b366424f89":[11,0,0,1,0,5,9],
"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1field.html#ad5f688629f86f80dff49cab2270b1967":[11,0,0,1,0,5,7],
"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1object.html":[11,0,0,1,0,7],
"classsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1object.html#a034b27d7ff75832a574c2069af267111":[11,0,0,1,0,7,0],
@@ -249,5 +243,11 @@ var NAVTREEINDEX1 =
"classsimdjson_1_1dom_1_1element.html#ac111e6d27806dbd39794f2c394f95757":[11,0,0,0,3,16],
"classsimdjson_1_1dom_1_1element.html#ac5017726a573f59c3494b92bb66a3beb":[11,0,0,0,3,36],
"classsimdjson_1_1dom_1_1element.html#aca693f57d73a5ce95d1f7bedf67289b7":[11,0,0,0,3,48],
"classsimdjson_1_1dom_1_1element.html#adadf66ec37675d5f3fac9816a8aacba2":[11,0,0,0,3,31]
"classsimdjson_1_1dom_1_1element.html#adadf66ec37675d5f3fac9816a8aacba2":[11,0,0,0,3,31],
"classsimdjson_1_1dom_1_1element.html#ae38f84f4272ae3c32b32dd6d5007ffb9":[11,0,0,0,3,32],
"classsimdjson_1_1dom_1_1element.html#ae3c0226046e29cfb0e868c5251a87e53":[11,0,0,0,3,44],
"classsimdjson_1_1dom_1_1element.html#ae5ce6ad2e6036b4bb7a78261858bb337":[11,0,0,0,3,12],
"classsimdjson_1_1dom_1_1element.html#ae83652b5016ce4d4ff71f8f9bc05913e":[11,0,0,0,3,24],
"classsimdjson_1_1dom_1_1element.html#aeb155c47ef7bebcad79e1b7449734030":[11,0,0,0,3,2],
"classsimdjson_1_1dom_1_1element.html#afaaac6e2f58128a01a25b0a5f5abb856":[11,0,0,0,3,28]
};
+7 -7
View File
@@ -1,11 +1,5 @@
var NAVTREEINDEX2 =
{
"classsimdjson_1_1dom_1_1element.html#ae38f84f4272ae3c32b32dd6d5007ffb9":[11,0,0,0,3,32],
"classsimdjson_1_1dom_1_1element.html#ae3c0226046e29cfb0e868c5251a87e53":[11,0,0,0,3,44],
"classsimdjson_1_1dom_1_1element.html#ae5ce6ad2e6036b4bb7a78261858bb337":[11,0,0,0,3,12],
"classsimdjson_1_1dom_1_1element.html#ae83652b5016ce4d4ff71f8f9bc05913e":[11,0,0,0,3,24],
"classsimdjson_1_1dom_1_1element.html#aeb155c47ef7bebcad79e1b7449734030":[11,0,0,0,3,2],
"classsimdjson_1_1dom_1_1element.html#afaaac6e2f58128a01a25b0a5f5abb856":[11,0,0,0,3,28],
"classsimdjson_1_1dom_1_1element.html#afb98fdfcb6ddf19071cd2300613218d3":[11,0,0,0,3,41],
"classsimdjson_1_1dom_1_1element.html#afbe1c01508f1cc39b41b79596cb5717b":[11,0,0,0,3,46],
"classsimdjson_1_1dom_1_1element.html#afde562c5aae1b85a03ab6d4b040e7d13":[11,0,0,0,3,29],
@@ -249,5 +243,11 @@ var NAVTREEINDEX2 =
"haswell_2bitmask_8h_source.html":[12,0,0,0,5,3],
"haswell_2end_8h_source.html":[12,0,0,0,5,4],
"haswell_2implementation_8h_source.html":[12,0,0,0,5,5],
"haswell_2intrinsics_8h_source.html":[12,0,0,0,5,6]
"haswell_2intrinsics_8h_source.html":[12,0,0,0,5,6],
"haswell_2numberparsing__defs_8h_source.html":[12,0,0,0,5,7],
"haswell_2ondemand_8h_source.html":[12,0,0,0,5,8],
"haswell_2simd_8h_source.html":[12,0,0,0,5,9],
"haswell_2stringparsing__defs_8h_source.html":[12,0,0,0,5,10],
"haswell_8h_source.html":[12,0,0,0,22],
"hierarchy.html":[11,2]
};
+7 -7
View File
@@ -1,11 +1,5 @@
var NAVTREEINDEX3 =
{
"haswell_2numberparsing__defs_8h_source.html":[12,0,0,0,5,7],
"haswell_2ondemand_8h_source.html":[12,0,0,0,5,8],
"haswell_2simd_8h_source.html":[12,0,0,0,5,9],
"haswell_2stringparsing__defs_8h_source.html":[12,0,0,0,5,10],
"haswell_8h_source.html":[12,0,0,0,22],
"hierarchy.html":[11,2],
"icelake_2base_8h_source.html":[12,0,0,0,6,0],
"icelake_2begin_8h_source.html":[12,0,0,0,6,1],
"icelake_2bitmanipulation_8h_source.html":[12,0,0,0,6,2],
@@ -249,5 +243,11 @@ var NAVTREEINDEX3 =
"namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9a4e161f7bd0b3ca10f41a220a75de8cde":[10,0,0,36,8],
"namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9a69f1b9e7b9970fbb60416ebce2f894c3":[10,0,0,36,32],
"namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9a7aed571b420dcdfe59742e0df97b415a":[10,0,0,36,13],
"namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9a7b0467451dc0cecb41d3ea46c4a0005b":[10,0,0,36,23]
"namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9a7b0467451dc0cecb41d3ea46c4a0005b":[10,0,0,36,23],
"namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9a80bcf6820da38abe1a2e9abeaa0f0c49":[10,0,0,36,19],
"namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9a8c779dcc8fb73a4eb8891af3ef65eebb":[10,0,0,36,18],
"namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9a8ef9cfdd78dd92d2b304249917638d12":[10,0,0,36,5],
"namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9aa0e71422c8ae80ebaa11d8d74d64737f":[10,0,0,36,2],
"namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9aa4ffc800804829a88c5b52ac3c4c6681":[10,0,0,36,0],
"namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9ab6e8bfc242f7bea38657eaf61400077f":[10,0,0,36,6]
};
+8 -8
View File
@@ -1,11 +1,5 @@
var NAVTREEINDEX4 =
{
"namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9a80bcf6820da38abe1a2e9abeaa0f0c49":[10,0,0,36,19],
"namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9a8c779dcc8fb73a4eb8891af3ef65eebb":[10,0,0,36,18],
"namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9a8ef9cfdd78dd92d2b304249917638d12":[10,0,0,36,5],
"namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9aa0e71422c8ae80ebaa11d8d74d64737f":[10,0,0,36,2],
"namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9aa4ffc800804829a88c5b52ac3c4c6681":[10,0,0,36,0],
"namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9ab6e8bfc242f7bea38657eaf61400077f":[10,0,0,36,6],
"namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9ab70f5a6f0ac798d482e95a0fcc528676":[10,0,0,36,31],
"namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9ab8a4df583110f900741d0b3f229f349a":[10,0,0,36,28],
"namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9abdd3905c91a152a01637a2946066db6b":[10,0,0,36,24],
@@ -240,8 +234,8 @@ var NAVTREEINDEX4 =
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#a567b835f20e2f854f4303e83f4d3bd74":[11,0,0,10,14],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#a59a47cbdb4c226a7d33e0315cce62984":[11,0,0,10,43],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#a5a4d779ce258cac95b1799f16b49695b":[11,0,0,10,51],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#a6024d17789cc49d3147445b3def018f6":[11,0,0,10,23],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#a6024d17789cc49d3147445b3def018f6":[11,0,0,10,24],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#a6024d17789cc49d3147445b3def018f6":[11,0,0,10,23],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#a61c56912d76a1a730e4cf9b5aea5d69f":[11,0,0,10,40],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#a662ec28f78a9fcba046eaa4509efa6a3":[11,0,0,10,44],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#a696390da51f64f6955aa43484b2e8c41":[11,0,0,10,29],
@@ -249,5 +243,11 @@ var NAVTREEINDEX4 =
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#a78feffa1a15a0ae2f244e87d89bbe372":[11,0,0,10,1],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#a7c2a11edb53792f1a4c6fe2654060380":[11,0,0,10,37],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#a822816ca7d097686b2eefbc4680a69b3":[11,0,0,10,47],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#a87b78dd9ad9dd5fc8f5f1368ef004928":[11,0,0,10,22]
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#a87b78dd9ad9dd5fc8f5f1368ef004928":[11,0,0,10,22],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#a88d370115d7ac1708b0127fc64ce9b2d":[11,0,0,10,13],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#a89e365ab71c3c1e6c52c2bbc914069ef":[11,0,0,10,27],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#a97cf6c1bf360c6570649afdb97b9c25d":[11,0,0,10,34],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#a9a751f7a061bc6e8d3159556466edbf0":[11,0,0,10,5],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#a9fbe143e7d0e23f9c62cbae279c30790":[11,0,0,10,30],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#aa6d263e87502e172ea519278ea6777b2":[11,0,0,10,38]
};
+7 -7
View File
@@ -1,11 +1,5 @@
var NAVTREEINDEX5 =
{
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#a88d370115d7ac1708b0127fc64ce9b2d":[11,0,0,10,13],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#a89e365ab71c3c1e6c52c2bbc914069ef":[11,0,0,10,27],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#a97cf6c1bf360c6570649afdb97b9c25d":[11,0,0,10,34],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#a9a751f7a061bc6e8d3159556466edbf0":[11,0,0,10,5],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#a9fbe143e7d0e23f9c62cbae279c30790":[11,0,0,10,30],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#aa6d263e87502e172ea519278ea6777b2":[11,0,0,10,38],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#aad912138afff908ddd2f1ceacc51fb86":[11,0,0,10,7],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#aae2f837578cabf883f3050a88146cbb0":[11,0,0,10,54],
"structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document_01_4.html#ab4ad542b6ecca93a5886f3c1134a8831":[11,0,0,10,2],
@@ -249,5 +243,11 @@ var NAVTREEINDEX5 =
"value-inl_8h_source.html":[12,0,0,0,4,0,33],
"value_8h_source.html":[12,0,0,0,4,0,34],
"value__iterator-inl_8h_source.html":[12,0,0,0,4,0,35],
"value__iterator_8h_source.html":[12,0,0,0,4,0,36]
"value__iterator_8h_source.html":[12,0,0,0,4,0,36],
"westmere_2base_8h_source.html":[12,0,0,0,12,0],
"westmere_2begin_8h_source.html":[12,0,0,0,12,1],
"westmere_2bitmanipulation_8h_source.html":[12,0,0,0,12,2],
"westmere_2bitmask_8h_source.html":[12,0,0,0,12,3],
"westmere_2end_8h_source.html":[12,0,0,0,12,4],
"westmere_2implementation_8h_source.html":[12,0,0,0,12,5]
};
+7 -7
View File
@@ -1,15 +1,15 @@
var NAVTREEINDEX6 =
{
"westmere_2base_8h_source.html":[12,0,0,0,12,0],
"westmere_2begin_8h_source.html":[12,0,0,0,12,1],
"westmere_2bitmanipulation_8h_source.html":[12,0,0,0,12,2],
"westmere_2bitmask_8h_source.html":[12,0,0,0,12,3],
"westmere_2end_8h_source.html":[12,0,0,0,12,4],
"westmere_2implementation_8h_source.html":[12,0,0,0,12,5],
"westmere_2intrinsics_8h_source.html":[12,0,0,0,12,6],
"westmere_2numberparsing__defs_8h_source.html":[12,0,0,0,12,7],
"westmere_2ondemand_8h_source.html":[12,0,0,0,12,8],
"westmere_2simd_8h_source.html":[12,0,0,0,12,9],
"westmere_2stringparsing__defs_8h_source.html":[12,0,0,0,12,10],
"westmere_8h_source.html":[12,0,0,0,39]
"westmere_8h_source.html":[12,0,0,0,39],
"":[10,0,0,9,1],
"":[10,0,0,9],
"":[10,0,1],
"":[10,0,0,9,2,0],
"":[10,0,0,9,0],
"":[10,0,0,7]
};