diff options
42 files changed, 917 insertions, 904 deletions
diff --git a/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html b/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html index c62896d1..864bc94b 100644 --- a/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html +++ b/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1atomic__append.html @@ -268,190 +268,190 @@ Protected Member Functions</h2></td></tr> <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000006">Todo:</a></b></dt><dd>Read from header.last_known_good immediately if possible in order to avoid a duplicate read later </dd></dl> <p>Implements <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex.html">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex</a>.</p> -<div class="fragment"><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  {</div> -<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  BOOST_AFIO_LOG_FUNCTION_CALL(<span class="keyword">this</span>);</div> -<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  atomic_append_detail::lock_request lock_request;</div> -<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordflow">if</span>(out.entities.size() > <span class="keyword">sizeof</span>(lock_request.entities) / <span class="keyword">sizeof</span>(lock_request.entities[0]))</div> -<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="keywordflow">return</span> make_errored_result<void>(stl11::errc::argument_list_too_long);</div> -<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div> -<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  stl11::chrono::steady_clock::time_point began_steady;</div> -<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  stl11::chrono::system_clock::time_point end_utc;</div> -<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keywordflow">if</span>(d)</div> -<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  {</div> -<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordflow">if</span>((d).steady)</div> -<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  began_steady = stl11::chrono::steady_clock::now();</div> -<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keywordflow">else</span></div> -<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  end_utc = (d).to_time_point();</div> -<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  }</div> -<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="comment">// Fire this if an error occurs</span></div> -<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keyword">auto</span> disableunlock = undoer([&] { out.release(); });</div> -<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div> -<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="comment">// Write my lock request immediately</span></div> -<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  memset(&lock_request, 0, <span class="keyword">sizeof</span>(lock_request));</div> -<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  lock_request.unique_id = _unique_id;</div> -<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keyword">auto</span> count = stl11::chrono::system_clock::now() - stl11::chrono::system_clock::from_time_t(_header.time_offset);</div> -<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  lock_request.us_count = stl11::chrono::duration_cast<stl11::chrono::microseconds>(count).count();</div> -<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  lock_request.items = out.entities.size();</div> -<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  memcpy(lock_request.entities, out.entities.data(), <span class="keyword">sizeof</span>(lock_request.entities[0]) * out.entities.size());</div> -<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="keywordflow">if</span>(!_skip_hashing)</div> -<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  lock_request.hash = boost_lite::algorithm::hash::fast_hash::hash(((<span class="keywordtype">char</span> *) &lock_request) + 16, <span class="keyword">sizeof</span>(lock_request) - 16);</div> -<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="comment">// My lock request will be the file's current length or higher</span></div> -<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  BOOST_OUTCOME_TRY(my_lock_request_offset, _h.<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a6e4524b6bd5de76631bcc7ab68bab7bd">length</a>());</div> -<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  {</div> -<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  _h.<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#adf964e787e0666fc5b7d94c2715ee6f5">set_append_only</a>(<span class="keyword">true</span>);</div> -<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keyword">auto</span> undo = undoer([<span class="keyword">this</span>] { _h.<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#adf964e787e0666fc5b7d94c2715ee6f5">set_append_only</a>(<span class="keyword">false</span>); });</div> -<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  file_handle::extent_guard append_guard;</div> -<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordflow">if</span>(_nfs_compatibility)</div> -<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  {</div> -<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  file_handle::extent_type lastbyte = (file_handle::extent_type) -1;</div> -<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="comment">// Lock up to the beginning of the shadow lock space</span></div> -<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  lastbyte &= ~(1ULL << 63);</div> -<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  BOOST_OUTCOME_TRY(append_guard_, _h.<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(my_lock_request_offset, lastbyte, <span class="keyword">true</span>));</div> -<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  append_guard = std::move(append_guard_);</div> -<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  }</div> -<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  BOOST_OUTCOME_TRYV(_h.<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a8890b6a6046fb562f9f0ab943b79dfb4" title="Write data to the open handle.">write</a>(0, (<span class="keywordtype">char</span> *) &lock_request, <span class="keyword">sizeof</span>(lock_request)));</div> -<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  }</div> -<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div> -<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="comment">// Find the record I just wrote</span></div> -<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  alignas(64) char _buffer[4096 + 2048]; <span class="comment">// 6Kb cache line aligned buffer</span></div> -<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="comment">// Read onwards from length as reported before I wrote my lock request</span></div> -<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="comment">// until I find my lock request. This loop should never actually iterate</span></div> -<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="comment">// except under extreme load conditions.</span><span class="comment"></span></div> -<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="comment"> //! \todo Read from header.last_known_good immediately if possible in order</span></div> -<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="comment"> //! to avoid a duplicate read later</span></div> -<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="comment"></span> for(;;)</div> -<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  {</div> -<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  file_handle::io_result<file_handle::buffer_type> readoutcome = _h.<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2" title="Read data from the open handle.">read</a>(my_lock_request_offset, _buffer, <span class="keyword">sizeof</span>(_buffer));</div> -<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="comment">// Should never happen :)</span></div> -<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordflow">if</span>(readoutcome.has_error())</div> -<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  {</div> -<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  BOOST_AFIO_LOG_FATAL(<span class="keyword">this</span>, <span class="stringliteral">"atomic_append::lock() saw an error when searching for just written data"</span>);</div> -<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  std::terminate();</div> -<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  }</div> -<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keyword">const</span> atomic_append_detail::lock_request *record, *lastrecord;</div> -<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keywordflow">for</span>(record = (<span class="keyword">const</span> atomic_append_detail::lock_request *) readoutcome.get().first, lastrecord = (<span class="keyword">const</span> atomic_append_detail::lock_request *) (readoutcome.get().first + readoutcome.get().second); record < lastrecord && record->hash != lock_request.hash; ++record)</div> -<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  my_lock_request_offset += <span class="keyword">sizeof</span>(atomic_append_detail::lock_request);</div> -<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordflow">if</span>(record->hash == lock_request.hash)</div> -<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="keywordflow">break</span>;</div> -<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  }</div> -<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> </div> -<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="comment">// extent_guard is now valid and will be unlocked on error</span></div> -<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  out.hint = my_lock_request_offset;</div> -<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  disableunlock.dismiss();</div> -<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> </div> -<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="comment">// Lock my request for writing so others can sleep on me</span></div> -<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  file_handle::extent_guard my_request_guard;</div> -<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keywordflow">if</span>(!spin_not_sleep)</div> -<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  {</div> -<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="keyword">auto</span> lock_offset = my_lock_request_offset;</div> -<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="comment">// Set the top bit to use the shadow lock space on Windows</span></div> -<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  lock_offset |= (1ULL << 63);</div> -<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  BOOST_OUTCOME_TRY(my_request_guard_, _h.<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(lock_offset, <span class="keyword">sizeof</span>(lock_request), <span class="keyword">true</span>));</div> -<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  my_request_guard = std::move(my_request_guard_);</div> -<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  }</div> -<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> </div> -<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="comment">// Read every record preceding mine until header.first_known_good inclusive</span></div> -<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keyword">auto</span> record_offset = my_lock_request_offset - <span class="keyword">sizeof</span>(atomic_append_detail::lock_request);</div> -<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keywordflow">do</span></div> -<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  {</div> -<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  reload:</div> -<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="comment">// Refresh the header and load a snapshot of everything between record_offset</span></div> -<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="comment">// and first_known_good or -6Kb, whichever the sooner</span></div> -<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  _read_header();</div> -<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="comment">// If there are no preceding records, we're done</span></div> -<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="keywordflow">if</span>(record_offset < _header.first_known_good)</div> -<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keywordflow">break</span>;</div> -<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keyword">auto</span> start_offset = record_offset;</div> -<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keywordflow">if</span>(start_offset > <span class="keyword">sizeof</span>(_buffer) - <span class="keyword">sizeof</span>(atomic_append_detail::lock_request))</div> -<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  start_offset -= <span class="keyword">sizeof</span>(_buffer) - <span class="keyword">sizeof</span>(atomic_append_detail::lock_request);</div> -<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keywordflow">else</span></div> -<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  start_offset = <span class="keyword">sizeof</span>(atomic_append_detail::lock_request);</div> -<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keywordflow">if</span>(start_offset < _header.first_known_good)</div> -<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  start_offset = _header.first_known_good;</div> -<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  assert(record_offset >= start_offset);</div> -<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  assert(record_offset - start_offset <= <span class="keyword">sizeof</span>(_buffer));</div> -<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  BOOST_OUTCOME_TRY(batchread, _h.<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2" title="Read data from the open handle.">read</a>(start_offset, _buffer, (<span class="keywordtype">size_t</span>)(record_offset - start_offset) + <span class="keyword">sizeof</span>(atomic_append_detail::lock_request)));</div> -<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  assert(batchread.second == record_offset - start_offset + <span class="keyword">sizeof</span>(atomic_append_detail::lock_request));</div> -<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keyword">const</span> atomic_append_detail::lock_request *record = (atomic_append_detail::lock_request *) (batchread.first + batchread.second - <span class="keyword">sizeof</span>(atomic_append_detail::lock_request));</div> -<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="keyword">const</span> atomic_append_detail::lock_request *firstrecord = (atomic_append_detail::lock_request *) batchread.first;</div> -<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> </div> -<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="comment">// Skip all completed lock requests or not mentioning any of my entities</span></div> -<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keywordflow">for</span>(; record >= firstrecord; record_offset -= <span class="keyword">sizeof</span>(atomic_append_detail::lock_request), --record)</div> -<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  {</div> -<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="comment">// If a completed lock request, skip</span></div> -<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keywordflow">if</span>(!record->hash && !record->unique_id)</div> -<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keywordflow">continue</span>;</div> -<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="comment">// If record hash doesn't match contents it's a torn read, reload</span></div> -<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="keywordflow">if</span>(!_skip_hashing)</div> -<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  {</div> -<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <span class="keywordflow">if</span>(record->hash != boost_lite::algorithm::hash::fast_hash::hash(((<span class="keywordtype">char</span> *) record) + 16, <span class="keyword">sizeof</span>(atomic_append_detail::lock_request) - 16))</div> -<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="keywordflow">goto</span> reload;</div> -<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  }</div> -<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div> -<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="comment">// Does this record lock anything I am locking?</span></div> -<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keywordflow">for</span>(<span class="keyword">const</span> <span class="keyword">auto</span> &entity : out.entities)</div> -<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  {</div> -<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> n = 0; n < record->items; n++)</div> -<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  {</div> -<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keywordflow">if</span>(record->entities[n].value == entity.value)</div> -<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  {</div> -<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="comment">// Is the lock I want exclusive or the lock he wants exclusive?</span></div> -<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="comment">// If so, need to block</span></div> -<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="keywordflow">if</span>(record->entities[n].exclusive || entity.exclusive)</div> -<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="keywordflow">goto</span> beginwait;</div> -<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  }</div> -<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  }</div> -<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  }</div> -<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  }</div> -<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <span class="comment">// None of this batch of records has anything to do with my request, so keep going</span></div> -<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keywordflow">continue</span>;</div> -<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> </div> -<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  beginwait:</div> -<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <span class="comment">// Sleep until this record is freed using a shared lock</span></div> -<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <span class="comment">// on the record in our way. Note there is a race here</span></div> -<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="comment">// between when the lock requester writes the lock</span></div> -<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="comment">// request and when he takes an exclusive lock on it,</span></div> -<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <span class="comment">// so if our shared lock succeeds we need to immediately</span></div> -<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="comment">// unlock and retry based on the data.</span></div> -<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  stl11::this_thread::yield();</div> -<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keywordflow">if</span>(!spin_not_sleep)</div> -<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  {</div> -<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <a class="code" href="structdeadline.html" title="A time deadline in either relative-to-now or absolute (system clock) terms.">deadline</a> nd;</div> -<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keywordflow">if</span>(d)</div> -<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  {</div> -<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordflow">if</span>((d).steady)</div> -<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  {</div> -<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  stl11::chrono::nanoseconds ns = stl11::chrono::duration_cast<stl11::chrono::nanoseconds>((began_steady + stl11::chrono::nanoseconds((d).nsecs)) - stl11::chrono::steady_clock::now());</div> -<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keywordflow">if</span>(ns.count() < 0)</div> -<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  (nd).nsecs = 0;</div> -<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordflow">else</span></div> -<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  (nd).nsecs = ns.count();</div> -<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  }</div> -<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keywordflow">else</span></div> -<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  (nd) = (d);</div> -<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  }</div> -<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <span class="keyword">auto</span> lock_offset = record_offset;</div> -<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="comment">// Set the top bit to use the shadow lock space on Windows</span></div> -<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  lock_offset |= (1ULL << 63);</div> -<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  BOOST_OUTCOME_TRY(record_guard_, _h.<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(lock_offset, <span class="keyword">sizeof</span>(record), <span class="keyword">false</span>, nd));</div> -<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  }</div> -<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="comment">// Make sure we haven't timed out during this wait</span></div> -<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keywordflow">if</span>(d)</div> -<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  {</div> -<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="keywordflow">if</span>((d).steady)</div> -<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  {</div> -<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="keywordflow">if</span>(stl11::chrono::steady_clock::now() >= (began_steady + stl11::chrono::nanoseconds((d).nsecs)))</div> -<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="keywordflow">return</span> make_errored_result<void>(stl11::errc::timed_out);</div> -<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  }</div> -<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="keywordflow">else</span></div> -<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  {</div> -<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keywordflow">if</span>(stl11::chrono::system_clock::now() >= end_utc)</div> -<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keywordflow">return</span> make_errored_result<void>(stl11::errc::timed_out);</div> -<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  }</div> -<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  }</div> -<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  } <span class="keywordflow">while</span>(record_offset >= _header.first_known_good);</div> -<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="keywordflow">return</span> make_valued_result<void>();</div> -<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  }</div> +<div class="fragment"><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  {</div> +<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  BOOST_AFIO_LOG_FUNCTION_CALL(<span class="keyword">this</span>);</div> +<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  atomic_append_detail::lock_request lock_request;</div> +<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keywordflow">if</span>(out.entities.size() > <span class="keyword">sizeof</span>(lock_request.entities) / <span class="keyword">sizeof</span>(lock_request.entities[0]))</div> +<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordflow">return</span> make_errored_result<void>(stl11::errc::argument_list_too_long);</div> +<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div> +<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  stl11::chrono::steady_clock::time_point began_steady;</div> +<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  stl11::chrono::system_clock::time_point end_utc;</div> +<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="keywordflow">if</span>(d)</div> +<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  {</div> +<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keywordflow">if</span>((d).steady)</div> +<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  began_steady = stl11::chrono::steady_clock::now();</div> +<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keywordflow">else</span></div> +<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  end_utc = (d).to_time_point();</div> +<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  }</div> +<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="comment">// Fire this if an error occurs</span></div> +<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keyword">auto</span> disableunlock = undoer([&] { out.release(); });</div> +<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div> +<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="comment">// Write my lock request immediately</span></div> +<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  memset(&lock_request, 0, <span class="keyword">sizeof</span>(lock_request));</div> +<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  lock_request.unique_id = _unique_id;</div> +<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keyword">auto</span> count = stl11::chrono::system_clock::now() - stl11::chrono::system_clock::from_time_t(_header.time_offset);</div> +<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  lock_request.us_count = stl11::chrono::duration_cast<stl11::chrono::microseconds>(count).count();</div> +<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  lock_request.items = out.entities.size();</div> +<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  memcpy(lock_request.entities, out.entities.data(), <span class="keyword">sizeof</span>(lock_request.entities[0]) * out.entities.size());</div> +<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keywordflow">if</span>(!_skip_hashing)</div> +<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  lock_request.hash = boost_lite::algorithm::hash::fast_hash::hash(((<span class="keywordtype">char</span> *) &lock_request) + 16, <span class="keyword">sizeof</span>(lock_request) - 16);</div> +<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="comment">// My lock request will be the file's current length or higher</span></div> +<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  BOOST_OUTCOME_TRY(my_lock_request_offset, _h.<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a6e4524b6bd5de76631bcc7ab68bab7bd">length</a>());</div> +<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  {</div> +<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  BOOST_OUTCOME_TRYV(_h.<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#adf964e787e0666fc5b7d94c2715ee6f5">set_append_only</a>(<span class="keyword">true</span>));</div> +<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keyword">auto</span> undo = undoer([<span class="keyword">this</span>] { (void) _h.<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#adf964e787e0666fc5b7d94c2715ee6f5">set_append_only</a>(<span class="keyword">false</span>); });</div> +<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  file_handle::extent_guard append_guard;</div> +<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordflow">if</span>(_nfs_compatibility)</div> +<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  {</div> +<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  file_handle::extent_type lastbyte = (file_handle::extent_type) -1;</div> +<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="comment">// Lock up to the beginning of the shadow lock space</span></div> +<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  lastbyte &= ~(1ULL << 63);</div> +<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  BOOST_OUTCOME_TRY(append_guard_, _h.<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(my_lock_request_offset, lastbyte, <span class="keyword">true</span>));</div> +<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  append_guard = std::move(append_guard_);</div> +<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  }</div> +<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  BOOST_OUTCOME_TRYV(_h.<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a8890b6a6046fb562f9f0ab943b79dfb4" title="Write data to the open handle.">write</a>(0, (<span class="keywordtype">char</span> *) &lock_request, <span class="keyword">sizeof</span>(lock_request)));</div> +<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  }</div> +<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div> +<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="comment">// Find the record I just wrote</span></div> +<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  alignas(64) char _buffer[4096 + 2048]; <span class="comment">// 6Kb cache line aligned buffer</span></div> +<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="comment">// Read onwards from length as reported before I wrote my lock request</span></div> +<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="comment">// until I find my lock request. This loop should never actually iterate</span></div> +<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="comment">// except under extreme load conditions.</span><span class="comment"></span></div> +<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="comment"> //! \todo Read from header.last_known_good immediately if possible in order</span></div> +<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="comment"> //! to avoid a duplicate read later</span></div> +<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="comment"></span> for(;;)</div> +<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  {</div> +<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  file_handle::io_result<file_handle::buffer_type> readoutcome = _h.<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2" title="Read data from the open handle.">read</a>(my_lock_request_offset, _buffer, <span class="keyword">sizeof</span>(_buffer));</div> +<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="comment">// Should never happen :)</span></div> +<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keywordflow">if</span>(readoutcome.has_error())</div> +<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  {</div> +<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  BOOST_AFIO_LOG_FATAL(<span class="keyword">this</span>, <span class="stringliteral">"atomic_append::lock() saw an error when searching for just written data"</span>);</div> +<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  std::terminate();</div> +<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  }</div> +<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keyword">const</span> atomic_append_detail::lock_request *record, *lastrecord;</div> +<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keywordflow">for</span>(record = (<span class="keyword">const</span> atomic_append_detail::lock_request *) readoutcome.get().first, lastrecord = (<span class="keyword">const</span> atomic_append_detail::lock_request *) (readoutcome.get().first + readoutcome.get().second); record < lastrecord && record->hash != lock_request.hash; ++record)</div> +<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  my_lock_request_offset += <span class="keyword">sizeof</span>(atomic_append_detail::lock_request);</div> +<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keywordflow">if</span>(record->hash == lock_request.hash)</div> +<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  }</div> +<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> </div> +<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="comment">// extent_guard is now valid and will be unlocked on error</span></div> +<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  out.hint = my_lock_request_offset;</div> +<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  disableunlock.dismiss();</div> +<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> </div> +<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="comment">// Lock my request for writing so others can sleep on me</span></div> +<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  file_handle::extent_guard my_request_guard;</div> +<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keywordflow">if</span>(!spin_not_sleep)</div> +<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  {</div> +<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="keyword">auto</span> lock_offset = my_lock_request_offset;</div> +<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="comment">// Set the top bit to use the shadow lock space on Windows</span></div> +<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  lock_offset |= (1ULL << 63);</div> +<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  BOOST_OUTCOME_TRY(my_request_guard_, _h.<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(lock_offset, <span class="keyword">sizeof</span>(lock_request), <span class="keyword">true</span>));</div> +<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  my_request_guard = std::move(my_request_guard_);</div> +<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  }</div> +<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> </div> +<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="comment">// Read every record preceding mine until header.first_known_good inclusive</span></div> +<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="keyword">auto</span> record_offset = my_lock_request_offset - <span class="keyword">sizeof</span>(atomic_append_detail::lock_request);</div> +<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keywordflow">do</span></div> +<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  {</div> +<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  reload:</div> +<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="comment">// Refresh the header and load a snapshot of everything between record_offset</span></div> +<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="comment">// and first_known_good or -6Kb, whichever the sooner</span></div> +<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  BOOST_OUTCOME_TRYV(_read_header());</div> +<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="comment">// If there are no preceding records, we're done</span></div> +<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="keywordflow">if</span>(record_offset < _header.first_known_good)</div> +<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="keywordflow">break</span>;</div> +<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keyword">auto</span> start_offset = record_offset;</div> +<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keywordflow">if</span>(start_offset > <span class="keyword">sizeof</span>(_buffer) - <span class="keyword">sizeof</span>(atomic_append_detail::lock_request))</div> +<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  start_offset -= <span class="keyword">sizeof</span>(_buffer) - <span class="keyword">sizeof</span>(atomic_append_detail::lock_request);</div> +<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordflow">else</span></div> +<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  start_offset = <span class="keyword">sizeof</span>(atomic_append_detail::lock_request);</div> +<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keywordflow">if</span>(start_offset < _header.first_known_good)</div> +<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  start_offset = _header.first_known_good;</div> +<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  assert(record_offset >= start_offset);</div> +<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  assert(record_offset - start_offset <= <span class="keyword">sizeof</span>(_buffer));</div> +<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  BOOST_OUTCOME_TRY(batchread, _h.<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2" title="Read data from the open handle.">read</a>(start_offset, _buffer, (<span class="keywordtype">size_t</span>)(record_offset - start_offset) + <span class="keyword">sizeof</span>(atomic_append_detail::lock_request)));</div> +<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  assert(batchread.second == record_offset - start_offset + <span class="keyword">sizeof</span>(atomic_append_detail::lock_request));</div> +<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="keyword">const</span> atomic_append_detail::lock_request *record = (atomic_append_detail::lock_request *) (batchread.first + batchread.second - <span class="keyword">sizeof</span>(atomic_append_detail::lock_request));</div> +<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keyword">const</span> atomic_append_detail::lock_request *firstrecord = (atomic_append_detail::lock_request *) batchread.first;</div> +<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div> +<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="comment">// Skip all completed lock requests or not mentioning any of my entities</span></div> +<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keywordflow">for</span>(; record >= firstrecord; record_offset -= <span class="keyword">sizeof</span>(atomic_append_detail::lock_request), --record)</div> +<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  {</div> +<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="comment">// If a completed lock request, skip</span></div> +<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="keywordflow">if</span>(!record->hash && !record->unique_id)</div> +<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keywordflow">continue</span>;</div> +<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="comment">// If record hash doesn't match contents it's a torn read, reload</span></div> +<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keywordflow">if</span>(!_skip_hashing)</div> +<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  {</div> +<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="keywordflow">if</span>(record->hash != boost_lite::algorithm::hash::fast_hash::hash(((<span class="keywordtype">char</span> *) record) + 16, <span class="keyword">sizeof</span>(atomic_append_detail::lock_request) - 16))</div> +<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <span class="keywordflow">goto</span> reload;</div> +<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  }</div> +<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> </div> +<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="comment">// Does this record lock anything I am locking?</span></div> +<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keywordflow">for</span>(<span class="keyword">const</span> <span class="keyword">auto</span> &entity : out.entities)</div> +<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  {</div> +<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> n = 0; n < record->items; n++)</div> +<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  {</div> +<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <span class="keywordflow">if</span>(record->entities[n].value == entity.value)</div> +<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  {</div> +<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <span class="comment">// Is the lock I want exclusive or the lock he wants exclusive?</span></div> +<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="comment">// If so, need to block</span></div> +<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="keywordflow">if</span>(record->entities[n].exclusive || entity.exclusive)</div> +<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="keywordflow">goto</span> beginwait;</div> +<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  }</div> +<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  }</div> +<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  }</div> +<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  }</div> +<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="comment">// None of this batch of records has anything to do with my request, so keep going</span></div> +<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <span class="keywordflow">continue</span>;</div> +<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> </div> +<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  beginwait:</div> +<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="comment">// Sleep until this record is freed using a shared lock</span></div> +<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <span class="comment">// on the record in our way. Note there is a race here</span></div> +<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <span class="comment">// between when the lock requester writes the lock</span></div> +<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="comment">// request and when he takes an exclusive lock on it,</span></div> +<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="comment">// so if our shared lock succeeds we need to immediately</span></div> +<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <span class="comment">// unlock and retry based on the data.</span></div> +<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  stl11::this_thread::yield();</div> +<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <span class="keywordflow">if</span>(!spin_not_sleep)</div> +<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  {</div> +<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <a class="code" href="structdeadline.html" title="A time deadline in either relative-to-now or absolute (system clock) terms.">deadline</a> nd;</div> +<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="keywordflow">if</span>(d)</div> +<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  {</div> +<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keywordflow">if</span>((d).steady)</div> +<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  {</div> +<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  stl11::chrono::nanoseconds ns = stl11::chrono::duration_cast<stl11::chrono::nanoseconds>((began_steady + stl11::chrono::nanoseconds((d).nsecs)) - stl11::chrono::steady_clock::now());</div> +<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keywordflow">if</span>(ns.count() < 0)</div> +<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  (nd).nsecs = 0;</div> +<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="keywordflow">else</span></div> +<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  (nd).nsecs = ns.count();</div> +<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  }</div> +<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keywordflow">else</span></div> +<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  (nd) = (d);</div> +<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  }</div> +<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keyword">auto</span> lock_offset = record_offset;</div> +<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <span class="comment">// Set the top bit to use the shadow lock space on Windows</span></div> +<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  lock_offset |= (1ULL << 63);</div> +<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  BOOST_OUTCOME_TRY(record_guard_, _h.<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(lock_offset, <span class="keyword">sizeof</span>(record), <span class="keyword">false</span>, nd));</div> +<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  }</div> +<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="comment">// Make sure we haven't timed out during this wait</span></div> +<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keywordflow">if</span>(d)</div> +<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  {</div> +<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="keywordflow">if</span>((d).steady)</div> +<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  {</div> +<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="keywordflow">if</span>(stl11::chrono::steady_clock::now() >= (began_steady + stl11::chrono::nanoseconds((d).nsecs)))</div> +<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="keywordflow">return</span> make_errored_result<void>(stl11::errc::timed_out);</div> +<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  }</div> +<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keywordflow">else</span></div> +<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  {</div> +<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="keywordflow">if</span>(stl11::chrono::system_clock::now() >= end_utc)</div> +<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keywordflow">return</span> make_errored_result<void>(stl11::errc::timed_out);</div> +<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  }</div> +<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  }</div> +<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  } <span class="keywordflow">while</span>(record_offset >= _header.first_known_good);</div> +<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <span class="keywordflow">return</span> make_valued_result<void>();</div> +<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  }</div> </div><!-- fragment --> </div> </div> @@ -519,24 +519,23 @@ Protected Member Functions</h2></td></tr> <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keywordflow">else</span></div> <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  {</div> <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="comment">// I am the first person to be using this (stale?) file, so write a new header and truncate</span></div> -<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  ret.truncate(<span class="keyword">sizeof</span>(header));</div> +<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  BOOST_OUTCOME_TRYV(ret.truncate(<span class="keyword">sizeof</span>(header)));</div> <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  memset(&header, 0, <span class="keyword">sizeof</span>(header));</div> <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  header.time_offset = stl11::chrono::system_clock::to_time_t(stl11::chrono::system_clock::now());</div> <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  header.first_known_good = <span class="keyword">sizeof</span>(header);</div> <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  header.first_after_hole_punch = <span class="keyword">sizeof</span>(header);</div> <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">if</span>(!skip_hashing)</div> <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  header.hash = boost_lite::algorithm::hash::fast_hash::hash(((<span class="keywordtype">char</span> *) &header) + 16, <span class="keyword">sizeof</span>(header) - 16);</div> -<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  BOOST_OUTCOME_TRY(_, ret.write(0, (<span class="keywordtype">char</span> *) &header, <span class="keyword">sizeof</span>(header)));</div> -<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  (void) _;</div> -<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  }</div> -<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="comment">// Open a shared lock on last byte in header to prevent other users zomping the file</span></div> -<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  BOOST_OUTCOME_TRY(guard, ret.lock(<span class="keyword">sizeof</span>(header) - 1, 1, <span class="keyword">false</span>));</div> -<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="comment">// Unlock any exclusive lock I gained earlier now</span></div> -<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">if</span>(lockresult)</div> -<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  lockresult.get().unlock();</div> -<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="comment">// The constructor will read and cache the header</span></div> -<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keywordflow">return</span> atomic_append(std::move(ret), std::move(guard), nfs_compatibility, skip_hashing);</div> -<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  }</div> +<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  BOOST_OUTCOME_TRYV(ret.write(0, (<span class="keywordtype">char</span> *) &header, <span class="keyword">sizeof</span>(header)));</div> +<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  }</div> +<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="comment">// Open a shared lock on last byte in header to prevent other users zomping the file</span></div> +<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  BOOST_OUTCOME_TRY(guard, ret.lock(<span class="keyword">sizeof</span>(header) - 1, 1, <span class="keyword">false</span>));</div> +<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="comment">// Unlock any exclusive lock I gained earlier now</span></div> +<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordflow">if</span>(lockresult)</div> +<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  lockresult.get().unlock();</div> +<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="comment">// The constructor will read and cache the header</span></div> +<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordflow">return</span> atomic_append(std::move(ret), std::move(guard), nfs_compatibility, skip_hashing);</div> +<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  }</div> </div><!-- fragment --> </div> </div> diff --git a/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html b/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html index e7368406..034db26e 100644 --- a/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html +++ b/classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html @@ -367,14 +367,14 @@ template<template< class > class Hasher = boost_lite::algorithm::hash:: <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordflow">else</span></div> <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  {</div> <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="comment">// I am the first person to be using this (stale?) file, so create a new hash index file and write its path</span></div> -<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  ret.truncate(0);</div> +<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  BOOST_OUTCOME_TRYV(ret.truncate(0));</div> <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  BOOST_OUTCOME_TRY(_temph, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a603b0827a9ae139b8f5806b1297fa5f0">file_handle::random_file</a>(<a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ad7da7a1d3240d7574fc7c6ee5831b7ee" title="Returns a path to a directory reported by the operating system to be suitable for storing temporary f...">fixme_temporary_files_directory</a>()));</div> <div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  temph = std::move(_temph);</div> <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keyword">auto</span> temppath(temph.path());</div> -<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  temph.truncate(HashIndexSize);</div> +<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  BOOST_OUTCOME_TRYV(temph.truncate(HashIndexSize));</div> <div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="preprocessor">#ifdef __linux__</span></div> <div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="preprocessor"></span> <span class="comment">// Linux appears to have a race where if you mmap for read straight after a fallocate, on read you get a SIGBUS</span></div> -<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  temph.sync();</div> +<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  BOOST_OUTCOME_TRYV(temph.barrier());</div> <div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="preprocessor"></span> <span class="comment">// Write the path of my new hash index file and convert my lock to a shared one</span></div> <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  BOOST_OUTCOME_TRYV(ret.write(0, (<span class="keyword">const</span> <span class="keywordtype">char</span> *) temppath.c_str(), temppath.native().size() * <span class="keyword">sizeof</span>(*temppath.c_str())));</div> diff --git a/classboost_1_1afio_1_1v2__xxx_1_1async__file__handle-members.html b/classboost_1_1afio_1_1v2__xxx_1_1async__file__handle-members.html index 0efb2026..e876c726 100644 --- a/classboost_1_1afio_1_1v2__xxx_1_1async__file__handle-members.html +++ b/classboost_1_1afio_1_1v2__xxx_1_1async__file__handle-members.html @@ -135,6 +135,8 @@ $(document).ready(function(){initNavTree('classboost_1_1afio_1_1v2__xxx_1_1async <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a9c9b80713854d6b55bc39ea02ec0de44">async_temp_file</a>(io_service &service, path_type name=path_type(), mode _mode=mode::write, creation _creation=creation::if_needed, caching _caching=caching::temporary, flag flags=flag::unlink_on_close) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html">boost::afio::v2_xxx::async_file_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr> <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ab2f51e9a4a194325a381b5e418702ad8">async_temp_inode</a>(io_service &service, path_type dirpath=fixme_temporary_files_directory(), mode _mode=mode::write, flag flags=flag::none) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html">boost::afio::v2_xxx::async_file_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr> <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a79672341d97d3f934d6c90637bbeb40c">async_write</a>(io_request< const_buffers_type > reqs, CompletionRoutine &&completion) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html">boost::afio::v2_xxx::async_file_handle</a></td><td class="entry"></td></tr> + <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>barrier</b>(io_request< const_buffers_type > reqs=io_request< const_buffers_type >(), bool wait_for_device=false, bool and_metadata=false, deadline d=deadline()) noexceptoverride (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> + <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a13759dd906ab5564de0a381c3fe25726">boost::afio::v2_xxx::io_handle::barrier</a>(io_request< const_buffers_type > reqs=io_request< const_buffers_type >(), bool wait_for_device=false, bool and_metadata=false, deadline d=deadline()) noexcept=0</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">pure virtual</span></td></tr> <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>buffer_type</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html">boost::afio::v2_xxx::async_file_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html">boost::afio::v2_xxx::async_file_handle</a></td><td class="entry"></td></tr> <tr bgcolor="#f0f0f0"><td class="entry"><b>buffers_type</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html">boost::afio::v2_xxx::async_file_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html">boost::afio::v2_xxx::async_file_handle</a></td><td class="entry"></td></tr> <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>caching</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html">boost::afio::v2_xxx::async_file_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html">boost::afio::v2_xxx::async_file_handle</a></td><td class="entry"></td></tr> @@ -209,8 +211,6 @@ $(document).ready(function(){initNavTree('classboost_1_1afio_1_1v2__xxx_1_1async <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a9d551befa0fa25a7119c07abc3a7a0e0">swap</a>(async_file_handle &o) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html">boost::afio::v2_xxx::async_file_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aa6118e53c41add8d4112d9ebeddd9d14">boost::afio::v2_xxx::file_handle::swap</a>(file_handle &o) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#adc26314bd23b9080ac3c4c2dd6bc5937">boost::afio::v2_xxx::io_handle::swap</a>(handle &o) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>sync</b>(io_request< const_buffers_type > reqs=io_request< const_buffers_type >(), bool wait_for_device=false, bool and_metadata=false, deadline d=deadline()) noexceptoverride (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> - <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a01027dfc7b8d85f2ba3b5a56ef053191">boost::afio::v2_xxx::io_handle::sync</a>(io_request< const_buffers_type > reqs=io_request< const_buffers_type >(), bool wait_for_device=false, bool and_metadata=false, deadline d=deadline()) noexcept=0</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">pure virtual</span></td></tr> <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ae614d4ecdef1dd817056f9ada1e5111f">temp_file</a>(path_type name=path_type(), mode _mode=mode::write, creation _creation=creation::if_needed, caching _caching=caching::temporary, flag flags=flag::unlink_on_close) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr> <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a841ba6c013b21dba15bceb472c3cbecf">temp_inode</a>(path_type dirpath=fixme_temporary_files_directory(), mode _mode=mode::write, flag flags=flag::none) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr> <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#afa870f2f9d173e10443a4f04727fe2bc">truncate</a>(extent_type newsize) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> diff --git a/classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html b/classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html index f65abb95..9d422d47 100644 --- a/classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html +++ b/classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html @@ -270,14 +270,14 @@ virtual path_type </td><td class="memItemRight" valign="bottom"><a class="e virtual <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>< void > </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ab317ddd32e1ba126c647b6a89541ad67">close</a> () noexceptoverride</td></tr> <tr class="memdesc:ab317ddd32e1ba126c647b6a89541ad67"><td class="mdescLeft"> </td><td class="mdescRight">Immediately close the native handle type managed by this handle. <br/></td></tr> <tr class="separator:ab317ddd32e1ba126c647b6a89541ad67"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a160f3f14661044dc28a264683bfb20e6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a160f3f14661044dc28a264683bfb20e6"></a> +<tr class="memitem:a94e4f4f1c76498114751489d44a34b5c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a94e4f4f1c76498114751489d44a34b5c"></a> virtual <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html">io_result</a><br class="typebreak"/> -< const_buffers_type > </td><td class="memItemRight" valign="bottom"><b>sync</b> (<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< const_buffers_type > reqs=<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< const_buffers_type >(), bool wait_for_device=false, bool and_metadata=false, <a class="el" href="structdeadline.html">deadline</a> d=<a class="el" href="structdeadline.html">deadline</a>()) noexceptoverride</td></tr> -<tr class="separator:a160f3f14661044dc28a264683bfb20e6"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a01027dfc7b8d85f2ba3b5a56ef053191"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html">io_result</a><br class="typebreak"/> -< const_buffers_type > </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a01027dfc7b8d85f2ba3b5a56ef053191">sync</a> (<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< const_buffers_type > reqs=<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< const_buffers_type >(), bool wait_for_device=false, bool and_metadata=false, <a class="el" href="structdeadline.html">deadline</a> d=<a class="el" href="structdeadline.html">deadline</a>()) noexcept=0</td></tr> -<tr class="memdesc:a01027dfc7b8d85f2ba3b5a56ef053191"><td class="mdescLeft"> </td><td class="mdescRight">Issue a write reordering barrier for preceding writes such that they will all be issued to storage before any writes after the barrier. <a href="#a01027dfc7b8d85f2ba3b5a56ef053191">More...</a><br/></td></tr> -<tr class="separator:a01027dfc7b8d85f2ba3b5a56ef053191"><td class="memSeparator" colspan="2"> </td></tr> +< const_buffers_type > </td><td class="memItemRight" valign="bottom"><b>barrier</b> (<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< const_buffers_type > reqs=<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< const_buffers_type >(), bool wait_for_device=false, bool and_metadata=false, <a class="el" href="structdeadline.html">deadline</a> d=<a class="el" href="structdeadline.html">deadline</a>()) noexceptoverride</td></tr> +<tr class="separator:a94e4f4f1c76498114751489d44a34b5c"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a13759dd906ab5564de0a381c3fe25726"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html">io_result</a><br class="typebreak"/> +< const_buffers_type > </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a13759dd906ab5564de0a381c3fe25726">barrier</a> (<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< const_buffers_type > reqs=<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< const_buffers_type >(), bool wait_for_device=false, bool and_metadata=false, <a class="el" href="structdeadline.html">deadline</a> d=<a class="el" href="structdeadline.html">deadline</a>()) noexcept=0</td></tr> +<tr class="memdesc:a13759dd906ab5564de0a381c3fe25726"><td class="mdescLeft"> </td><td class="mdescRight">Issue a write reordering barrier such that writes preceding the barrier will reach storage before writes after this barrier. <a href="#a13759dd906ab5564de0a381c3fe25726">More...</a><br/></td></tr> +<tr class="separator:a13759dd906ab5564de0a381c3fe25726"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a396487cb0116b194fbb477a7ccbd26cb"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">file_handle</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a396487cb0116b194fbb477a7ccbd26cb">clone</a> () const noexcept</td></tr> <tr class="separator:a396487cb0116b194fbb477a7ccbd26cb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab6547a4b98dbf613c6d58c4adb2c6f39"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>< path_type > </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ab6547a4b98dbf613c6d58c4adb2c6f39">relink</a> (path_type newpath) noexcept</td></tr> @@ -840,6 +840,71 @@ template<class CompletionRoutine > </div> </div> </div> +<a class="anchor" id="a13759dd906ab5564de0a381c3fe25726"></a> +<div class="memitem"> +<div class="memproto"> +<table class="mlabels"> + <tr> + <td class="mlabels-left"> + <table class="memname"> + <tr> + <td class="memname">virtual <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html">io_result</a><const_buffers_type> boost::afio::v2_xxx::io_handle::barrier </td> + <td>(</td> + <td class="paramtype"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> > </td> + <td class="paramname"><em>reqs</em> = <code><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> >()</code>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">bool </td> + <td class="paramname"><em>wait_for_device</em> = <code>false</code>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">bool </td> + <td class="paramname"><em>and_metadata</em> = <code>false</code>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="structdeadline.html">deadline</a> </td> + <td class="paramname"><em>d</em> = <code><a class="el" href="structdeadline.html">deadline</a>()</code> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> + </td> + <td class="mlabels-right"> +<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">pure virtual</span><span class="mlabel">noexcept</span><span class="mlabel">inherited</span></span> </td> + </tr> +</table> +</div><div class="memdoc"> + +<p>Issue a write reordering barrier such that writes preceding the barrier will reach storage before writes after this barrier. </p> +<dl class="section warning"><dt>Warning</dt><dd><b>Assume that this call is a no-op</b>. It is not reliably implemented in many common use cases, for example if your code is running inside a LXC container, or if the user has mounted the filing system with non-default options. Instead open the handle with <code>caching::reads</code> which means that all writes form a strict sequential order not completing until acknowledged by the storage device. Filing system can and do use different algorithms to give much better performance with <code>caching::reads</code>, some (e.g. ZFS) spectacularly better.</dd> +<dd> +Let me repeat again: consider this call to be a <b>hint</b> to poke the kernel with a stick to go start to do some work sooner rather than later. It may be ignored entirely.</dd> +<dd> +For portability, you can only assume that barriers write order for a single handle instance. You cannot assume that barriers write order across multiple handles to the same inode, or across processes.</dd></dl> +<dl class="section return"><dt>Returns</dt><dd>The buffers barriered, which may not be the buffers input. The size of each scatter-gather buffer is updated with the number of bytes of that buffer barriered. </dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">reqs</td><td>A scatter-gather and offset request for what range to barrier. May be ignored on some platforms which always write barrier the entire file. Supplying a default initialised reqs write barriers the entire file. </td></tr> + <tr><td class="paramname">wait_for_device</td><td>True if you want the call to wait until data reaches storage and that storage has acknowledged the data is physically written. Slow. </td></tr> + <tr><td class="paramname">and_metadata</td><td>True if you want the call to sync the metadata for retrieving the writes before the barrier after a sudden power loss event. Slow. </td></tr> + <tr><td class="paramname">d</td><td>An optional deadline by which the i/o must complete, else it is cancelled. Note function may return significantly after this deadline if the i/o takes long to cancel. </td></tr> + </table> + </dd> +</dl> +<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX fdatasync() or Windows NtFlushBuffersFileEx() can return. </dd></dl> +<dl class="section user"><dt>Memory Allocations</dt><dd>None. </dd></dl> + +</div> +</div> <a class="anchor" id="a146af690967dbe866f3ecf1ebd5358b0"></a> <div class="memitem"> <div class="memproto"> @@ -1063,12 +1128,12 @@ template<class CompletionRoutine > </div> </table> </div><div class="memdoc"> <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p> -<div class="fragment"><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  {</div> -<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <span class="keywordtype">size_t</span> bytes = 0;</div> -<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> &i : reqs.buffers)</div> -<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  bytes += i.second;</div> -<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  <span class="keywordflow">return</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(reqs.offset, bytes, <span class="keyword">false</span>, std::move(d));</div> -<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  }</div> +<div class="fragment"><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  {</div> +<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <span class="keywordtype">size_t</span> bytes = 0;</div> +<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> &i : reqs.buffers)</div> +<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  bytes += i.second;</div> +<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  <span class="keywordflow">return</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(reqs.offset, bytes, <span class="keyword">false</span>, std::move(d));</div> +<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  }</div> </div><!-- fragment --> </div> </div> @@ -1104,12 +1169,12 @@ template<class CompletionRoutine > </div> </table> </div><div class="memdoc"> <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p> -<div class="fragment"><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  {</div> -<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="keywordtype">size_t</span> bytes = 0;</div> -<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> &i : reqs.buffers)</div> -<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  bytes += i.second;</div> -<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <span class="keywordflow">return</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(reqs.offset, bytes, <span class="keyword">true</span>, std::move(d));</div> -<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  }</div> +<div class="fragment"><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  {</div> +<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  <span class="keywordtype">size_t</span> bytes = 0;</div> +<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> &i : reqs.buffers)</div> +<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  bytes += i.second;</div> +<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  <span class="keywordflow">return</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(reqs.offset, bytes, <span class="keyword">true</span>, std::move(d));</div> +<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  }</div> </div><!-- fragment --> </div> </div> @@ -1158,22 +1223,22 @@ template<class CompletionRoutine > </div> </div><div class="memdoc"> <p>Create a file handle creating a randomly named file on a path. The file is opened exclusively with <code>creation::only_if_not_exist</code> so it will never collide with nor overwrite any existing file. Note also that caching defaults to temporary which hints to the OS to only flush changes to physical storage as lately as possible.</p> <dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX open() or CreateFile() can return. </dd></dl> -<div class="fragment"><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  {</div> -<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">try</span></div> -<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  {</div> -<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  result<file_handle> ret;</div> -<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordflow">do</span></div> -<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  {</div> -<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keyword">auto</span> randomname = <a class="code" href="namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html#a051e8deb72941b3460811a1cf5f29915" title="Returns a cryptographically random string capable of being used as a filename. Essentially random_fil...">utils::random_string</a>(32);</div> -<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  randomname.append(<span class="stringliteral">".random"</span>);</div> -<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  ret = <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#af912595f8964b78186236a2cec1150a4">file</a>(dirpath / randomname, _mode, creation::only_if_not_exist, _caching, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#add27fa17cd6356b49a26a8b6dafb6a6d" title="The flags this handle was opened with.">flags</a>);</div> -<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">if</span>(!ret && ret.get_error().value() != EEXIST)</div> -<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">return</span> ret;</div> -<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  } <span class="keywordflow">while</span>(!ret);</div> -<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">return</span> ret;</div> -<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  }</div> -<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  BOOST_OUTCOME_CATCH_ALL_EXCEPTION_TO_RESULT</div> -<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  }</div> +<div class="fragment"><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  {</div> +<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">try</span></div> +<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  {</div> +<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  result<file_handle> ret;</div> +<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">do</span></div> +<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  {</div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keyword">auto</span> randomname = <a class="code" href="namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html#a051e8deb72941b3460811a1cf5f29915" title="Returns a cryptographically random string capable of being used as a filename. Essentially random_fil...">utils::random_string</a>(32);</div> +<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  randomname.append(<span class="stringliteral">".random"</span>);</div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  ret = <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#af912595f8964b78186236a2cec1150a4">file</a>(dirpath / randomname, _mode, creation::only_if_not_exist, _caching, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#add27fa17cd6356b49a26a8b6dafb6a6d" title="The flags this handle was opened with.">flags</a>);</div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordflow">if</span>(!ret && ret.get_error().value() != EEXIST)</div> +<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordflow">return</span> ret;</div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  } <span class="keywordflow">while</span>(!ret);</div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordflow">return</span> ret;</div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  }</div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  BOOST_OUTCOME_CATCH_ALL_EXCEPTION_TO_RESULT</div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  }</div> </div><!-- fragment --> </div> </div> @@ -1267,12 +1332,12 @@ template<class CompletionRoutine > </div> </table> </div><div class="memdoc"> <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p> -<div class="fragment"><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  {</div> -<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a811166f987d82fcd3c85c6aa0b9b4f34" title="The scatter buffer type used by this handle.">buffer_type</a> _reqs[1] = {{data, bytes}};</div> -<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  io_request<buffers_type> reqs(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a9085d19b744d1330eafa51fffc49e104" title="The scatter buffers type used by this handle.">buffers_type</a>(_reqs), offset);</div> -<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  BOOST_OUTCOME_TRY(v, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2" title="Read data from the open handle.">read</a>(reqs, d));</div> -<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <span class="keywordflow">return</span> *v.data();</div> -<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  }</div> +<div class="fragment"><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  {</div> +<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a811166f987d82fcd3c85c6aa0b9b4f34" title="The scatter buffer type used by this handle.">buffer_type</a> _reqs[1] = {{data, bytes}};</div> +<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  io_request<buffers_type> reqs(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a9085d19b744d1330eafa51fffc49e104" title="The scatter buffers type used by this handle.">buffers_type</a>(_reqs), offset);</div> +<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  BOOST_OUTCOME_TRY(v, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2" title="Read data from the open handle.">read</a>(reqs, d));</div> +<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keywordflow">return</span> *v.data();</div> +<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  }</div> </div><!-- fragment --> </div> </div> @@ -1365,69 +1430,6 @@ template<class CompletionRoutine > </div> </div> </div> -<a class="anchor" id="a01027dfc7b8d85f2ba3b5a56ef053191"></a> -<div class="memitem"> -<div class="memproto"> -<table class="mlabels"> - <tr> - <td class="mlabels-left"> - <table class="memname"> - <tr> - <td class="memname">virtual <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html">io_result</a><const_buffers_type> boost::afio::v2_xxx::io_handle::sync </td> - <td>(</td> - <td class="paramtype"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> > </td> - <td class="paramname"><em>reqs</em> = <code><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> >()</code>, </td> - </tr> - <tr> - <td class="paramkey"></td> - <td></td> - <td class="paramtype">bool </td> - <td class="paramname"><em>wait_for_device</em> = <code>false</code>, </td> - </tr> - <tr> - <td class="paramkey"></td> - <td></td> - <td class="paramtype">bool </td> - <td class="paramname"><em>and_metadata</em> = <code>false</code>, </td> - </tr> - <tr> - <td class="paramkey"></td> - <td></td> - <td class="paramtype"><a class="el" href="structdeadline.html">deadline</a> </td> - <td class="paramname"><em>d</em> = <code><a class="el" href="structdeadline.html">deadline</a>()</code> </td> - </tr> - <tr> - <td></td> - <td>)</td> - <td></td><td></td> - </tr> - </table> - </td> - <td class="mlabels-right"> -<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">pure virtual</span><span class="mlabel">noexcept</span><span class="mlabel">inherited</span></span> </td> - </tr> -</table> -</div><div class="memdoc"> - -<p>Issue a write reordering barrier for preceding writes such that they will all be issued to storage before any writes after the barrier. </p> -<dl class="section warning"><dt>Warning</dt><dd>This call really is for people with deep understanding of individual filing systems, and unless you <b>really</b> know what you are doing, do NOT use this call as it is false security. Instead open the handle with <code>caching::reads</code>, that will get you true durable write ordering, plus the filing system can use different algorithms to give much better performance.</dd> -<dd> -For portability, you can only assume that sync()'s are write ordered for a single handle instance. You cannot assume that sync() write orders across multiple handles to the same inode, or across processes.</dd></dl> -<dl class="section return"><dt>Returns</dt><dd>The buffers synced, which may not be the buffers input. The size of each scatter-gather buffer is updated with the number of bytes of that buffer synced. </dd></dl> -<dl class="params"><dt>Parameters</dt><dd> - <table class="params"> - <tr><td class="paramname">reqs</td><td>A scatter-gather and offset request. May be ignored on some platforms. </td></tr> - <tr><td class="paramname">wait_for_device</td><td>True if you want the call to wait until data reaches storage and that storage has acknowledged the data is physically written. </td></tr> - <tr><td class="paramname">and_metadata</td><td>True if you want the call to sync the metadata for retrieving writes until now too. </td></tr> - <tr><td class="paramname">d</td><td>An optional deadline by which the i/o must complete, else it is cancelled. Note function may return significantly after this deadline if the i/o takes long to cancel. has confirmed that the data is written before returning. </td></tr> - </table> - </dd> -</dl> -<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX fdatasync() or Windows NtFlushBuffersFileEx() can return. </dd></dl> -<dl class="section user"><dt>Memory Allocations</dt><dd>None. </dd></dl> - -</div> -</div> <a class="anchor" id="ae614d4ecdef1dd817056f9ada1e5111f"></a> <div class="memitem"> <div class="memproto"> @@ -1480,9 +1482,9 @@ For portability, you can only assume that sync()'s are write ordered for a singl <p>Create a file handle creating the named file on some path which the OS declares to be suitable for temporary files. Most OSs are very lazy about flushing changes made to these temporary files. Note the default flags are to have the newly created file deleted on first handle close. Note also that an empty name is equivalent to calling <code>random_file(fixme_temporary_files_directory())</code> and the creation parameter is ignored.</p> <dl class="section note"><dt>Note</dt><dd>If the temporary file you are creating is not going to have its path sent to another process for usage, this is the WRONG function to use. Use <code>temp_inode()</code> instead, it is far more secure.</dd></dl> <dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX open() or CreateFile() can return. </dd></dl> -<div class="fragment"><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  {</div> -<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keywordflow">return</span> name.empty() ? <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a603b0827a9ae139b8f5806b1297fa5f0">random_file</a>(<a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ad7da7a1d3240d7574fc7c6ee5831b7ee" title="Returns a path to a directory reported by the operating system to be suitable for storing temporary f...">fixme_temporary_files_directory</a>(), _mode, _caching, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#add27fa17cd6356b49a26a8b6dafb6a6d" title="The flags this handle was opened with.">flags</a>) : <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#af912595f8964b78186236a2cec1150a4">file</a>(<a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ad7da7a1d3240d7574fc7c6ee5831b7ee" title="Returns a path to a directory reported by the operating system to be suitable for storing temporary f...">fixme_temporary_files_directory</a>() / name, _mode, _creation, _caching, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#add27fa17cd6356b49a26a8b6dafb6a6d" title="The flags this handle was opened with.">flags</a>);</div> -<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  }</div> +<div class="fragment"><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  {</div> +<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">return</span> name.empty() ? <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a603b0827a9ae139b8f5806b1297fa5f0">random_file</a>(<a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ad7da7a1d3240d7574fc7c6ee5831b7ee" title="Returns a path to a directory reported by the operating system to be suitable for storing temporary f...">fixme_temporary_files_directory</a>(), _mode, _caching, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#add27fa17cd6356b49a26a8b6dafb6a6d" title="The flags this handle was opened with.">flags</a>) : <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#af912595f8964b78186236a2cec1150a4">file</a>(<a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ad7da7a1d3240d7574fc7c6ee5831b7ee" title="Returns a path to a directory reported by the operating system to be suitable for storing temporary f...">fixme_temporary_files_directory</a>() / name, _mode, _creation, _caching, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#add27fa17cd6356b49a26a8b6dafb6a6d" title="The flags this handle was opened with.">flags</a>);</div> +<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  }</div> </div><!-- fragment --> </div> </div> @@ -1599,7 +1601,7 @@ For portability, you can only assume that sync()'s are write ordered for a singl </table> </div><div class="memdoc"> <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p> -<div class="fragment"><div class="line"><a name="l00596"></a><span class="lineno"> 596</span> { <span class="keywordflow">return</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(offset, bytes, exclusive, <a class="code" href="structdeadline.html" title="A time deadline in either relative-to-now or absolute (system clock) terms.">deadline</a>(stl11::chrono::seconds(0))); }</div> +<div class="fragment"><div class="line"><a name="l00607"></a><span class="lineno"> 607</span> { <span class="keywordflow">return</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(offset, bytes, exclusive, <a class="code" href="structdeadline.html" title="A time deadline in either relative-to-now or absolute (system clock) terms.">deadline</a>(stl11::chrono::seconds(0))); }</div> </div><!-- fragment --> </div> </div> @@ -1763,12 +1765,12 @@ For portability, you can only assume that sync()'s are write ordered for a singl </table> </div><div class="memdoc"> <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p> -<div class="fragment"><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  {</div> -<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#acbb752522c90f5e4596b8a4f07e2fa80" title="The gather buffer type used by this handle.">const_buffer_type</a> _reqs[1] = {{data, bytes}};</div> -<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  io_request<const_buffers_type> reqs(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd" title="The gather buffers type used by this handle.">const_buffers_type</a>(_reqs), offset);</div> -<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  BOOST_OUTCOME_TRY(v, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a8890b6a6046fb562f9f0ab943b79dfb4" title="Write data to the open handle.">write</a>(reqs, d));</div> -<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keywordflow">return</span> *v.data();</div> -<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  }</div> +<div class="fragment"><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  {</div> +<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#acbb752522c90f5e4596b8a4f07e2fa80" title="The gather buffer type used by this handle.">const_buffer_type</a> _reqs[1] = {{data, bytes}};</div> +<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  io_request<const_buffers_type> reqs(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd" title="The gather buffers type used by this handle.">const_buffers_type</a>(_reqs), offset);</div> +<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  BOOST_OUTCOME_TRY(v, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a8890b6a6046fb562f9f0ab943b79dfb4" title="Write data to the open handle.">write</a>(reqs, d));</div> +<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keywordflow">return</span> *v.data();</div> +<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  }</div> </div><!-- fragment --> </div> </div> diff --git a/classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.js b/classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.js index 1f4b8492..a2d03ab0 100644 --- a/classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.js +++ b/classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.js @@ -29,6 +29,8 @@ var classboost_1_1afio_1_1v2__xxx_1_1async__file__handle = [ "are_writes_durable", "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ae446e9a32283991f58f8f27dbed083d1", null ], [ "async_read", "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#afaf6132b6618d93866ad00598e1b7707", null ], [ "async_write", "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a79672341d97d3f934d6c90637bbeb40c", null ], + [ "barrier", "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a94e4f4f1c76498114751489d44a34b5c", null ], + [ "barrier", "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a13759dd906ab5564de0a381c3fe25726", null ], [ "clone", "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a146af690967dbe866f3ecf1ebd5358b0", null ], [ "clone", "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a396487cb0116b194fbb477a7ccbd26cb", null ], [ "close", "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ab317ddd32e1ba126c647b6a89541ad67", null ], @@ -67,8 +69,6 @@ var classboost_1_1afio_1_1v2__xxx_1_1async__file__handle = [ "swap", "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a9d551befa0fa25a7119c07abc3a7a0e0", null ], [ "swap", "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#aa6118e53c41add8d4112d9ebeddd9d14", null ], [ "swap", "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#adc26314bd23b9080ac3c4c2dd6bc5937", null ], - [ "sync", "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a160f3f14661044dc28a264683bfb20e6", null ], - [ "sync", "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a01027dfc7b8d85f2ba3b5a56ef053191", null ], [ "truncate", "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#afa870f2f9d173e10443a4f04727fe2bc", null ], [ "try_lock", "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#aab870fe5fa041af29e2d85a5c292077f", null ], [ "unique_id", "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a1268c592b21853e5c514a3d31222d981", null ], diff --git a/classboost_1_1afio_1_1v2__xxx_1_1file__handle-members.html b/classboost_1_1afio_1_1v2__xxx_1_1file__handle-members.html index eb51d9e9..1a504c8e 100644 --- a/classboost_1_1afio_1_1v2__xxx_1_1file__handle-members.html +++ b/classboost_1_1afio_1_1v2__xxx_1_1file__handle-members.html @@ -124,6 +124,8 @@ $(document).ready(function(){initNavTree('classboost_1_1afio_1_1v2__xxx_1_1file_ <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a70998344e2234961c5ad64491d042ff8">are_reads_from_cache</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a3e08545dd29f09a40ff8439ac774ae1e">are_safety_fsyncs_issued</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ae446e9a32283991f58f8f27dbed083d1">are_writes_durable</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> + <tr bgcolor="#f0f0f0"><td class="entry"><b>barrier</b>(io_request< const_buffers_type > reqs=io_request< const_buffers_type >(), bool wait_for_device=false, bool and_metadata=false, deadline d=deadline()) noexceptoverride (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a13759dd906ab5564de0a381c3fe25726">boost::afio::v2_xxx::io_handle::barrier</a>(io_request< const_buffers_type > reqs=io_request< const_buffers_type >(), bool wait_for_device=false, bool and_metadata=false, deadline d=deadline()) noexcept=0</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">pure virtual</span></td></tr> <tr bgcolor="#f0f0f0"><td class="entry"><b>buffer_type</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"></td></tr> <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>buffers_type</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"></td></tr> <tr bgcolor="#f0f0f0"><td class="entry"><b>caching</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"></td></tr> @@ -191,8 +193,6 @@ $(document).ready(function(){initNavTree('classboost_1_1afio_1_1v2__xxx_1_1file_ <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a428aa4b395deccca18db4322eb0abd39">st_ino</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aa6118e53c41add8d4112d9ebeddd9d14">swap</a>(file_handle &o) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#adc26314bd23b9080ac3c4c2dd6bc5937">boost::afio::v2_xxx::io_handle::swap</a>(handle &o) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>sync</b>(io_request< const_buffers_type > reqs=io_request< const_buffers_type >(), bool wait_for_device=false, bool and_metadata=false, deadline d=deadline()) noexceptoverride (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> - <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a01027dfc7b8d85f2ba3b5a56ef053191">boost::afio::v2_xxx::io_handle::sync</a>(io_request< const_buffers_type > reqs=io_request< const_buffers_type >(), bool wait_for_device=false, bool and_metadata=false, deadline d=deadline()) noexcept=0</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">pure virtual</span></td></tr> <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ae614d4ecdef1dd817056f9ada1e5111f">temp_file</a>(path_type name=path_type(), mode _mode=mode::write, creation _creation=creation::if_needed, caching _caching=caching::temporary, flag flags=flag::unlink_on_close) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr> <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a841ba6c013b21dba15bceb472c3cbecf">temp_inode</a>(path_type dirpath=fixme_temporary_files_directory(), mode _mode=mode::write, flag flags=flag::none) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr> <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#afa870f2f9d173e10443a4f04727fe2bc">truncate</a>(extent_type newsize) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">boost::afio::v2_xxx::file_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> diff --git a/classboost_1_1afio_1_1v2__xxx_1_1file__handle.html b/classboost_1_1afio_1_1v2__xxx_1_1file__handle.html index d5e9ccac..544798b1 100644 --- a/classboost_1_1afio_1_1v2__xxx_1_1file__handle.html +++ b/classboost_1_1afio_1_1v2__xxx_1_1file__handle.html @@ -233,10 +233,10 @@ virtual path_type </td><td class="memItemRight" valign="bottom"><a class="e virtual <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>< void > </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ab317ddd32e1ba126c647b6a89541ad67">close</a> () noexceptoverride</td></tr> <tr class="memdesc:ab317ddd32e1ba126c647b6a89541ad67"><td class="mdescLeft"> </td><td class="mdescRight">Immediately close the native handle type managed by this handle. <br/></td></tr> <tr class="separator:ab317ddd32e1ba126c647b6a89541ad67"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a160f3f14661044dc28a264683bfb20e6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a160f3f14661044dc28a264683bfb20e6"></a> +<tr class="memitem:a94e4f4f1c76498114751489d44a34b5c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a94e4f4f1c76498114751489d44a34b5c"></a> virtual <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html">io_result</a><br class="typebreak"/> -< const_buffers_type > </td><td class="memItemRight" valign="bottom"><b>sync</b> (<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< const_buffers_type > reqs=<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< const_buffers_type >(), bool wait_for_device=false, bool and_metadata=false, <a class="el" href="structdeadline.html">deadline</a> d=<a class="el" href="structdeadline.html">deadline</a>()) noexceptoverride</td></tr> -<tr class="separator:a160f3f14661044dc28a264683bfb20e6"><td class="memSeparator" colspan="2"> </td></tr> +< const_buffers_type > </td><td class="memItemRight" valign="bottom"><b>barrier</b> (<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< const_buffers_type > reqs=<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< const_buffers_type >(), bool wait_for_device=false, bool and_metadata=false, <a class="el" href="structdeadline.html">deadline</a> d=<a class="el" href="structdeadline.html">deadline</a>()) noexceptoverride</td></tr> +<tr class="separator:a94e4f4f1c76498114751489d44a34b5c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a396487cb0116b194fbb477a7ccbd26cb"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html">file_handle</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a396487cb0116b194fbb477a7ccbd26cb">clone</a> () const noexcept</td></tr> <tr class="separator:a396487cb0116b194fbb477a7ccbd26cb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab6547a4b98dbf613c6d58c4adb2c6f39"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>< path_type > </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ab6547a4b98dbf613c6d58c4adb2c6f39">relink</a> (path_type newpath) noexcept</td></tr> @@ -262,10 +262,10 @@ virtual <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__r <tr class="separator:a8890b6a6046fb562f9f0ab943b79dfb4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac1fb657631c5212401259bb35ebf16db"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>< const_buffer_type > </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ac1fb657631c5212401259bb35ebf16db">write</a> (extent_type offset, const char *data, size_type bytes, <a class="el" href="structdeadline.html">deadline</a> d=<a class="el" href="structdeadline.html">deadline</a>()) noexcept</td></tr> <tr class="separator:ac1fb657631c5212401259bb35ebf16db"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a01027dfc7b8d85f2ba3b5a56ef053191"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html">io_result</a><br class="typebreak"/> -< const_buffers_type > </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a01027dfc7b8d85f2ba3b5a56ef053191">sync</a> (<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< const_buffers_type > reqs=<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< const_buffers_type >(), bool wait_for_device=false, bool and_metadata=false, <a class="el" href="structdeadline.html">deadline</a> d=<a class="el" href="structdeadline.html">deadline</a>()) noexcept=0</td></tr> -<tr class="memdesc:a01027dfc7b8d85f2ba3b5a56ef053191"><td class="mdescLeft"> </td><td class="mdescRight">Issue a write reordering barrier for preceding writes such that they will all be issued to storage before any writes after the barrier. <a href="#a01027dfc7b8d85f2ba3b5a56ef053191">More...</a><br/></td></tr> -<tr class="separator:a01027dfc7b8d85f2ba3b5a56ef053191"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a13759dd906ab5564de0a381c3fe25726"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html">io_result</a><br class="typebreak"/> +< const_buffers_type > </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a13759dd906ab5564de0a381c3fe25726">barrier</a> (<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< const_buffers_type > reqs=<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< const_buffers_type >(), bool wait_for_device=false, bool and_metadata=false, <a class="el" href="structdeadline.html">deadline</a> d=<a class="el" href="structdeadline.html">deadline</a>()) noexcept=0</td></tr> +<tr class="memdesc:a13759dd906ab5564de0a381c3fe25726"><td class="mdescLeft"> </td><td class="mdescRight">Issue a write reordering barrier such that writes preceding the barrier will reach storage before writes after this barrier. <a href="#a13759dd906ab5564de0a381c3fe25726">More...</a><br/></td></tr> +<tr class="separator:a13759dd906ab5564de0a381c3fe25726"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aebd9c90a901e6364c94d466425db6e0f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html">extent_guard</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f">lock</a> (extent_type offset, extent_type bytes, bool exclusive=true, <a class="el" href="structdeadline.html">deadline</a> d=<a class="el" href="structdeadline.html">deadline</a>()) noexcept</td></tr> <tr class="memdesc:aebd9c90a901e6364c94d466425db6e0f"><td class="mdescLeft"> </td><td class="mdescRight">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes through the same semantics as the underlying OS call, including any POSIX insanity present on your platform. <a href="#aebd9c90a901e6364c94d466425db6e0f">More...</a><br/></td></tr> <tr class="separator:aebd9c90a901e6364c94d466425db6e0f"><td class="memSeparator" colspan="2"> </td></tr> @@ -413,6 +413,71 @@ flag </td><td class="memItemRight" valign="bottom"><b>_flags</b></td></tr> <div class="textblock"><p>A handle to a regular file or device, kept data layout compatible with async_file_handle. </p> <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000003">Todo:</a></b></dt><dd>file_handle needs to be split into a pathed_handle for the file and directory common parts </dd></dl> </div><h2 class="groupheader">Member Function Documentation</h2> +<a class="anchor" id="a13759dd906ab5564de0a381c3fe25726"></a> +<div class="memitem"> +<div class="memproto"> +<table class="mlabels"> + <tr> + <td class="mlabels-left"> + <table class="memname"> + <tr> + <td class="memname">virtual <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html">io_result</a><const_buffers_type> boost::afio::v2_xxx::io_handle::barrier </td> + <td>(</td> + <td class="paramtype"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> > </td> + <td class="paramname"><em>reqs</em> = <code><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> >()</code>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">bool </td> + <td class="paramname"><em>wait_for_device</em> = <code>false</code>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">bool </td> + <td class="paramname"><em>and_metadata</em> = <code>false</code>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="structdeadline.html">deadline</a> </td> + <td class="paramname"><em>d</em> = <code><a class="el" href="structdeadline.html">deadline</a>()</code> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> + </td> + <td class="mlabels-right"> +<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">pure virtual</span><span class="mlabel">noexcept</span><span class="mlabel">inherited</span></span> </td> + </tr> +</table> +</div><div class="memdoc"> + +<p>Issue a write reordering barrier such that writes preceding the barrier will reach storage before writes after this barrier. </p> +<dl class="section warning"><dt>Warning</dt><dd><b>Assume that this call is a no-op</b>. It is not reliably implemented in many common use cases, for example if your code is running inside a LXC container, or if the user has mounted the filing system with non-default options. Instead open the handle with <code>caching::reads</code> which means that all writes form a strict sequential order not completing until acknowledged by the storage device. Filing system can and do use different algorithms to give much better performance with <code>caching::reads</code>, some (e.g. ZFS) spectacularly better.</dd> +<dd> +Let me repeat again: consider this call to be a <b>hint</b> to poke the kernel with a stick to go start to do some work sooner rather than later. It may be ignored entirely.</dd> +<dd> +For portability, you can only assume that barriers write order for a single handle instance. You cannot assume that barriers write order across multiple handles to the same inode, or across processes.</dd></dl> +<dl class="section return"><dt>Returns</dt><dd>The buffers barriered, which may not be the buffers input. The size of each scatter-gather buffer is updated with the number of bytes of that buffer barriered. </dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">reqs</td><td>A scatter-gather and offset request for what range to barrier. May be ignored on some platforms which always write barrier the entire file. Supplying a default initialised reqs write barriers the entire file. </td></tr> + <tr><td class="paramname">wait_for_device</td><td>True if you want the call to wait until data reaches storage and that storage has acknowledged the data is physically written. Slow. </td></tr> + <tr><td class="paramname">and_metadata</td><td>True if you want the call to sync the metadata for retrieving the writes before the barrier after a sudden power loss event. Slow. </td></tr> + <tr><td class="paramname">d</td><td>An optional deadline by which the i/o must complete, else it is cancelled. Note function may return significantly after this deadline if the i/o takes long to cancel. </td></tr> + </table> + </dd> +</dl> +<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX fdatasync() or Windows NtFlushBuffersFileEx() can return. </dd></dl> +<dl class="section user"><dt>Memory Allocations</dt><dd>None. </dd></dl> + +</div> +</div> <a class="anchor" id="a396487cb0116b194fbb477a7ccbd26cb"></a> <div class="memitem"> <div class="memproto"> @@ -610,12 +675,12 @@ flag </td><td class="memItemRight" valign="bottom"><b>_flags</b></td></tr> </table> </div><div class="memdoc"> <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p> -<div class="fragment"><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  {</div> -<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <span class="keywordtype">size_t</span> bytes = 0;</div> -<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> &i : reqs.buffers)</div> -<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  bytes += i.second;</div> -<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  <span class="keywordflow">return</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(reqs.offset, bytes, <span class="keyword">false</span>, std::move(d));</div> -<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  }</div> +<div class="fragment"><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  {</div> +<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <span class="keywordtype">size_t</span> bytes = 0;</div> +<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> &i : reqs.buffers)</div> +<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  bytes += i.second;</div> +<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  <span class="keywordflow">return</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(reqs.offset, bytes, <span class="keyword">false</span>, std::move(d));</div> +<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  }</div> </div><!-- fragment --> </div> </div> @@ -651,12 +716,12 @@ flag </td><td class="memItemRight" valign="bottom"><b>_flags</b></td></tr> </table> </div><div class="memdoc"> <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p> -<div class="fragment"><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  {</div> -<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="keywordtype">size_t</span> bytes = 0;</div> -<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> &i : reqs.buffers)</div> -<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  bytes += i.second;</div> -<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <span class="keywordflow">return</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(reqs.offset, bytes, <span class="keyword">true</span>, std::move(d));</div> -<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  }</div> +<div class="fragment"><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  {</div> +<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  <span class="keywordtype">size_t</span> bytes = 0;</div> +<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> &i : reqs.buffers)</div> +<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  bytes += i.second;</div> +<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  <span class="keywordflow">return</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(reqs.offset, bytes, <span class="keyword">true</span>, std::move(d));</div> +<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  }</div> </div><!-- fragment --> </div> </div> @@ -705,22 +770,22 @@ flag </td><td class="memItemRight" valign="bottom"><b>_flags</b></td></tr> </div><div class="memdoc"> <p>Create a file handle creating a randomly named file on a path. The file is opened exclusively with <code>creation::only_if_not_exist</code> so it will never collide with nor overwrite any existing file. Note also that caching defaults to temporary which hints to the OS to only flush changes to physical storage as lately as possible.</p> <dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX open() or CreateFile() can return. </dd></dl> -<div class="fragment"><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  {</div> -<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">try</span></div> -<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  {</div> -<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  result<file_handle> ret;</div> -<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordflow">do</span></div> -<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  {</div> -<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keyword">auto</span> randomname = <a class="code" href="namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html#a051e8deb72941b3460811a1cf5f29915" title="Returns a cryptographically random string capable of being used as a filename. Essentially random_fil...">utils::random_string</a>(32);</div> -<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  randomname.append(<span class="stringliteral">".random"</span>);</div> -<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  ret = <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#af912595f8964b78186236a2cec1150a4">file</a>(dirpath / randomname, _mode, creation::only_if_not_exist, _caching, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#add27fa17cd6356b49a26a8b6dafb6a6d" title="The flags this handle was opened with.">flags</a>);</div> -<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">if</span>(!ret && ret.get_error().value() != EEXIST)</div> -<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">return</span> ret;</div> -<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  } <span class="keywordflow">while</span>(!ret);</div> -<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">return</span> ret;</div> -<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  }</div> -<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  BOOST_OUTCOME_CATCH_ALL_EXCEPTION_TO_RESULT</div> -<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  }</div> +<div class="fragment"><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  {</div> +<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">try</span></div> +<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  {</div> +<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  result<file_handle> ret;</div> +<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">do</span></div> +<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  {</div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keyword">auto</span> randomname = <a class="code" href="namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html#a051e8deb72941b3460811a1cf5f29915" title="Returns a cryptographically random string capable of being used as a filename. Essentially random_fil...">utils::random_string</a>(32);</div> +<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  randomname.append(<span class="stringliteral">".random"</span>);</div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  ret = <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#af912595f8964b78186236a2cec1150a4">file</a>(dirpath / randomname, _mode, creation::only_if_not_exist, _caching, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#add27fa17cd6356b49a26a8b6dafb6a6d" title="The flags this handle was opened with.">flags</a>);</div> +<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordflow">if</span>(!ret && ret.get_error().value() != EEXIST)</div> +<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordflow">return</span> ret;</div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  } <span class="keywordflow">while</span>(!ret);</div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordflow">return</span> ret;</div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  }</div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  BOOST_OUTCOME_CATCH_ALL_EXCEPTION_TO_RESULT</div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  }</div> </div><!-- fragment --> </div> </div> @@ -814,12 +879,12 @@ flag </td><td class="memItemRight" valign="bottom"><b>_flags</b></td></tr> </table> </div><div class="memdoc"> <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p> -<div class="fragment"><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  {</div> -<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a811166f987d82fcd3c85c6aa0b9b4f34" title="The scatter buffer type used by this handle.">buffer_type</a> _reqs[1] = {{data, bytes}};</div> -<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  io_request<buffers_type> reqs(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a9085d19b744d1330eafa51fffc49e104" title="The scatter buffers type used by this handle.">buffers_type</a>(_reqs), offset);</div> -<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  BOOST_OUTCOME_TRY(v, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2" title="Read data from the open handle.">read</a>(reqs, d));</div> -<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <span class="keywordflow">return</span> *v.data();</div> -<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  }</div> +<div class="fragment"><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  {</div> +<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a811166f987d82fcd3c85c6aa0b9b4f34" title="The scatter buffer type used by this handle.">buffer_type</a> _reqs[1] = {{data, bytes}};</div> +<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  io_request<buffers_type> reqs(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a9085d19b744d1330eafa51fffc49e104" title="The scatter buffers type used by this handle.">buffers_type</a>(_reqs), offset);</div> +<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  BOOST_OUTCOME_TRY(v, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2" title="Read data from the open handle.">read</a>(reqs, d));</div> +<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keywordflow">return</span> *v.data();</div> +<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  }</div> </div><!-- fragment --> </div> </div> @@ -912,69 +977,6 @@ flag </td><td class="memItemRight" valign="bottom"><b>_flags</b></td></tr> </div> </div> -<a class="anchor" id="a01027dfc7b8d85f2ba3b5a56ef053191"></a> -<div class="memitem"> -<div class="memproto"> -<table class="mlabels"> - <tr> - <td class="mlabels-left"> - <table class="memname"> - <tr> - <td class="memname">virtual <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html">io_result</a><const_buffers_type> boost::afio::v2_xxx::io_handle::sync </td> - <td>(</td> - <td class="paramtype"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> > </td> - <td class="paramname"><em>reqs</em> = <code><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> >()</code>, </td> - </tr> - <tr> - <td class="paramkey"></td> - <td></td> - <td class="paramtype">bool </td> - <td class="paramname"><em>wait_for_device</em> = <code>false</code>, </td> - </tr> - <tr> - <td class="paramkey"></td> - <td></td> - <td class="paramtype">bool </td> - <td class="paramname"><em>and_metadata</em> = <code>false</code>, </td> - </tr> - <tr> - <td class="paramkey"></td> - <td></td> - <td class="paramtype"><a class="el" href="structdeadline.html">deadline</a> </td> - <td class="paramname"><em>d</em> = <code><a class="el" href="structdeadline.html">deadline</a>()</code> </td> - </tr> - <tr> - <td></td> - <td>)</td> - <td></td><td></td> - </tr> - </table> - </td> - <td class="mlabels-right"> -<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">pure virtual</span><span class="mlabel">noexcept</span><span class="mlabel">inherited</span></span> </td> - </tr> -</table> -</div><div class="memdoc"> - -<p>Issue a write reordering barrier for preceding writes such that they will all be issued to storage before any writes after the barrier. </p> -<dl class="section warning"><dt>Warning</dt><dd>This call really is for people with deep understanding of individual filing systems, and unless you <b>really</b> know what you are doing, do NOT use this call as it is false security. Instead open the handle with <code>caching::reads</code>, that will get you true durable write ordering, plus the filing system can use different algorithms to give much better performance.</dd> -<dd> -For portability, you can only assume that sync()'s are write ordered for a single handle instance. You cannot assume that sync() write orders across multiple handles to the same inode, or across processes.</dd></dl> -<dl class="section return"><dt>Returns</dt><dd>The buffers synced, which may not be the buffers input. The size of each scatter-gather buffer is updated with the number of bytes of that buffer synced. </dd></dl> -<dl class="params"><dt>Parameters</dt><dd> - <table class="params"> - <tr><td class="paramname">reqs</td><td>A scatter-gather and offset request. May be ignored on some platforms. </td></tr> - <tr><td class="paramname">wait_for_device</td><td>True if you want the call to wait until data reaches storage and that storage has acknowledged the data is physically written. </td></tr> - <tr><td class="paramname">and_metadata</td><td>True if you want the call to sync the metadata for retrieving writes until now too. </td></tr> - <tr><td class="paramname">d</td><td>An optional deadline by which the i/o must complete, else it is cancelled. Note function may return significantly after this deadline if the i/o takes long to cancel. has confirmed that the data is written before returning. </td></tr> - </table> - </dd> -</dl> -<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX fdatasync() or Windows NtFlushBuffersFileEx() can return. </dd></dl> -<dl class="section user"><dt>Memory Allocations</dt><dd>None. </dd></dl> - -</div> -</div> <a class="anchor" id="ae614d4ecdef1dd817056f9ada1e5111f"></a> <div class="memitem"> <div class="memproto"> @@ -1027,9 +1029,9 @@ For portability, you can only assume that sync()'s are write ordered for a singl <p>Create a file handle creating the named file on some path which the OS declares to be suitable for temporary files. Most OSs are very lazy about flushing changes made to these temporary files. Note the default flags are to have the newly created file deleted on first handle close. Note also that an empty name is equivalent to calling <code>random_file(fixme_temporary_files_directory())</code> and the creation parameter is ignored.</p> <dl class="section note"><dt>Note</dt><dd>If the temporary file you are creating is not going to have its path sent to another process for usage, this is the WRONG function to use. Use <code>temp_inode()</code> instead, it is far more secure.</dd></dl> <dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX open() or CreateFile() can return. </dd></dl> -<div class="fragment"><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  {</div> -<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keywordflow">return</span> name.empty() ? <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a603b0827a9ae139b8f5806b1297fa5f0">random_file</a>(<a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ad7da7a1d3240d7574fc7c6ee5831b7ee" title="Returns a path to a directory reported by the operating system to be suitable for storing temporary f...">fixme_temporary_files_directory</a>(), _mode, _caching, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#add27fa17cd6356b49a26a8b6dafb6a6d" title="The flags this handle was opened with.">flags</a>) : <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#af912595f8964b78186236a2cec1150a4">file</a>(<a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ad7da7a1d3240d7574fc7c6ee5831b7ee" title="Returns a path to a directory reported by the operating system to be suitable for storing temporary f...">fixme_temporary_files_directory</a>() / name, _mode, _creation, _caching, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#add27fa17cd6356b49a26a8b6dafb6a6d" title="The flags this handle was opened with.">flags</a>);</div> -<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  }</div> +<div class="fragment"><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  {</div> +<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">return</span> name.empty() ? <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a603b0827a9ae139b8f5806b1297fa5f0">random_file</a>(<a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ad7da7a1d3240d7574fc7c6ee5831b7ee" title="Returns a path to a directory reported by the operating system to be suitable for storing temporary f...">fixme_temporary_files_directory</a>(), _mode, _caching, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#add27fa17cd6356b49a26a8b6dafb6a6d" title="The flags this handle was opened with.">flags</a>) : <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#af912595f8964b78186236a2cec1150a4">file</a>(<a class="code" href="namespaceboost_1_1afio_1_1v2__xxx.html#ad7da7a1d3240d7574fc7c6ee5831b7ee" title="Returns a path to a directory reported by the operating system to be suitable for storing temporary f...">fixme_temporary_files_directory</a>() / name, _mode, _creation, _caching, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#add27fa17cd6356b49a26a8b6dafb6a6d" title="The flags this handle was opened with.">flags</a>);</div> +<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  }</div> </div><!-- fragment --> </div> </div> @@ -1146,7 +1148,7 @@ For portability, you can only assume that sync()'s are write ordered for a singl </table> </div><div class="memdoc"> <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p> -<div class="fragment"><div class="line"><a name="l00596"></a><span class="lineno"> 596</span> { <span class="keywordflow">return</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(offset, bytes, exclusive, <a class="code" href="structdeadline.html" title="A time deadline in either relative-to-now or absolute (system clock) terms.">deadline</a>(stl11::chrono::seconds(0))); }</div> +<div class="fragment"><div class="line"><a name="l00607"></a><span class="lineno"> 607</span> { <span class="keywordflow">return</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(offset, bytes, exclusive, <a class="code" href="structdeadline.html" title="A time deadline in either relative-to-now or absolute (system clock) terms.">deadline</a>(stl11::chrono::seconds(0))); }</div> </div><!-- fragment --> </div> </div> @@ -1310,12 +1312,12 @@ For portability, you can only assume that sync()'s are write ordered for a singl </table> </div><div class="memdoc"> <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p> -<div class="fragment"><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  {</div> -<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#acbb752522c90f5e4596b8a4f07e2fa80" title="The gather buffer type used by this handle.">const_buffer_type</a> _reqs[1] = {{data, bytes}};</div> -<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  io_request<const_buffers_type> reqs(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd" title="The gather buffers type used by this handle.">const_buffers_type</a>(_reqs), offset);</div> -<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  BOOST_OUTCOME_TRY(v, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a8890b6a6046fb562f9f0ab943b79dfb4" title="Write data to the open handle.">write</a>(reqs, d));</div> -<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keywordflow">return</span> *v.data();</div> -<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  }</div> +<div class="fragment"><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  {</div> +<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#acbb752522c90f5e4596b8a4f07e2fa80" title="The gather buffer type used by this handle.">const_buffer_type</a> _reqs[1] = {{data, bytes}};</div> +<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  io_request<const_buffers_type> reqs(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd" title="The gather buffers type used by this handle.">const_buffers_type</a>(_reqs), offset);</div> +<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  BOOST_OUTCOME_TRY(v, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a8890b6a6046fb562f9f0ab943b79dfb4" title="Write data to the open handle.">write</a>(reqs, d));</div> +<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keywordflow">return</span> *v.data();</div> +<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  }</div> </div><!-- fragment --> </div> </div> diff --git a/classboost_1_1afio_1_1v2__xxx_1_1file__handle.js b/classboost_1_1afio_1_1v2__xxx_1_1file__handle.js index e81770b4..a2e24ff7 100644 --- a/classboost_1_1afio_1_1v2__xxx_1_1file__handle.js +++ b/classboost_1_1afio_1_1v2__xxx_1_1file__handle.js @@ -24,6 +24,8 @@ var classboost_1_1afio_1_1v2__xxx_1_1file__handle = [ "are_reads_from_cache", "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a70998344e2234961c5ad64491d042ff8", null ], [ "are_safety_fsyncs_issued", "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a3e08545dd29f09a40ff8439ac774ae1e", null ], [ "are_writes_durable", "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ae446e9a32283991f58f8f27dbed083d1", null ], + [ "barrier", "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a94e4f4f1c76498114751489d44a34b5c", null ], + [ "barrier", "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a13759dd906ab5564de0a381c3fe25726", null ], [ "clone", "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a396487cb0116b194fbb477a7ccbd26cb", null ], [ "close", "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ab317ddd32e1ba126c647b6a89541ad67", null ], [ "flags", "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#add27fa17cd6356b49a26a8b6dafb6a6d", null ], @@ -59,8 +61,6 @@ var classboost_1_1afio_1_1v2__xxx_1_1file__handle = [ "st_ino", "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a428aa4b395deccca18db4322eb0abd39", null ], [ "swap", "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aa6118e53c41add8d4112d9ebeddd9d14", null ], [ "swap", "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#adc26314bd23b9080ac3c4c2dd6bc5937", null ], - [ "sync", "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a160f3f14661044dc28a264683bfb20e6", null ], - [ "sync", "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a01027dfc7b8d85f2ba3b5a56ef053191", null ], [ "truncate", "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#afa870f2f9d173e10443a4f04727fe2bc", null ], [ "try_lock", "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aab870fe5fa041af29e2d85a5c292077f", null ], [ "unique_id", "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a1268c592b21853e5c514a3d31222d981", null ], diff --git a/classboost_1_1afio_1_1v2__xxx_1_1io__handle-members.html b/classboost_1_1afio_1_1v2__xxx_1_1io__handle-members.html index 54806e94..ca2d328e 100644 --- a/classboost_1_1afio_1_1v2__xxx_1_1io__handle-members.html +++ b/classboost_1_1afio_1_1v2__xxx_1_1io__handle-members.html @@ -119,57 +119,57 @@ $(document).ready(function(){initNavTree('classboost_1_1afio_1_1v2__xxx_1_1io__h <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a70998344e2234961c5ad64491d042ff8">are_reads_from_cache</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a3e08545dd29f09a40ff8439ac774ae1e">are_safety_fsyncs_issued</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ae446e9a32283991f58f8f27dbed083d1">are_writes_durable</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a811166f987d82fcd3c85c6aa0b9b4f34">buffer_type</a> typedef</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"></td></tr> - <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a9085d19b744d1330eafa51fffc49e104">buffers_type</a> typedef</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"></td></tr> - <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>caching</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"></td></tr> - <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a95d26fe35f85d81382d903224660084d">clone</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a651ff10099e7522df784507aca8b8f0f">close</a>() noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> - <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#acbb752522c90f5e4596b8a4f07e2fa80">const_buffer_type</a> typedef</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> typedef</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"></td></tr> - <tr bgcolor="#f0f0f0"><td class="entry"><b>creation</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"></td></tr> - <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>extent_type</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"></td></tr> - <tr bgcolor="#f0f0f0"><td class="entry"><b>flag</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#add27fa17cd6356b49a26a8b6dafb6a6d">flags</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#aa845780704a8508c658c2b878f574ba7">handle</a>()</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a4e9723c353eee4bcd629a7c9a01472f2">handle</a>(native_handle_type h, caching caching=caching::none, flag flags=flag::none)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a73ec71bef5c89cbaa517ce0997d649f2">handle</a>(const handle &)=delete</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a0dbf908498e5cbf54ee0fff752c0c490">handle</a>(handle &&o) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a4423c3eec1de559b945b3e98bcd7a815">io_handle</a>()=default</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#abdfb4dd68b3ad7532ad4485a4736cfac">io_handle</a>(native_handle_type h, caching caching=caching::none, flag flags=flag::none)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a291852173a487edea1a7d73244f89465">io_handle</a>(handle &&o) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab6f198784e9982f3656a9651463621e0">io_handle</a>(io_handle &&)=default</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"></td></tr> - <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#abef3375ff35a72bd780cbee0b600b26d">is_append_only</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a75d78e5591cafbc68e8ba4e2b2deffa9">is_directory</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ad6cbdfbe64d09ec03829144a137bc865">is_multiplexer</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a8d4b2f3b095a80e651c18143246ee4e9">is_overlapped</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a3460c3419d165c7d9e8aaee8db3c7f2c">is_process</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#af2d9387a79e320e2902880fee38b392a">is_readable</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81b36f2dcb205e049f3c3781c7973b6e">is_regular</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a75bedfc2b14073a20ac359edc29f9cc9">is_section</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a3c14ec910a3eac02b44688807c9b7511">is_seekable</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a6aa861f1403424bf5768d6dd25da402f">is_symlink</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a72da822cb2e7c406aaa40be0f44b16fa">is_valid</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ac847865f7370c00ca1e7d0b2ac8ee4e7">is_writable</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ad4ee22cfec00551e1f71ff23962280be">kernel_caching</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f">lock</a>(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> - <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ac73d1383516e0e139e3863b57731e4de">lock</a>(io_request< buffers_type > reqs, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a6de014bf9d16737f3b14b61d6eea413d">lock</a>(io_request< const_buffers_type > reqs, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr bgcolor="#f0f0f0"><td class="entry"><b>mode</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ae600069dc662d837c36f42802791c7f4">native_handle</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a25060e5cc0f4f9f64f23e9fce121303c">operator=</a>(io_handle &&)=default</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acda0caaacf4404bffc57508930ba52be">boost::afio::v2_xxx::handle::operator=</a>(const handle &o)=delete</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"></td></tr> - <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a2f953c305bc7e621dc4df4b73b4d20d0">boost::afio::v2_xxx::handle::operator=</a>(handle &&o) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a461355ae526806b338fd2eaadc564a43">path</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> - <tr bgcolor="#f0f0f0"><td class="entry"><b>path_type</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2">read</a>(io_request< buffers_type > reqs, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> - <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a4480a48b8e54cde62fd2cee4ceed3725">read</a>(extent_type offset, char *data, size_type bytes, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a59c9bc1338196095a028b2870dcfb61d">release</a>() noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> - <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a7d1fa70986dc1edea222e17fbabc6425">requires_aligned_io</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#adf964e787e0666fc5b7d94c2715ee6f5">set_append_only</a>(bool enable) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> - <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#aa8de6675205db68de70bf9075a6c649f">set_kernel_caching</a>(caching caching) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> - <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>size_type</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"></td></tr> - <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#adc26314bd23b9080ac3c4c2dd6bc5937">swap</a>(handle &o) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a01027dfc7b8d85f2ba3b5a56ef053191">sync</a>(io_request< const_buffers_type > reqs=io_request< const_buffers_type >(), bool wait_for_device=false, bool and_metadata=false, deadline d=deadline()) noexcept=0</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">pure virtual</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a13759dd906ab5564de0a381c3fe25726">barrier</a>(io_request< const_buffers_type > reqs=io_request< const_buffers_type >(), bool wait_for_device=false, bool and_metadata=false, deadline d=deadline()) noexcept=0</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">pure virtual</span></td></tr> + <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a811166f987d82fcd3c85c6aa0b9b4f34">buffer_type</a> typedef</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a9085d19b744d1330eafa51fffc49e104">buffers_type</a> typedef</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"></td></tr> + <tr bgcolor="#f0f0f0"><td class="entry"><b>caching</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a95d26fe35f85d81382d903224660084d">clone</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"></td></tr> + <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a651ff10099e7522df784507aca8b8f0f">close</a>() noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#acbb752522c90f5e4596b8a4f07e2fa80">const_buffer_type</a> typedef</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"></td></tr> + <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> typedef</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"></td></tr> + <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>creation</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"></td></tr> + <tr bgcolor="#f0f0f0"><td class="entry"><b>extent_type</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"></td></tr> + <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>flag</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"></td></tr> + <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#add27fa17cd6356b49a26a8b6dafb6a6d">flags</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#aa845780704a8508c658c2b878f574ba7">handle</a>()</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> + <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a4e9723c353eee4bcd629a7c9a01472f2">handle</a>(native_handle_type h, caching caching=caching::none, flag flags=flag::none)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a73ec71bef5c89cbaa517ce0997d649f2">handle</a>(const handle &)=delete</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"></td></tr> + <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a0dbf908498e5cbf54ee0fff752c0c490">handle</a>(handle &&o) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a4423c3eec1de559b945b3e98bcd7a815">io_handle</a>()=default</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"></td></tr> + <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#abdfb4dd68b3ad7532ad4485a4736cfac">io_handle</a>(native_handle_type h, caching caching=caching::none, flag flags=flag::none)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a291852173a487edea1a7d73244f89465">io_handle</a>(handle &&o) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr> + <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab6f198784e9982f3656a9651463621e0">io_handle</a>(io_handle &&)=default</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#abef3375ff35a72bd780cbee0b600b26d">is_append_only</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> + <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a75d78e5591cafbc68e8ba4e2b2deffa9">is_directory</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ad6cbdfbe64d09ec03829144a137bc865">is_multiplexer</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> + <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a8d4b2f3b095a80e651c18143246ee4e9">is_overlapped</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a3460c3419d165c7d9e8aaee8db3c7f2c">is_process</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> + <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#af2d9387a79e320e2902880fee38b392a">is_readable</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81b36f2dcb205e049f3c3781c7973b6e">is_regular</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> + <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a75bedfc2b14073a20ac359edc29f9cc9">is_section</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a3c14ec910a3eac02b44688807c9b7511">is_seekable</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> + <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a6aa861f1403424bf5768d6dd25da402f">is_symlink</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a72da822cb2e7c406aaa40be0f44b16fa">is_valid</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> + <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ac847865f7370c00ca1e7d0b2ac8ee4e7">is_writable</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ad4ee22cfec00551e1f71ff23962280be">kernel_caching</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> + <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f">lock</a>(extent_type offset, extent_type bytes, bool exclusive=true, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ac73d1383516e0e139e3863b57731e4de">lock</a>(io_request< buffers_type > reqs, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> + <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a6de014bf9d16737f3b14b61d6eea413d">lock</a>(io_request< const_buffers_type > reqs, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> + <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>mode</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"></td></tr> + <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ae600069dc662d837c36f42802791c7f4">native_handle</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a25060e5cc0f4f9f64f23e9fce121303c">operator=</a>(io_handle &&)=default</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"></td></tr> + <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acda0caaacf4404bffc57508930ba52be">boost::afio::v2_xxx::handle::operator=</a>(const handle &o)=delete</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a2f953c305bc7e621dc4df4b73b4d20d0">boost::afio::v2_xxx::handle::operator=</a>(handle &&o) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> + <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a461355ae526806b338fd2eaadc564a43">path</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> + <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>path_type</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"></td></tr> + <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2">read</a>(io_request< buffers_type > reqs, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a4480a48b8e54cde62fd2cee4ceed3725">read</a>(extent_type offset, char *data, size_type bytes, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> + <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a59c9bc1338196095a028b2870dcfb61d">release</a>() noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a7d1fa70986dc1edea222e17fbabc6425">requires_aligned_io</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> + <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#adf964e787e0666fc5b7d94c2715ee6f5">set_append_only</a>(bool enable) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#aa8de6675205db68de70bf9075a6c649f">set_kernel_caching</a>(caching caching) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> + <tr bgcolor="#f0f0f0"><td class="entry"><b>size_type</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#adc26314bd23b9080ac3c4c2dd6bc5937">swap</a>(handle &o) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aab870fe5fa041af29e2d85a5c292077f">try_lock</a>(extent_type offset, extent_type bytes, bool exclusive=true) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acb372c2075980a97874557859a62f5f7">unique_id</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ace66ef9d4b55ad11d02af26814069d94">unique_id_type</a> typedef</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"></td></tr> diff --git a/classboost_1_1afio_1_1v2__xxx_1_1io__handle.html b/classboost_1_1afio_1_1v2__xxx_1_1io__handle.html index 65b8e98c..0a13c1e6 100644 --- a/classboost_1_1afio_1_1v2__xxx_1_1io__handle.html +++ b/classboost_1_1afio_1_1v2__xxx_1_1io__handle.html @@ -223,10 +223,10 @@ constexpr </td><td class="memItemRight" valign="bottom"><a class="el" href= <tr class="separator:a8890b6a6046fb562f9f0ab943b79dfb4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac1fb657631c5212401259bb35ebf16db"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#acbb752522c90f5e4596b8a4f07e2fa80">const_buffer_type</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ac1fb657631c5212401259bb35ebf16db">write</a> (<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a617ab627aa596b325d7bfef5210a43f3">extent_type</a> offset, const char *data, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#aee8d98d7f979e312f5e18dfcebfc6870">size_type</a> bytes, <a class="el" href="structdeadline.html">deadline</a> d=<a class="el" href="structdeadline.html">deadline</a>()) noexcept</td></tr> <tr class="separator:ac1fb657631c5212401259bb35ebf16db"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a01027dfc7b8d85f2ba3b5a56ef053191"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html">io_result</a><br class="typebreak"/> -< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a01027dfc7b8d85f2ba3b5a56ef053191">sync</a> (<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> > reqs=<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> >(), bool wait_for_device=false, bool and_metadata=false, <a class="el" href="structdeadline.html">deadline</a> d=<a class="el" href="structdeadline.html">deadline</a>()) noexcept=0</td></tr> -<tr class="memdesc:a01027dfc7b8d85f2ba3b5a56ef053191"><td class="mdescLeft"> </td><td class="mdescRight">Issue a write reordering barrier for preceding writes such that they will all be issued to storage before any writes after the barrier. <a href="#a01027dfc7b8d85f2ba3b5a56ef053191">More...</a><br/></td></tr> -<tr class="separator:a01027dfc7b8d85f2ba3b5a56ef053191"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a13759dd906ab5564de0a381c3fe25726"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html">io_result</a><br class="typebreak"/> +< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a13759dd906ab5564de0a381c3fe25726">barrier</a> (<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> > reqs=<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> >(), bool wait_for_device=false, bool and_metadata=false, <a class="el" href="structdeadline.html">deadline</a> d=<a class="el" href="structdeadline.html">deadline</a>()) noexcept=0</td></tr> +<tr class="memdesc:a13759dd906ab5564de0a381c3fe25726"><td class="mdescLeft"> </td><td class="mdescRight">Issue a write reordering barrier such that writes preceding the barrier will reach storage before writes after this barrier. <a href="#a13759dd906ab5564de0a381c3fe25726">More...</a><br/></td></tr> +<tr class="separator:a13759dd906ab5564de0a381c3fe25726"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aebd9c90a901e6364c94d466425db6e0f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html">extent_guard</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f">lock</a> (<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a617ab627aa596b325d7bfef5210a43f3">extent_type</a> offset, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a617ab627aa596b325d7bfef5210a43f3">extent_type</a> bytes, bool exclusive=true, <a class="el" href="structdeadline.html">deadline</a> d=<a class="el" href="structdeadline.html">deadline</a>()) noexcept</td></tr> <tr class="memdesc:aebd9c90a901e6364c94d466425db6e0f"><td class="mdescLeft"> </td><td class="mdescRight">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes through the same semantics as the underlying OS call, including any POSIX insanity present on your platform. <a href="#aebd9c90a901e6364c94d466425db6e0f">More...</a><br/></td></tr> <tr class="separator:aebd9c90a901e6364c94d466425db6e0f"><td class="memSeparator" colspan="2"> </td></tr> @@ -357,6 +357,71 @@ flag </td><td class="memItemRight" valign="bottom"><b>_flags</b></td></tr> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>A handle to something capable of scatter-gather i/o. </p> </div><h2 class="groupheader">Member Function Documentation</h2> +<a class="anchor" id="a13759dd906ab5564de0a381c3fe25726"></a> +<div class="memitem"> +<div class="memproto"> +<table class="mlabels"> + <tr> + <td class="mlabels-left"> + <table class="memname"> + <tr> + <td class="memname">virtual <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html">io_result</a><<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a>> boost::afio::v2_xxx::io_handle::barrier </td> + <td>(</td> + <td class="paramtype"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> > </td> + <td class="paramname"><em>reqs</em> = <code><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> >()</code>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">bool </td> + <td class="paramname"><em>wait_for_device</em> = <code>false</code>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">bool </td> + <td class="paramname"><em>and_metadata</em> = <code>false</code>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="structdeadline.html">deadline</a> </td> + <td class="paramname"><em>d</em> = <code><a class="el" href="structdeadline.html">deadline</a>()</code> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> + </td> + <td class="mlabels-right"> +<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">pure virtual</span><span class="mlabel">noexcept</span></span> </td> + </tr> +</table> +</div><div class="memdoc"> + +<p>Issue a write reordering barrier such that writes preceding the barrier will reach storage before writes after this barrier. </p> +<dl class="section warning"><dt>Warning</dt><dd><b>Assume that this call is a no-op</b>. It is not reliably implemented in many common use cases, for example if your code is running inside a LXC container, or if the user has mounted the filing system with non-default options. Instead open the handle with <code>caching::reads</code> which means that all writes form a strict sequential order not completing until acknowledged by the storage device. Filing system can and do use different algorithms to give much better performance with <code>caching::reads</code>, some (e.g. ZFS) spectacularly better.</dd> +<dd> +Let me repeat again: consider this call to be a <b>hint</b> to poke the kernel with a stick to go start to do some work sooner rather than later. It may be ignored entirely.</dd> +<dd> +For portability, you can only assume that barriers write order for a single handle instance. You cannot assume that barriers write order across multiple handles to the same inode, or across processes.</dd></dl> +<dl class="section return"><dt>Returns</dt><dd>The buffers barriered, which may not be the buffers input. The size of each scatter-gather buffer is updated with the number of bytes of that buffer barriered. </dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">reqs</td><td>A scatter-gather and offset request for what range to barrier. May be ignored on some platforms which always write barrier the entire file. Supplying a default initialised reqs write barriers the entire file. </td></tr> + <tr><td class="paramname">wait_for_device</td><td>True if you want the call to wait until data reaches storage and that storage has acknowledged the data is physically written. Slow. </td></tr> + <tr><td class="paramname">and_metadata</td><td>True if you want the call to sync the metadata for retrieving the writes before the barrier after a sudden power loss event. Slow. </td></tr> + <tr><td class="paramname">d</td><td>An optional deadline by which the i/o must complete, else it is cancelled. Note function may return significantly after this deadline if the i/o takes long to cancel. </td></tr> + </table> + </dd> +</dl> +<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX fdatasync() or Windows NtFlushBuffersFileEx() can return. </dd></dl> +<dl class="section user"><dt>Memory Allocations</dt><dd>None. </dd></dl> + +</div> +</div> <a class="anchor" id="a95d26fe35f85d81382d903224660084d"></a> <div class="memitem"> <div class="memproto"> @@ -475,12 +540,12 @@ flag </td><td class="memItemRight" valign="bottom"><b>_flags</b></td></tr> </table> </div><div class="memdoc"> <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p> -<div class="fragment"><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  {</div> -<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <span class="keywordtype">size_t</span> bytes = 0;</div> -<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> &i : reqs.buffers)</div> -<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  bytes += i.second;</div> -<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  <span class="keywordflow">return</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(reqs.offset, bytes, <span class="keyword">false</span>, std::move(d));</div> -<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  }</div> +<div class="fragment"><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  {</div> +<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <span class="keywordtype">size_t</span> bytes = 0;</div> +<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> &i : reqs.buffers)</div> +<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  bytes += i.second;</div> +<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  <span class="keywordflow">return</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(reqs.offset, bytes, <span class="keyword">false</span>, std::move(d));</div> +<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  }</div> </div><!-- fragment --> </div> </div> @@ -516,12 +581,12 @@ flag </td><td class="memItemRight" valign="bottom"><b>_flags</b></td></tr> </table> </div><div class="memdoc"> <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p> -<div class="fragment"><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  {</div> -<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="keywordtype">size_t</span> bytes = 0;</div> -<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> &i : reqs.buffers)</div> -<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  bytes += i.second;</div> -<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <span class="keywordflow">return</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(reqs.offset, bytes, <span class="keyword">true</span>, std::move(d));</div> -<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  }</div> +<div class="fragment"><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  {</div> +<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  <span class="keywordtype">size_t</span> bytes = 0;</div> +<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> &i : reqs.buffers)</div> +<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  bytes += i.second;</div> +<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  <span class="keywordflow">return</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(reqs.offset, bytes, <span class="keyword">true</span>, std::move(d));</div> +<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  }</div> </div><!-- fragment --> </div> </div> @@ -615,12 +680,12 @@ flag </td><td class="memItemRight" valign="bottom"><b>_flags</b></td></tr> </table> </div><div class="memdoc"> <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p> -<div class="fragment"><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  {</div> -<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a811166f987d82fcd3c85c6aa0b9b4f34" title="The scatter buffer type used by this handle.">buffer_type</a> _reqs[1] = {{data, bytes}};</div> -<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  io_request<buffers_type> reqs(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a9085d19b744d1330eafa51fffc49e104" title="The scatter buffers type used by this handle.">buffers_type</a>(_reqs), offset);</div> -<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  BOOST_OUTCOME_TRY(v, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2" title="Read data from the open handle.">read</a>(reqs, d));</div> -<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <span class="keywordflow">return</span> *v.data();</div> -<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  }</div> +<div class="fragment"><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  {</div> +<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a811166f987d82fcd3c85c6aa0b9b4f34" title="The scatter buffer type used by this handle.">buffer_type</a> _reqs[1] = {{data, bytes}};</div> +<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  io_request<buffers_type> reqs(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a9085d19b744d1330eafa51fffc49e104" title="The scatter buffers type used by this handle.">buffers_type</a>(_reqs), offset);</div> +<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  BOOST_OUTCOME_TRY(v, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2" title="Read data from the open handle.">read</a>(reqs, d));</div> +<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keywordflow">return</span> *v.data();</div> +<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  }</div> </div><!-- fragment --> </div> </div> @@ -680,69 +745,6 @@ flag </td><td class="memItemRight" valign="bottom"><b>_flags</b></td></tr> </div> </div> -<a class="anchor" id="a01027dfc7b8d85f2ba3b5a56ef053191"></a> -<div class="memitem"> -<div class="memproto"> -<table class="mlabels"> - <tr> - <td class="mlabels-left"> - <table class="memname"> - <tr> - <td class="memname">virtual <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html">io_result</a><<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a>> boost::afio::v2_xxx::io_handle::sync </td> - <td>(</td> - <td class="paramtype"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> > </td> - <td class="paramname"><em>reqs</em> = <code><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> >()</code>, </td> - </tr> - <tr> - <td class="paramkey"></td> - <td></td> - <td class="paramtype">bool </td> - <td class="paramname"><em>wait_for_device</em> = <code>false</code>, </td> - </tr> - <tr> - <td class="paramkey"></td> - <td></td> - <td class="paramtype">bool </td> - <td class="paramname"><em>and_metadata</em> = <code>false</code>, </td> - </tr> - <tr> - <td class="paramkey"></td> - <td></td> - <td class="paramtype"><a class="el" href="structdeadline.html">deadline</a> </td> - <td class="paramname"><em>d</em> = <code><a class="el" href="structdeadline.html">deadline</a>()</code> </td> - </tr> - <tr> - <td></td> - <td>)</td> - <td></td><td></td> - </tr> - </table> - </td> - <td class="mlabels-right"> -<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">pure virtual</span><span class="mlabel">noexcept</span></span> </td> - </tr> -</table> -</div><div class="memdoc"> - -<p>Issue a write reordering barrier for preceding writes such that they will all be issued to storage before any writes after the barrier. </p> -<dl class="section warning"><dt>Warning</dt><dd>This call really is for people with deep understanding of individual filing systems, and unless you <b>really</b> know what you are doing, do NOT use this call as it is false security. Instead open the handle with <code>caching::reads</code>, that will get you true durable write ordering, plus the filing system can use different algorithms to give much better performance.</dd> -<dd> -For portability, you can only assume that sync()'s are write ordered for a single handle instance. You cannot assume that sync() write orders across multiple handles to the same inode, or across processes.</dd></dl> -<dl class="section return"><dt>Returns</dt><dd>The buffers synced, which may not be the buffers input. The size of each scatter-gather buffer is updated with the number of bytes of that buffer synced. </dd></dl> -<dl class="params"><dt>Parameters</dt><dd> - <table class="params"> - <tr><td class="paramname">reqs</td><td>A scatter-gather and offset request. May be ignored on some platforms. </td></tr> - <tr><td class="paramname">wait_for_device</td><td>True if you want the call to wait until data reaches storage and that storage has acknowledged the data is physically written. </td></tr> - <tr><td class="paramname">and_metadata</td><td>True if you want the call to sync the metadata for retrieving writes until now too. </td></tr> - <tr><td class="paramname">d</td><td>An optional deadline by which the i/o must complete, else it is cancelled. Note function may return significantly after this deadline if the i/o takes long to cancel. has confirmed that the data is written before returning. </td></tr> - </table> - </dd> -</dl> -<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX fdatasync() or Windows NtFlushBuffersFileEx() can return. </dd></dl> -<dl class="section user"><dt>Memory Allocations</dt><dd>None. </dd></dl> - -</div> -</div> <a class="anchor" id="aab870fe5fa041af29e2d85a5c292077f"></a> <div class="memitem"> <div class="memproto"> @@ -781,7 +783,7 @@ For portability, you can only assume that sync()'s are write ordered for a singl </table> </div><div class="memdoc"> <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p> -<div class="fragment"><div class="line"><a name="l00596"></a><span class="lineno"> 596</span> { <span class="keywordflow">return</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(offset, bytes, exclusive, <a class="code" href="structdeadline.html" title="A time deadline in either relative-to-now or absolute (system clock) terms.">deadline</a>(stl11::chrono::seconds(0))); }</div> +<div class="fragment"><div class="line"><a name="l00607"></a><span class="lineno"> 607</span> { <span class="keywordflow">return</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(offset, bytes, exclusive, <a class="code" href="structdeadline.html" title="A time deadline in either relative-to-now or absolute (system clock) terms.">deadline</a>(stl11::chrono::seconds(0))); }</div> </div><!-- fragment --> </div> </div> @@ -920,12 +922,12 @@ For portability, you can only assume that sync()'s are write ordered for a singl </table> </div><div class="memdoc"> <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p> -<div class="fragment"><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  {</div> -<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#acbb752522c90f5e4596b8a4f07e2fa80" title="The gather buffer type used by this handle.">const_buffer_type</a> _reqs[1] = {{data, bytes}};</div> -<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  io_request<const_buffers_type> reqs(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd" title="The gather buffers type used by this handle.">const_buffers_type</a>(_reqs), offset);</div> -<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  BOOST_OUTCOME_TRY(v, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a8890b6a6046fb562f9f0ab943b79dfb4" title="Write data to the open handle.">write</a>(reqs, d));</div> -<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keywordflow">return</span> *v.data();</div> -<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  }</div> +<div class="fragment"><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  {</div> +<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#acbb752522c90f5e4596b8a4f07e2fa80" title="The gather buffer type used by this handle.">const_buffer_type</a> _reqs[1] = {{data, bytes}};</div> +<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  io_request<const_buffers_type> reqs(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd" title="The gather buffers type used by this handle.">const_buffers_type</a>(_reqs), offset);</div> +<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  BOOST_OUTCOME_TRY(v, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a8890b6a6046fb562f9f0ab943b79dfb4" title="Write data to the open handle.">write</a>(reqs, d));</div> +<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keywordflow">return</span> *v.data();</div> +<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  }</div> </div><!-- fragment --> </div> </div> diff --git a/classboost_1_1afio_1_1v2__xxx_1_1io__handle.js b/classboost_1_1afio_1_1v2__xxx_1_1io__handle.js index 61c00eb7..779ef95a 100644 --- a/classboost_1_1afio_1_1v2__xxx_1_1io__handle.js +++ b/classboost_1_1afio_1_1v2__xxx_1_1io__handle.js @@ -22,6 +22,7 @@ var classboost_1_1afio_1_1v2__xxx_1_1io__handle = [ "are_reads_from_cache", "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a70998344e2234961c5ad64491d042ff8", null ], [ "are_safety_fsyncs_issued", "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a3e08545dd29f09a40ff8439ac774ae1e", null ], [ "are_writes_durable", "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ae446e9a32283991f58f8f27dbed083d1", null ], + [ "barrier", "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a13759dd906ab5564de0a381c3fe25726", null ], [ "clone", "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a95d26fe35f85d81382d903224660084d", null ], [ "close", "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a651ff10099e7522df784507aca8b8f0f", null ], [ "flags", "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#add27fa17cd6356b49a26a8b6dafb6a6d", null ], @@ -51,7 +52,6 @@ var classboost_1_1afio_1_1v2__xxx_1_1io__handle = [ "set_append_only", "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#adf964e787e0666fc5b7d94c2715ee6f5", null ], [ "set_kernel_caching", "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aa8de6675205db68de70bf9075a6c649f", null ], [ "swap", "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#adc26314bd23b9080ac3c4c2dd6bc5937", null ], - [ "sync", "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a01027dfc7b8d85f2ba3b5a56ef053191", null ], [ "try_lock", "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aab870fe5fa041af29e2d85a5c292077f", null ], [ "unique_id", "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#acb372c2075980a97874557859a62f5f7", null ], [ "unlock", "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a0d043e29e065db9618f6df2e43cc1d42", null ], diff --git a/classboost_1_1afio_1_1v2__xxx_1_1map__handle-members.html b/classboost_1_1afio_1_1v2__xxx_1_1map__handle-members.html index 0298b272..470b66db 100644 --- a/classboost_1_1afio_1_1v2__xxx_1_1map__handle-members.html +++ b/classboost_1_1afio_1_1v2__xxx_1_1map__handle-members.html @@ -124,11 +124,13 @@ $(document).ready(function(){initNavTree('classboost_1_1afio_1_1v2__xxx_1_1map__ <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a70998344e2234961c5ad64491d042ff8">are_reads_from_cache</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a3e08545dd29f09a40ff8439ac774ae1e">are_safety_fsyncs_issued</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ae446e9a32283991f58f8f27dbed083d1">are_writes_durable</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> + <tr bgcolor="#f0f0f0"><td class="entry"><b>barrier</b>(io_request< const_buffers_type > reqs=io_request< const_buffers_type >(), bool wait_for_device=false, bool and_metadata=false, deadline d=deadline()) noexceptoverride (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a13759dd906ab5564de0a381c3fe25726">boost::afio::v2_xxx::io_handle::barrier</a>(io_request< const_buffers_type > reqs=io_request< const_buffers_type >(), bool wait_for_device=false, bool and_metadata=false, deadline d=deadline()) noexcept=0</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">pure virtual</span></td></tr> <tr bgcolor="#f0f0f0"><td class="entry"><b>buffer_type</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"></td></tr> <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>buffers_type</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"></td></tr> <tr bgcolor="#f0f0f0"><td class="entry"><b>caching</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a95d26fe35f85d81382d903224660084d">clone</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"></td></tr> - <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a6a942f41e85fb2e65e6376dc2e348497">close</a>() noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> + <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a973be6818c829b35c10441885b965a27">close</a>() noexceptoverride</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#aefeb5e82a3073b18f50b3047c89752ce">commit</a>(buffer_type region, section_handle::flag _flag=section_handle::flag::read|section_handle::flag::write) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"></td></tr> <tr bgcolor="#f0f0f0"><td class="entry"><b>const_buffer_type</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"></td></tr> <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>const_buffers_type</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"></td></tr> @@ -166,8 +168,8 @@ $(document).ready(function(){initNavTree('classboost_1_1afio_1_1v2__xxx_1_1map__ <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ac73d1383516e0e139e3863b57731e4de">lock</a>(io_request< buffers_type > reqs, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a6de014bf9d16737f3b14b61d6eea413d">lock</a>(io_request< const_buffers_type > reqs, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a6f0fc242efb1e28078aa13812335df3b">map</a>(section_handle &section, size_type bytes=0, extent_type offset=0, section_handle::flag _flag=section_handle::flag::read|section_handle::flag::write) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr> - <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a2bfe92df14ea41912f362558adcf066c">map_handle</a>()</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ae00a766df04a5d546cfa7c5432eea14a">map_handle</a>(section_handle *section)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr> + <tr bgcolor="#f0f0f0"><td class="entry"><b>map_handle</b>(section_handle *section) (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span><span class="mlabel">protected</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a2bfe92df14ea41912f362558adcf066c">map_handle</a>()</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a856c6f55f486070b67e210065000454c">map_handle</a>(map_handle &&o) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>mode</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"></td></tr> <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ae600069dc662d837c36f42802791c7f4">native_handle</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> @@ -180,10 +182,10 @@ $(document).ready(function(){initNavTree('classboost_1_1afio_1_1v2__xxx_1_1map__ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>path_type</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"></td></tr> <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a7b7036b13db0a4e7ac90193afd22cca9">prefetch</a>(span< buffer_type > regions) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">static</span></td></tr> <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a0635f9dddc90cd38bc7cc13bef8e0661">prefetch</a>(buffer_type region) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr> - <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a5b832e5045ae54db8561133763837a47">read</a>(io_request< buffers_type > reqs, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> + <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a25780704d766521da460d33b72cec76e">read</a>(io_request< buffers_type > reqs, deadline d=deadline()) noexceptoverride</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2">boost::afio::v2_xxx::io_handle::read</a>(io_request< buffers_type > reqs, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a4480a48b8e54cde62fd2cee4ceed3725">boost::afio::v2_xxx::io_handle::read</a>(extent_type offset, char *data, size_type bytes, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ad191467425f5966dc4a42f365bf13dc7">release</a>() noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a172fb6584e4e7ed53e5487604027a824">release</a>() noexceptoverride</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a7d1fa70986dc1edea222e17fbabc6425">requires_aligned_io</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a89f5587e480916c3d27428ea39a6c768">section</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#adf964e787e0666fc5b7d94c2715ee6f5">set_append_only</a>(bool enable) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> @@ -191,13 +193,11 @@ $(document).ready(function(){initNavTree('classboost_1_1afio_1_1v2__xxx_1_1map__ <tr bgcolor="#f0f0f0"><td class="entry"><b>size_type</b> typedef (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a740ebf7b850bfa5e5484e5e54341ff1f">swap</a>(map_handle &o) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#adc26314bd23b9080ac3c4c2dd6bc5937">boost::afio::v2_xxx::io_handle::swap</a>(handle &o) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> - <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>sync</b>(io_request< const_buffers_type > reqs=io_request< const_buffers_type >(), bool wait_for_device=false, bool and_metadata=false, deadline d=deadline()) noexceptoverride (defined in <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a>)</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> - <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a01027dfc7b8d85f2ba3b5a56ef053191">boost::afio::v2_xxx::io_handle::sync</a>(io_request< const_buffers_type > reqs=io_request< const_buffers_type >(), bool wait_for_device=false, bool and_metadata=false, deadline d=deadline()) noexcept=0</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">pure virtual</span></td></tr> <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aab870fe5fa041af29e2d85a5c292077f">try_lock</a>(extent_type offset, extent_type bytes, bool exclusive=true) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acb372c2075980a97874557859a62f5f7">unique_id</a>() const noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#ace66ef9d4b55ad11d02af26814069d94">unique_id_type</a> typedef</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html">boost::afio::v2_xxx::handle</a></td><td class="entry"></td></tr> <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a0d043e29e065db9618f6df2e43cc1d42">unlock</a>(extent_type offset, extent_type bytes) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ad6157050182facd9bb5c545b8fe487e6">write</a>(io_request< const_buffers_type > reqs, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ab11e484d01157158aaca7160bb1720ce">write</a>(io_request< const_buffers_type > reqs, deadline d=deadline()) noexceptoverride</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a8890b6a6046fb562f9f0ab943b79dfb4">boost::afio::v2_xxx::io_handle::write</a>(io_request< const_buffers_type > reqs, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> <tr class="even"><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ac1fb657631c5212401259bb35ebf16db">boost::afio::v2_xxx::io_handle::write</a>(extent_type offset, const char *data, size_type bytes, deadline d=deadline()) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html">boost::afio::v2_xxx::io_handle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> <tr><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a03ca3f1cf96bae5be137227e64c1e78b">zero</a>(buffer_type region) noexcept</td><td class="entry"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">boost::afio::v2_xxx::map_handle</a></td><td class="entry"></td></tr> diff --git a/classboost_1_1afio_1_1v2__xxx_1_1map__handle.html b/classboost_1_1afio_1_1v2__xxx_1_1map__handle.html index bf3d9597..426724b4 100644 --- a/classboost_1_1afio_1_1v2__xxx_1_1map__handle.html +++ b/classboost_1_1afio_1_1v2__xxx_1_1map__handle.html @@ -110,6 +110,7 @@ $(document).ready(function(){initNavTree('classboost_1_1afio_1_1v2__xxx_1_1map__ <a href="#pub-types">Public Types</a> | <a href="#pub-methods">Public Member Functions</a> | <a href="#pub-static-methods">Static Public Member Functions</a> | +<a href="#pro-methods">Protected Member Functions</a> | <a href="#pro-attribs">Protected Attributes</a> | <a href="classboost_1_1afio_1_1v2__xxx_1_1map__handle-members.html">List of all members</a> </div> <div class="headertitle"> @@ -186,10 +187,6 @@ Public Member Functions</h2></td></tr>  </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a2bfe92df14ea41912f362558adcf066c">map_handle</a> ()</td></tr> <tr class="memdesc:a2bfe92df14ea41912f362558adcf066c"><td class="mdescLeft"> </td><td class="mdescRight">Default constructor. <br/></td></tr> <tr class="separator:a2bfe92df14ea41912f362558adcf066c"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:ae00a766df04a5d546cfa7c5432eea14a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae00a766df04a5d546cfa7c5432eea14a"></a> - </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ae00a766df04a5d546cfa7c5432eea14a">map_handle</a> (<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1section__handle.html">section_handle</a> *<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a89f5587e480916c3d27428ea39a6c768">section</a>)</td></tr> -<tr class="memdesc:ae00a766df04a5d546cfa7c5432eea14a"><td class="mdescLeft"> </td><td class="mdescRight">Construct from these parameters. <br/></td></tr> -<tr class="separator:ae00a766df04a5d546cfa7c5432eea14a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a856c6f55f486070b67e210065000454c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a856c6f55f486070b67e210065000454c"></a>  </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a856c6f55f486070b67e210065000454c">map_handle</a> (<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">map_handle</a> &&o) noexcept</td></tr> <tr class="memdesc:a856c6f55f486070b67e210065000454c"><td class="mdescLeft"> </td><td class="mdescRight">Implicit move construction of map_handle permitted. <br/></td></tr> @@ -202,18 +199,18 @@ Public Member Functions</h2></td></tr> void </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a740ebf7b850bfa5e5484e5e54341ff1f">swap</a> (<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html">map_handle</a> &o) noexcept</td></tr> <tr class="memdesc:a740ebf7b850bfa5e5484e5e54341ff1f"><td class="mdescLeft"> </td><td class="mdescRight">Swap with another instance. <br/></td></tr> <tr class="separator:a740ebf7b850bfa5e5484e5e54341ff1f"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a6a942f41e85fb2e65e6376dc2e348497"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6a942f41e85fb2e65e6376dc2e348497"></a> -virtual <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>< void > </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a6a942f41e85fb2e65e6376dc2e348497">close</a> () noexcept</td></tr> -<tr class="memdesc:a6a942f41e85fb2e65e6376dc2e348497"><td class="mdescLeft"> </td><td class="mdescRight">Unmap the mapped view. <br/></td></tr> -<tr class="separator:a6a942f41e85fb2e65e6376dc2e348497"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:ad191467425f5966dc4a42f365bf13dc7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad191467425f5966dc4a42f365bf13dc7"></a> -virtual <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html">native_handle_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ad191467425f5966dc4a42f365bf13dc7">release</a> () noexcept</td></tr> -<tr class="memdesc:ad191467425f5966dc4a42f365bf13dc7"><td class="mdescLeft"> </td><td class="mdescRight">Releases the mapped view, but does NOT release the native handle. <br/></td></tr> -<tr class="separator:ad191467425f5966dc4a42f365bf13dc7"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a5d37d5ce48ecb9c77d16ec5c0b76a10c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5d37d5ce48ecb9c77d16ec5c0b76a10c"></a> +<tr class="memitem:a973be6818c829b35c10441885b965a27"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a973be6818c829b35c10441885b965a27"></a> +virtual <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>< void > </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a973be6818c829b35c10441885b965a27">close</a> () noexceptoverride</td></tr> +<tr class="memdesc:a973be6818c829b35c10441885b965a27"><td class="mdescLeft"> </td><td class="mdescRight">Unmap the mapped view. <br/></td></tr> +<tr class="separator:a973be6818c829b35c10441885b965a27"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a172fb6584e4e7ed53e5487604027a824"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a172fb6584e4e7ed53e5487604027a824"></a> +virtual <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html">native_handle_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a172fb6584e4e7ed53e5487604027a824">release</a> () noexceptoverride</td></tr> +<tr class="memdesc:a172fb6584e4e7ed53e5487604027a824"><td class="mdescLeft"> </td><td class="mdescRight">Releases the mapped view, but does NOT release the native handle. <br/></td></tr> +<tr class="separator:a172fb6584e4e7ed53e5487604027a824"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ab73f13fe2628fff2cad7d2f559b08135"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab73f13fe2628fff2cad7d2f559b08135"></a> virtual <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html">io_result</a><br class="typebreak"/> -< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> > </td><td class="memItemRight" valign="bottom"><b>sync</b> (<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> > reqs=<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> >(), bool wait_for_device=false, bool and_metadata=false, <a class="el" href="structdeadline.html">deadline</a> d=<a class="el" href="structdeadline.html">deadline</a>()) noexceptoverride</td></tr> -<tr class="separator:a5d37d5ce48ecb9c77d16ec5c0b76a10c"><td class="memSeparator" colspan="2"> </td></tr> +< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> > </td><td class="memItemRight" valign="bottom"><b>barrier</b> (<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> > reqs=<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> >(), bool wait_for_device=false, bool and_metadata=false, <a class="el" href="structdeadline.html">deadline</a> d=<a class="el" href="structdeadline.html">deadline</a>()) noexceptoverride</td></tr> +<tr class="separator:ab73f13fe2628fff2cad7d2f559b08135"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a89f5587e480916c3d27428ea39a6c768"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a89f5587e480916c3d27428ea39a6c768"></a> <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1section__handle.html">section_handle</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a89f5587e480916c3d27428ea39a6c768">section</a> () const noexcept</td></tr> <tr class="memdesc:a89f5587e480916c3d27428ea39a6c768"><td class="mdescLeft"> </td><td class="mdescRight">The memory section this handle is using. <br/></td></tr> @@ -240,13 +237,13 @@ char * </td><td class="memItemRight" valign="bottom"><a class="el" href="cl <tr class="separator:a3cb9350601a177da333304ef5930cbab"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a03ca3f1cf96bae5be137227e64c1e78b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>< void > </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a03ca3f1cf96bae5be137227e64c1e78b">zero</a> (<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a811166f987d82fcd3c85c6aa0b9b4f34">buffer_type</a> region) noexcept</td></tr> <tr class="separator:a03ca3f1cf96bae5be137227e64c1e78b"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a5b832e5045ae54db8561133763837a47"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a9085d19b744d1330eafa51fffc49e104">buffers_type</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a5b832e5045ae54db8561133763837a47">read</a> (<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a9085d19b744d1330eafa51fffc49e104">buffers_type</a> > reqs, <a class="el" href="structdeadline.html">deadline</a> d=<a class="el" href="structdeadline.html">deadline</a>()) noexcept</td></tr> -<tr class="memdesc:a5b832e5045ae54db8561133763837a47"><td class="mdescLeft"> </td><td class="mdescRight">Read data from the mapped view. <a href="#a5b832e5045ae54db8561133763837a47">More...</a><br/></td></tr> -<tr class="separator:a5b832e5045ae54db8561133763837a47"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:ad6157050182facd9bb5c545b8fe487e6"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html">io_result</a><br class="typebreak"/> -< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ad6157050182facd9bb5c545b8fe487e6">write</a> (<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> > reqs, <a class="el" href="structdeadline.html">deadline</a> d=<a class="el" href="structdeadline.html">deadline</a>()) noexcept</td></tr> -<tr class="memdesc:ad6157050182facd9bb5c545b8fe487e6"><td class="mdescLeft"> </td><td class="mdescRight">Write data to the mapped view. <a href="#ad6157050182facd9bb5c545b8fe487e6">More...</a><br/></td></tr> -<tr class="separator:ad6157050182facd9bb5c545b8fe487e6"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a25780704d766521da460d33b72cec76e"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a9085d19b744d1330eafa51fffc49e104">buffers_type</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a25780704d766521da460d33b72cec76e">read</a> (<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a9085d19b744d1330eafa51fffc49e104">buffers_type</a> > reqs, <a class="el" href="structdeadline.html">deadline</a> d=<a class="el" href="structdeadline.html">deadline</a>()) noexceptoverride</td></tr> +<tr class="memdesc:a25780704d766521da460d33b72cec76e"><td class="mdescLeft"> </td><td class="mdescRight">Read data from the mapped view. <a href="#a25780704d766521da460d33b72cec76e">More...</a><br/></td></tr> +<tr class="separator:a25780704d766521da460d33b72cec76e"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ab11e484d01157158aaca7160bb1720ce"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html">io_result</a><br class="typebreak"/> +< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ab11e484d01157158aaca7160bb1720ce">write</a> (<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> > reqs, <a class="el" href="structdeadline.html">deadline</a> d=<a class="el" href="structdeadline.html">deadline</a>()) noexceptoverride</td></tr> +<tr class="memdesc:ab11e484d01157158aaca7160bb1720ce"><td class="mdescLeft"> </td><td class="mdescRight">Write data to the mapped view. <a href="#ab11e484d01157158aaca7160bb1720ce">More...</a><br/></td></tr> +<tr class="separator:ab11e484d01157158aaca7160bb1720ce"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab371d8427aeb4bd0ca5f8a39a98ea5a2"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a9085d19b744d1330eafa51fffc49e104">buffers_type</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2">read</a> (<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a9085d19b744d1330eafa51fffc49e104">buffers_type</a> > reqs, <a class="el" href="structdeadline.html">deadline</a> d=<a class="el" href="structdeadline.html">deadline</a>()) noexcept</td></tr> <tr class="memdesc:ab371d8427aeb4bd0ca5f8a39a98ea5a2"><td class="mdescLeft"> </td><td class="mdescRight">Read data from the open handle. <a href="#ab371d8427aeb4bd0ca5f8a39a98ea5a2">More...</a><br/></td></tr> <tr class="separator:ab371d8427aeb4bd0ca5f8a39a98ea5a2"><td class="memSeparator" colspan="2"> </td></tr> @@ -258,10 +255,10 @@ char * </td><td class="memItemRight" valign="bottom"><a class="el" href="cl <tr class="separator:a8890b6a6046fb562f9f0ab943b79dfb4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac1fb657631c5212401259bb35ebf16db"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html">io_result</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#acbb752522c90f5e4596b8a4f07e2fa80">const_buffer_type</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ac1fb657631c5212401259bb35ebf16db">write</a> (<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a617ab627aa596b325d7bfef5210a43f3">extent_type</a> <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#aa37d709995bc671b3ca267ee5b821732">offset</a>, const char *data, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#aee8d98d7f979e312f5e18dfcebfc6870">size_type</a> bytes, <a class="el" href="structdeadline.html">deadline</a> d=<a class="el" href="structdeadline.html">deadline</a>()) noexcept</td></tr> <tr class="separator:ac1fb657631c5212401259bb35ebf16db"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a01027dfc7b8d85f2ba3b5a56ef053191"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html">io_result</a><br class="typebreak"/> -< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a01027dfc7b8d85f2ba3b5a56ef053191">sync</a> (<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> > reqs=<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> >(), bool wait_for_device=false, bool and_metadata=false, <a class="el" href="structdeadline.html">deadline</a> d=<a class="el" href="structdeadline.html">deadline</a>()) noexcept=0</td></tr> -<tr class="memdesc:a01027dfc7b8d85f2ba3b5a56ef053191"><td class="mdescLeft"> </td><td class="mdescRight">Issue a write reordering barrier for preceding writes such that they will all be issued to storage before any writes after the barrier. <a href="#a01027dfc7b8d85f2ba3b5a56ef053191">More...</a><br/></td></tr> -<tr class="separator:a01027dfc7b8d85f2ba3b5a56ef053191"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a13759dd906ab5564de0a381c3fe25726"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html">io_result</a><br class="typebreak"/> +< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a13759dd906ab5564de0a381c3fe25726">barrier</a> (<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> > reqs=<a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> >(), bool wait_for_device=false, bool and_metadata=false, <a class="el" href="structdeadline.html">deadline</a> d=<a class="el" href="structdeadline.html">deadline</a>()) noexcept=0</td></tr> +<tr class="memdesc:a13759dd906ab5564de0a381c3fe25726"><td class="mdescLeft"> </td><td class="mdescRight">Issue a write reordering barrier such that writes preceding the barrier will reach storage before writes after this barrier. <a href="#a13759dd906ab5564de0a381c3fe25726">More...</a><br/></td></tr> +<tr class="separator:a13759dd906ab5564de0a381c3fe25726"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aebd9c90a901e6364c94d466425db6e0f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html">extent_guard</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f">lock</a> (<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a617ab627aa596b325d7bfef5210a43f3">extent_type</a> <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#aa37d709995bc671b3ca267ee5b821732">offset</a>, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a617ab627aa596b325d7bfef5210a43f3">extent_type</a> bytes, bool exclusive=true, <a class="el" href="structdeadline.html">deadline</a> d=<a class="el" href="structdeadline.html">deadline</a>()) noexcept</td></tr> <tr class="memdesc:aebd9c90a901e6364c94d466425db6e0f"><td class="mdescLeft"> </td><td class="mdescRight">Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes through the same semantics as the underlying OS call, including any POSIX insanity present on your platform. <a href="#aebd9c90a901e6364c94d466425db6e0f">More...</a><br/></td></tr> <tr class="separator:aebd9c90a901e6364c94d466425db6e0f"><td class="memSeparator" colspan="2"> </td></tr> @@ -383,6 +380,12 @@ static <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660 <tr class="memitem:acf2dbad9fb261c665e9f082beb7050d5"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c">result</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a811166f987d82fcd3c85c6aa0b9b4f34">buffer_type</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#acf2dbad9fb261c665e9f082beb7050d5">do_not_store</a> (<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a811166f987d82fcd3c85c6aa0b9b4f34">buffer_type</a> region) noexcept</td></tr> <tr class="separator:acf2dbad9fb261c665e9f082beb7050d5"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a> +Protected Member Functions</h2></td></tr> +<tr class="memitem:ae00a766df04a5d546cfa7c5432eea14a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae00a766df04a5d546cfa7c5432eea14a"></a> + </td><td class="memItemRight" valign="bottom"><b>map_handle</b> (<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1section__handle.html">section_handle</a> *<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a89f5587e480916c3d27428ea39a6c768">section</a>)</td></tr> +<tr class="separator:ae00a766df04a5d546cfa7c5432eea14a"><td class="memSeparator" colspan="2"> </td></tr> +</table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a> Protected Attributes</h2></td></tr> <tr class="memitem:af38b22afde040c08f397af289d629041"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af38b22afde040c08f397af289d629041"></a> @@ -411,6 +414,71 @@ flag </td><td class="memItemRight" valign="bottom"><b>_flags</b></td></tr> <div class="textblock"><p>A handle to a memory mapped region of memory. </p> <dl class="section note"><dt>Note</dt><dd>The native handle returned by this map handle is always that of the backing storage, but closing this handle does not close that of the backing storage, nor does releasing this handle release that of the backing storage. Locking byte ranges of this handle is therefore equal to locking byte ranges in the original backing storage. </dd></dl> </div><h2 class="groupheader">Member Function Documentation</h2> +<a class="anchor" id="a13759dd906ab5564de0a381c3fe25726"></a> +<div class="memitem"> +<div class="memproto"> +<table class="mlabels"> + <tr> + <td class="mlabels-left"> + <table class="memname"> + <tr> + <td class="memname">virtual <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html">io_result</a><<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a>> boost::afio::v2_xxx::io_handle::barrier </td> + <td>(</td> + <td class="paramtype"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> > </td> + <td class="paramname"><em>reqs</em> = <code><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> >()</code>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">bool </td> + <td class="paramname"><em>wait_for_device</em> = <code>false</code>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">bool </td> + <td class="paramname"><em>and_metadata</em> = <code>false</code>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="structdeadline.html">deadline</a> </td> + <td class="paramname"><em>d</em> = <code><a class="el" href="structdeadline.html">deadline</a>()</code> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td> + </tr> + </table> + </td> + <td class="mlabels-right"> +<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">pure virtual</span><span class="mlabel">noexcept</span><span class="mlabel">inherited</span></span> </td> + </tr> +</table> +</div><div class="memdoc"> + +<p>Issue a write reordering barrier such that writes preceding the barrier will reach storage before writes after this barrier. </p> +<dl class="section warning"><dt>Warning</dt><dd><b>Assume that this call is a no-op</b>. It is not reliably implemented in many common use cases, for example if your code is running inside a LXC container, or if the user has mounted the filing system with non-default options. Instead open the handle with <code>caching::reads</code> which means that all writes form a strict sequential order not completing until acknowledged by the storage device. Filing system can and do use different algorithms to give much better performance with <code>caching::reads</code>, some (e.g. ZFS) spectacularly better.</dd> +<dd> +Let me repeat again: consider this call to be a <b>hint</b> to poke the kernel with a stick to go start to do some work sooner rather than later. It may be ignored entirely.</dd> +<dd> +For portability, you can only assume that barriers write order for a single handle instance. You cannot assume that barriers write order across multiple handles to the same inode, or across processes.</dd></dl> +<dl class="section return"><dt>Returns</dt><dd>The buffers barriered, which may not be the buffers input. The size of each scatter-gather buffer is updated with the number of bytes of that buffer barriered. </dd></dl> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">reqs</td><td>A scatter-gather and offset request for what range to barrier. May be ignored on some platforms which always write barrier the entire file. Supplying a default initialised reqs write barriers the entire file. </td></tr> + <tr><td class="paramname">wait_for_device</td><td>True if you want the call to wait until data reaches storage and that storage has acknowledged the data is physically written. Slow. </td></tr> + <tr><td class="paramname">and_metadata</td><td>True if you want the call to sync the metadata for retrieving the writes before the barrier after a sudden power loss event. Slow. </td></tr> + <tr><td class="paramname">d</td><td>An optional deadline by which the i/o must complete, else it is cancelled. Note function may return significantly after this deadline if the i/o takes long to cancel. </td></tr> + </table> + </dd> +</dl> +<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX fdatasync() or Windows NtFlushBuffersFileEx() can return. </dd></dl> +<dl class="section user"><dt>Memory Allocations</dt><dd>None. </dd></dl> + +</div> +</div> <a class="anchor" id="a95d26fe35f85d81382d903224660084d"></a> <div class="memitem"> <div class="memproto"> @@ -555,12 +623,12 @@ flag </td><td class="memItemRight" valign="bottom"><b>_flags</b></td></tr> </table> </div><div class="memdoc"> <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p> -<div class="fragment"><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  {</div> -<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <span class="keywordtype">size_t</span> bytes = 0;</div> -<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> &i : reqs.buffers)</div> -<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  bytes += i.second;</div> -<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  <span class="keywordflow">return</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(reqs.offset, bytes, <span class="keyword">false</span>, std::move(d));</div> -<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  }</div> +<div class="fragment"><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  {</div> +<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <span class="keywordtype">size_t</span> bytes = 0;</div> +<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> &i : reqs.buffers)</div> +<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  bytes += i.second;</div> +<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  <span class="keywordflow">return</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(reqs.offset, bytes, <span class="keyword">false</span>, std::move(d));</div> +<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  }</div> </div><!-- fragment --> </div> </div> @@ -596,12 +664,12 @@ flag </td><td class="memItemRight" valign="bottom"><b>_flags</b></td></tr> </table> </div><div class="memdoc"> <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p> -<div class="fragment"><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  {</div> -<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="keywordtype">size_t</span> bytes = 0;</div> -<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> &i : reqs.buffers)</div> -<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  bytes += i.second;</div> -<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <span class="keywordflow">return</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(reqs.offset, bytes, <span class="keyword">true</span>, std::move(d));</div> -<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  }</div> +<div class="fragment"><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  {</div> +<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  <span class="keywordtype">size_t</span> bytes = 0;</div> +<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> &i : reqs.buffers)</div> +<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  bytes += i.second;</div> +<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  <span class="keywordflow">return</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(reqs.offset, bytes, <span class="keyword">true</span>, std::move(d));</div> +<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  }</div> </div><!-- fragment --> </div> </div> @@ -684,11 +752,14 @@ flag </td><td class="memItemRight" valign="bottom"><b>_flags</b></td></tr> </table> </div><div class="memdoc"> <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p> -<div class="fragment"><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> { BOOST_OUTCOME_TRY(ret, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a7b7036b13db0a4e7ac90193afd22cca9" title="Ask the system to begin to asynchronously prefetch the span of memory regions given, returning the regions actually prefetched. Note that on Windows 7 or earlier the system call to implement this was not available, and so you will see an empty span returned.">prefetch</a>(span<buffer_type>(&region, 1))); <span class="keywordflow">return</span> *ret.data(); }</div> +<div class="fragment"><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  {</div> +<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  BOOST_OUTCOME_TRY(ret, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a7b7036b13db0a4e7ac90193afd22cca9" title="Ask the system to begin to asynchronously prefetch the span of memory regions given, returning the regions actually prefetched. Note that on Windows 7 or earlier the system call to implement this was not available, and so you will see an empty span returned.">prefetch</a>(span<buffer_type>(&region, 1)));</div> +<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="keywordflow">return</span> *ret.data();</div> +<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  }</div> </div><!-- fragment --> </div> </div> -<a class="anchor" id="a5b832e5045ae54db8561133763837a47"></a> +<a class="anchor" id="a25780704d766521da460d33b72cec76e"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> @@ -715,7 +786,7 @@ flag </td><td class="memItemRight" valign="bottom"><b>_flags</b></td></tr> </table> </td> <td class="mlabels-right"> -<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span><span class="mlabel">noexcept</span></span> </td> +<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> @@ -825,12 +896,12 @@ flag </td><td class="memItemRight" valign="bottom"><b>_flags</b></td></tr> </table> </div><div class="memdoc"> <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p> -<div class="fragment"><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  {</div> -<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a811166f987d82fcd3c85c6aa0b9b4f34" title="The scatter buffer type used by this handle.">buffer_type</a> _reqs[1] = {{data, bytes}};</div> -<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  io_request<buffers_type> reqs(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a9085d19b744d1330eafa51fffc49e104" title="The scatter buffers type used by this handle.">buffers_type</a>(_reqs), offset);</div> -<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  BOOST_OUTCOME_TRY(v, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2" title="Read data from the open handle.">read</a>(reqs, d));</div> -<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <span class="keywordflow">return</span> *v.data();</div> -<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  }</div> +<div class="fragment"><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  {</div> +<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a811166f987d82fcd3c85c6aa0b9b4f34" title="The scatter buffer type used by this handle.">buffer_type</a> _reqs[1] = {{data, bytes}};</div> +<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  io_request<buffers_type> reqs(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a9085d19b744d1330eafa51fffc49e104" title="The scatter buffers type used by this handle.">buffers_type</a>(_reqs), offset);</div> +<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  BOOST_OUTCOME_TRY(v, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2" title="Read data from the open handle.">read</a>(reqs, d));</div> +<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keywordflow">return</span> *v.data();</div> +<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  }</div> </div><!-- fragment --> </div> </div> @@ -890,69 +961,6 @@ flag </td><td class="memItemRight" valign="bottom"><b>_flags</b></td></tr> </div> </div> -<a class="anchor" id="a01027dfc7b8d85f2ba3b5a56ef053191"></a> -<div class="memitem"> -<div class="memproto"> -<table class="mlabels"> - <tr> - <td class="mlabels-left"> - <table class="memname"> - <tr> - <td class="memname">virtual <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html">io_result</a><<a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a>> boost::afio::v2_xxx::io_handle::sync </td> - <td>(</td> - <td class="paramtype"><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> > </td> - <td class="paramname"><em>reqs</em> = <code><a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__request.html">io_request</a>< <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd">const_buffers_type</a> >()</code>, </td> - </tr> - <tr> - <td class="paramkey"></td> - <td></td> - <td class="paramtype">bool </td> - <td class="paramname"><em>wait_for_device</em> = <code>false</code>, </td> - </tr> - <tr> - <td class="paramkey"></td> - <td></td> - <td class="paramtype">bool </td> - <td class="paramname"><em>and_metadata</em> = <code>false</code>, </td> - </tr> - <tr> - <td class="paramkey"></td> - <td></td> - <td class="paramtype"><a class="el" href="structdeadline.html">deadline</a> </td> - <td class="paramname"><em>d</em> = <code><a class="el" href="structdeadline.html">deadline</a>()</code> </td> - </tr> - <tr> - <td></td> - <td>)</td> - <td></td><td></td> - </tr> - </table> - </td> - <td class="mlabels-right"> -<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">pure virtual</span><span class="mlabel">noexcept</span><span class="mlabel">inherited</span></span> </td> - </tr> -</table> -</div><div class="memdoc"> - -<p>Issue a write reordering barrier for preceding writes such that they will all be issued to storage before any writes after the barrier. </p> -<dl class="section warning"><dt>Warning</dt><dd>This call really is for people with deep understanding of individual filing systems, and unless you <b>really</b> know what you are doing, do NOT use this call as it is false security. Instead open the handle with <code>caching::reads</code>, that will get you true durable write ordering, plus the filing system can use different algorithms to give much better performance.</dd> -<dd> -For portability, you can only assume that sync()'s are write ordered for a single handle instance. You cannot assume that sync() write orders across multiple handles to the same inode, or across processes.</dd></dl> -<dl class="section return"><dt>Returns</dt><dd>The buffers synced, which may not be the buffers input. The size of each scatter-gather buffer is updated with the number of bytes of that buffer synced. </dd></dl> -<dl class="params"><dt>Parameters</dt><dd> - <table class="params"> - <tr><td class="paramname">reqs</td><td>A scatter-gather and offset request. May be ignored on some platforms. </td></tr> - <tr><td class="paramname">wait_for_device</td><td>True if you want the call to wait until data reaches storage and that storage has acknowledged the data is physically written. </td></tr> - <tr><td class="paramname">and_metadata</td><td>True if you want the call to sync the metadata for retrieving writes until now too. </td></tr> - <tr><td class="paramname">d</td><td>An optional deadline by which the i/o must complete, else it is cancelled. Note function may return significantly after this deadline if the i/o takes long to cancel. has confirmed that the data is written before returning. </td></tr> - </table> - </dd> -</dl> -<dl class="section user"><dt>Errors returnable</dt><dd>Any of the values POSIX fdatasync() or Windows NtFlushBuffersFileEx() can return. </dd></dl> -<dl class="section user"><dt>Memory Allocations</dt><dd>None. </dd></dl> - -</div> -</div> <a class="anchor" id="aab870fe5fa041af29e2d85a5c292077f"></a> <div class="memitem"> <div class="memproto"> @@ -991,7 +999,7 @@ For portability, you can only assume that sync()'s are write ordered for a singl </table> </div><div class="memdoc"> <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p> -<div class="fragment"><div class="line"><a name="l00596"></a><span class="lineno"> 596</span> { <span class="keywordflow">return</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(offset, bytes, exclusive, <a class="code" href="structdeadline.html" title="A time deadline in either relative-to-now or absolute (system clock) terms.">deadline</a>(stl11::chrono::seconds(0))); }</div> +<div class="fragment"><div class="line"><a name="l00607"></a><span class="lineno"> 607</span> { <span class="keywordflow">return</span> <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f" title="Tries to lock the range of bytes specified for shared or exclusive access. Be aware this passes throu...">lock</a>(offset, bytes, exclusive, <a class="code" href="structdeadline.html" title="A time deadline in either relative-to-now or absolute (system clock) terms.">deadline</a>(stl11::chrono::seconds(0))); }</div> </div><!-- fragment --> </div> </div> @@ -1040,7 +1048,7 @@ For portability, you can only assume that sync()'s are write ordered for a singl </div> </div> -<a class="anchor" id="ad6157050182facd9bb5c545b8fe487e6"></a> +<a class="anchor" id="ab11e484d01157158aaca7160bb1720ce"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> @@ -1067,7 +1075,7 @@ For portability, you can only assume that sync()'s are write ordered for a singl </table> </td> <td class="mlabels-right"> -<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span><span class="mlabel">noexcept</span></span> </td> +<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> @@ -1176,12 +1184,12 @@ For portability, you can only assume that sync()'s are write ordered for a singl </table> </div><div class="memdoc"> <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p> -<div class="fragment"><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  {</div> -<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#acbb752522c90f5e4596b8a4f07e2fa80" title="The gather buffer type used by this handle.">const_buffer_type</a> _reqs[1] = {{data, bytes}};</div> -<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  io_request<const_buffers_type> reqs(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd" title="The gather buffers type used by this handle.">const_buffers_type</a>(_reqs), offset);</div> -<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  BOOST_OUTCOME_TRY(v, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a8890b6a6046fb562f9f0ab943b79dfb4" title="Write data to the open handle.">write</a>(reqs, d));</div> -<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keywordflow">return</span> *v.data();</div> -<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  }</div> +<div class="fragment"><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  {</div> +<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#acbb752522c90f5e4596b8a4f07e2fa80" title="The gather buffer type used by this handle.">const_buffer_type</a> _reqs[1] = {{data, bytes}};</div> +<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  io_request<const_buffers_type> reqs(<a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd" title="The gather buffers type used by this handle.">const_buffers_type</a>(_reqs), offset);</div> +<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  BOOST_OUTCOME_TRY(v, <a class="code" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a8890b6a6046fb562f9f0ab943b79dfb4" title="Write data to the open handle.">write</a>(reqs, d));</div> +<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keywordflow">return</span> *v.data();</div> +<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  }</div> </div><!-- fragment --> </div> </div> diff --git a/classboost_1_1afio_1_1v2__xxx_1_1map__handle.js b/classboost_1_1afio_1_1v2__xxx_1_1map__handle.js index 2e9551bc..1678590e 100644 --- a/classboost_1_1afio_1_1v2__xxx_1_1map__handle.js +++ b/classboost_1_1afio_1_1v2__xxx_1_1map__handle.js @@ -14,16 +14,18 @@ var classboost_1_1afio_1_1v2__xxx_1_1map__handle = [ "path_type", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a2c61575fe222c227d6d8db0d2c67c4ec", null ], [ "size_type", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a7437f115d61376fc1064fef51eb3abf8", null ], [ "unique_id_type", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ace66ef9d4b55ad11d02af26814069d94", null ], - [ "map_handle", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a2bfe92df14ea41912f362558adcf066c", null ], [ "map_handle", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ae00a766df04a5d546cfa7c5432eea14a", null ], + [ "map_handle", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a2bfe92df14ea41912f362558adcf066c", null ], [ "~map_handle", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ade7ec03b740026529e8f7ad53e1bad5b", null ], [ "map_handle", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a856c6f55f486070b67e210065000454c", null ], [ "address", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a31c50127e7255b7dc99eab306a225298", null ], [ "are_reads_from_cache", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a70998344e2234961c5ad64491d042ff8", null ], [ "are_safety_fsyncs_issued", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a3e08545dd29f09a40ff8439ac774ae1e", null ], [ "are_writes_durable", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ae446e9a32283991f58f8f27dbed083d1", null ], + [ "barrier", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ab73f13fe2628fff2cad7d2f559b08135", null ], + [ "barrier", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a13759dd906ab5564de0a381c3fe25726", null ], [ "clone", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a95d26fe35f85d81382d903224660084d", null ], - [ "close", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a6a942f41e85fb2e65e6376dc2e348497", null ], + [ "close", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a973be6818c829b35c10441885b965a27", null ], [ "commit", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#aefeb5e82a3073b18f50b3047c89752ce", null ], [ "decommit", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a3cb9350601a177da333304ef5930cbab", null ], [ "flags", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#add27fa17cd6356b49a26a8b6dafb6a6d", null ], @@ -48,22 +50,20 @@ var classboost_1_1afio_1_1v2__xxx_1_1map__handle = [ "offset", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#aa37d709995bc671b3ca267ee5b821732", null ], [ "operator=", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ae07b3e5449e9116d733ef449b6ac0713", null ], [ "path", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a461355ae526806b338fd2eaadc564a43", null ], - [ "read", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a5b832e5045ae54db8561133763837a47", null ], + [ "read", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a25780704d766521da460d33b72cec76e", null ], [ "read", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2", null ], [ "read", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a4480a48b8e54cde62fd2cee4ceed3725", null ], - [ "release", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ad191467425f5966dc4a42f365bf13dc7", null ], + [ "release", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a172fb6584e4e7ed53e5487604027a824", null ], [ "requires_aligned_io", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a7d1fa70986dc1edea222e17fbabc6425", null ], [ "section", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a89f5587e480916c3d27428ea39a6c768", null ], [ "set_append_only", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#adf964e787e0666fc5b7d94c2715ee6f5", null ], [ "set_kernel_caching", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#aa8de6675205db68de70bf9075a6c649f", null ], [ "swap", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#adc26314bd23b9080ac3c4c2dd6bc5937", null ], [ "swap", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a740ebf7b850bfa5e5484e5e54341ff1f", null ], - [ "sync", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a5d37d5ce48ecb9c77d16ec5c0b76a10c", null ], - [ "sync", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a01027dfc7b8d85f2ba3b5a56ef053191", null ], [ "try_lock", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#aab870fe5fa041af29e2d85a5c292077f", null ], [ "unique_id", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#acb372c2075980a97874557859a62f5f7", null ], [ "unlock", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a0d043e29e065db9618f6df2e43cc1d42", null ], - [ "write", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ad6157050182facd9bb5c545b8fe487e6", null ], + [ "write", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ab11e484d01157158aaca7160bb1720ce", null ], [ "write", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a8890b6a6046fb562f9f0ab943b79dfb4", null ], [ "write", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ac1fb657631c5212401259bb35ebf16db", null ], [ "zero", "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a03ca3f1cf96bae5be137227e64c1e78b", null ], diff --git a/functions_0x62.html b/functions_0x62.html index 8203b52a..3d9330d2 100644 --- a/functions_0x62.html +++ b/functions_0x62.html @@ -152,8 +152,11 @@ $(document).ready(function(){initNavTree('functions_0x62.html','');}); <li>backing_native_handle() : <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a78fc51ac881ae0fc42327de1f9604ee7">boost::afio::v2_xxx::section_handle</a> </li> +<li>barrier() +: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a13759dd906ab5564de0a381c3fe25726">boost::afio::v2_xxx::io_handle</a> +</li> <li>begin() -: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a41eaa3d97abd88484db04b0fed1d7cd3">boost::afio::v2_xxx::storage_profile::storage_profile</a> +: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#aff13684e4ab8c811e63808b66901209c">boost::afio::v2_xxx::storage_profile::storage_profile</a> </li> <li>buffer_type : <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a811166f987d82fcd3c85c6aa0b9b4f34">boost::afio::v2_xxx::io_handle</a> diff --git a/functions_0x63.html b/functions_0x63.html index 6f5f4384..0336c6a2 100644 --- a/functions_0x63.html +++ b/functions_0x63.html @@ -158,7 +158,7 @@ $(document).ready(function(){initNavTree('functions_0x63.html','');}); , <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a146af690967dbe866f3ecf1ebd5358b0">boost::afio::v2_xxx::async_file_handle</a> </li> <li>close() -: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a6a942f41e85fb2e65e6376dc2e348497">boost::afio::v2_xxx::map_handle</a> +: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a973be6818c829b35c10441885b965a27">boost::afio::v2_xxx::map_handle</a> , <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ab317ddd32e1ba126c647b6a89541ad67">boost::afio::v2_xxx::file_handle</a> , <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a651ff10099e7522df784507aca8b8f0f">boost::afio::v2_xxx::handle</a> </li> diff --git a/functions_0x72.html b/functions_0x72.html index b78c721b..bec8c0a9 100644 --- a/functions_0x72.html +++ b/functions_0x72.html @@ -160,7 +160,7 @@ $(document).ready(function(){initNavTree('functions_0x72.html','');}); , <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#afc56522cf4f6d90bd825f7f50bff7432">boost::afio::v2_xxx::storage_profile::storage_profile</a> , <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabadaecae13117d6f0584c25a9da6c8f8415e">boost::afio::v2_xxx::handle</a> , <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2">boost::afio::v2_xxx::io_handle</a> -, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a5b832e5045ae54db8561133763837a47">boost::afio::v2_xxx::map_handle</a> +, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a25780704d766521da460d33b72cec76e">boost::afio::v2_xxx::map_handle</a> </li> <li>readable : <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1native__handle__type_1_1disposition__base.html#a3f5231b1a86b8c661b39312f0f4a02f5a3dc019819243ad24fc283879f26e6c5d">boost::afio::v2_xxx::native_handle_type::disposition_base</a> @@ -176,7 +176,7 @@ $(document).ready(function(){initNavTree('functions_0x72.html','');}); </li> <li>release() : <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#aed27aa9b18e13bd82038b190071aeafd">boost::afio::v2_xxx::io_handle::extent_guard</a> -, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ad191467425f5966dc4a42f365bf13dc7">boost::afio::v2_xxx::map_handle</a> +, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a172fb6584e4e7ed53e5487604027a824">boost::afio::v2_xxx::map_handle</a> , <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html#a0cf3ef1014c95261a2799bcc055949ae">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entities_guard</a> , <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a59c9bc1338196095a028b2870dcfb61d">boost::afio::v2_xxx::handle</a> </li> diff --git a/functions_0x73.html b/functions_0x73.html index ecfe1ebc..a4fa8597 100644 --- a/functions_0x73.html +++ b/functions_0x73.html @@ -256,7 +256,7 @@ $(document).ready(function(){initNavTree('functions_0x73.html','');}); : <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1stat__t.html#a2c539706d8c27a6517948e407a33ee60">boost::afio::v2_xxx::stat_t</a> </li> <li>stat_t() -: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1stat__t.html#a91622602f194fc7bc58f49238e7622e6">boost::afio::v2_xxx::stat_t</a> +: <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1stat__t.html#a0bfd220474fee07e9ea6a20f426cb6c0">boost::afio::v2_xxx::stat_t</a> </li> <li>statfs_t() : <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1statfs__t.html#a95cd6253c6046b469f2f0a8917e75fc9">boost::afio::v2_xxx::statfs_t</a> @@ -266,18 +266,15 @@ $(document).ready(function(){initNavTree('functions_0x73.html','');}); </li> <li>swap() : <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html#a050a9de29d70566366a679db08969bf6">boost::afio::v2_xxx::native_handle_type</a> -, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#ae0e0965229c5c6486352867c4284bffe">boost::afio::v2_xxx::section_handle</a> , <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a9d551befa0fa25a7119c07abc3a7a0e0">boost::afio::v2_xxx::async_file_handle</a> +, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a740ebf7b850bfa5e5484e5e54341ff1f">boost::afio::v2_xxx::map_handle</a> , <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#adc26314bd23b9080ac3c4c2dd6bc5937">boost::afio::v2_xxx::handle</a> +, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#ae0e0965229c5c6486352867c4284bffe">boost::afio::v2_xxx::section_handle</a> , <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aa6118e53c41add8d4112d9ebeddd9d14">boost::afio::v2_xxx::file_handle</a> -, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a740ebf7b850bfa5e5484e5e54341ff1f">boost::afio::v2_xxx::map_handle</a> </li> <li>symlink : <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1native__handle__type_1_1disposition__base.html#a3f5231b1a86b8c661b39312f0f4a02f5a58f3f96fa1cafd3605b488394e000d89">boost::afio::v2_xxx::native_handle_type::disposition_base</a> </li> -<li>sync() -: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a01027dfc7b8d85f2ba3b5a56ef053191">boost::afio::v2_xxx::io_handle</a> -</li> </ul> </div><!-- contents --> </div><!-- doc-content --> diff --git a/functions_0x77.html b/functions_0x77.html index 6a1344ac..4ca31ef5 100644 --- a/functions_0x77.html +++ b/functions_0x77.html @@ -154,7 +154,7 @@ $(document).ready(function(){initNavTree('functions_0x77.html','');}); </li> <li>write() : <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a927515610146e07b149cfe8cb4ccc52f">boost::afio::v2_xxx::storage_profile::storage_profile</a> -, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ad6157050182facd9bb5c545b8fe487e6">boost::afio::v2_xxx::map_handle</a> +, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ab11e484d01157158aaca7160bb1720ce">boost::afio::v2_xxx::map_handle</a> , <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ac1fb657631c5212401259bb35ebf16db">boost::afio::v2_xxx::io_handle</a> , <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1section__handle_1_1flag__base.html#aadb6d09d6768eb7ef629f3c10aa24b21ad674db212ff8358a30a6d2c105cf0c78">boost::afio::v2_xxx::section_handle::flag_base</a> , <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabadaefb2a684e4afb7d55e6147fbe5a332ee">boost::afio::v2_xxx::handle</a> diff --git a/functions_func_0x62.html b/functions_func_0x62.html index 7bf776b2..80fe6e61 100644 --- a/functions_func_0x62.html +++ b/functions_func_0x62.html @@ -150,6 +150,9 @@ $(document).ready(function(){initNavTree('functions_func_0x62.html','');}); <li>backing_native_handle() : <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a78fc51ac881ae0fc42327de1f9604ee7">boost::afio::v2_xxx::section_handle</a> </li> +<li>barrier() +: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a13759dd906ab5564de0a381c3fe25726">boost::afio::v2_xxx::io_handle</a> +</li> <li>begin() : <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a41eaa3d97abd88484db04b0fed1d7cd3">boost::afio::v2_xxx::storage_profile::storage_profile</a> </li> diff --git a/functions_func_0x63.html b/functions_func_0x63.html index d0b3a003..1366b2ae 100644 --- a/functions_func_0x63.html +++ b/functions_func_0x63.html @@ -154,7 +154,7 @@ $(document).ready(function(){initNavTree('functions_func_0x63.html','');}); </li> <li>close() : <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ab317ddd32e1ba126c647b6a89541ad67">boost::afio::v2_xxx::file_handle</a> -, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a6a942f41e85fb2e65e6376dc2e348497">boost::afio::v2_xxx::map_handle</a> +, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a973be6818c829b35c10441885b965a27">boost::afio::v2_xxx::map_handle</a> , <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a651ff10099e7522df784507aca8b8f0f">boost::afio::v2_xxx::handle</a> </li> <li>commit() diff --git a/functions_func_0x72.html b/functions_func_0x72.html index 190e7c66..05e34d53 100644 --- a/functions_func_0x72.html +++ b/functions_func_0x72.html @@ -152,13 +152,13 @@ $(document).ready(function(){initNavTree('functions_func_0x72.html','');}); </li> <li>read() : <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a4480a48b8e54cde62fd2cee4ceed3725">boost::afio::v2_xxx::io_handle</a> -, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a5b832e5045ae54db8561133763837a47">boost::afio::v2_xxx::map_handle</a> +, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a25780704d766521da460d33b72cec76e">boost::afio::v2_xxx::map_handle</a> , <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2">boost::afio::v2_xxx::io_handle</a> , <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#afc56522cf4f6d90bd825f7f50bff7432">boost::afio::v2_xxx::storage_profile::storage_profile</a> </li> <li>release() : <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#aed27aa9b18e13bd82038b190071aeafd">boost::afio::v2_xxx::io_handle::extent_guard</a> -, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ad191467425f5966dc4a42f365bf13dc7">boost::afio::v2_xxx::map_handle</a> +, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a172fb6584e4e7ed53e5487604027a824">boost::afio::v2_xxx::map_handle</a> , <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html#a0cf3ef1014c95261a2799bcc055949ae">boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entities_guard</a> , <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#a59c9bc1338196095a028b2870dcfb61d">boost::afio::v2_xxx::handle</a> </li> diff --git a/functions_func_0x73.html b/functions_func_0x73.html index ad43402f..f73bb7be 100644 --- a/functions_func_0x73.html +++ b/functions_func_0x73.html @@ -185,15 +185,12 @@ $(document).ready(function(){initNavTree('functions_func_0x73.html','');}); : <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1statfs__t.html#a95cd6253c6046b469f2f0a8917e75fc9">boost::afio::v2_xxx::statfs_t</a> </li> <li>swap() -: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#ae0e0965229c5c6486352867c4284bffe">boost::afio::v2_xxx::section_handle</a> -, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#adc26314bd23b9080ac3c4c2dd6bc5937">boost::afio::v2_xxx::handle</a> +: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a9d551befa0fa25a7119c07abc3a7a0e0">boost::afio::v2_xxx::async_file_handle</a> , <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aa6118e53c41add8d4112d9ebeddd9d14">boost::afio::v2_xxx::file_handle</a> -, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a9d551befa0fa25a7119c07abc3a7a0e0">boost::afio::v2_xxx::async_file_handle</a> -, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a740ebf7b850bfa5e5484e5e54341ff1f">boost::afio::v2_xxx::map_handle</a> , <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html#a050a9de29d70566366a679db08969bf6">boost::afio::v2_xxx::native_handle_type</a> -</li> -<li>sync() -: <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a01027dfc7b8d85f2ba3b5a56ef053191">boost::afio::v2_xxx::io_handle</a> +, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#ae0e0965229c5c6486352867c4284bffe">boost::afio::v2_xxx::section_handle</a> +, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a740ebf7b850bfa5e5484e5e54341ff1f">boost::afio::v2_xxx::map_handle</a> +, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1handle.html#adc26314bd23b9080ac3c4c2dd6bc5937">boost::afio::v2_xxx::handle</a> </li> </ul> </div><!-- contents --> diff --git a/functions_func_0x77.html b/functions_func_0x77.html index 7ce49b1f..41521767 100644 --- a/functions_func_0x77.html +++ b/functions_func_0x77.html @@ -147,7 +147,7 @@ $(document).ready(function(){initNavTree('functions_func_0x77.html','');}); <li>write() : <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a8890b6a6046fb562f9f0ab943b79dfb4">boost::afio::v2_xxx::io_handle</a> , <a class="el" href="structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a927515610146e07b149cfe8cb4ccc52f">boost::afio::v2_xxx::storage_profile::storage_profile</a> -, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ad6157050182facd9bb5c545b8fe487e6">boost::afio::v2_xxx::map_handle</a> +, <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ab11e484d01157158aaca7160bb1720ce">boost::afio::v2_xxx::map_handle</a> , <a class="el" href="classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ac1fb657631c5212401259bb35ebf16db">boost::afio::v2_xxx::io_handle</a> </li> </ul> @@ -39,7 +39,7 @@ var NAVTREEINDEX = [ "afio_8hpp.html", "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ac1fb657631c5212401259bb35ebf16db", -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ad6157050182facd9bb5c545b8fe487e6", +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ad4ee22cfec00551e1f71ff23962280be", "functions_type.html", "structboost_1_1afio_1_1v2__xxx_1_1statfs__t_1_1want__base.html#a35f5b2de8e92fce4b815ebce176d1993a24a07030722dfce8ba19052b8f23874d" ]; diff --git a/navtreeindex0.js b/navtreeindex0.js index f91a36df..a430d31d 100644 --- a/navtreeindex0.js +++ b/navtreeindex0.js @@ -113,11 +113,10 @@ var NAVTREEINDEX0 = "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html#ada870a1b1f806a1a78b166a81c6a936a":[3,0,0,0,0,0,0,1,0,14], "classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html#af0d45aa329e36c832e605c92d5a6f350":[3,0,0,0,0,0,0,1,0,6], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html":[3,0,0,0,0,3], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a01027dfc7b8d85f2ba3b5a56ef053191":[3,0,0,0,0,3,68], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a0d043e29e065db9618f6df2e43cc1d42":[3,0,0,0,0,3,73], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a1268c592b21853e5c514a3d31222d981":[3,0,0,0,0,3,71], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a146af690967dbe866f3ecf1ebd5358b0":[3,0,0,0,0,3,29], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a160f3f14661044dc28a264683bfb20e6":[3,0,0,0,0,3,67], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a13759dd906ab5564de0a381c3fe25726":[3,0,0,0,0,3,30], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a146af690967dbe866f3ecf1ebd5358b0":[3,0,0,0,0,3,31], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a1c04a06af322151221d2b2220c560a66":[3,0,0,0,0,3,8], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a1c784980c7aa86484653981dfd0abd94":[3,0,0,0,0,3,11], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a219e882358d720f4d9fc99654d2cfca8":[3,0,0,0,0,3,16], @@ -125,129 +124,130 @@ var NAVTREEINDEX0 = "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a286de306ec1d05ebf76ee8b3af78ae7a":[3,0,0,0,0,3,12], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a30bba0064587015423eef5c89c081aea":[3,0,0,0,0,3,21], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a33cdff59436b980b0546a786f0bd718a":[3,0,0,0,0,3,74], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a3460c3419d165c7d9e8aaee8db3c7f2c":[3,0,0,0,0,3,37], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a396487cb0116b194fbb477a7ccbd26cb":[3,0,0,0,0,3,30], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a3c14ec910a3eac02b44688807c9b7511":[3,0,0,0,0,3,41], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a3460c3419d165c7d9e8aaee8db3c7f2c":[3,0,0,0,0,3,39], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a396487cb0116b194fbb477a7ccbd26cb":[3,0,0,0,0,3,32], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a3c14ec910a3eac02b44688807c9b7511":[3,0,0,0,0,3,43], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a3e08545dd29f09a40ff8439ac774ae1e":[3,0,0,0,0,3,25], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a3f69402d5f5c33f133d48885b40a82be":[3,0,0,0,0,3,10], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a40b1d46a15d1773a58a5ef761662c243":[3,0,0,0,0,3,81], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a428aa4b395deccca18db4322eb0abd39":[3,0,0,0,0,3,63], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a428aa4b395deccca18db4322eb0abd39":[3,0,0,0,0,3,65], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a42b40df1063695d99e0d6b8a6fa6fa6b":[3,0,0,0,0,3,13], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a4480a48b8e54cde62fd2cee4ceed3725":[3,0,0,0,0,3,55], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a4480a48b8e54cde62fd2cee4ceed3725":[3,0,0,0,0,3,57], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a45e3460664113cfbc0898f084057e54c":[3,0,0,0,0,3,18], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a5037b058e4f8ef02a776d870b10d379a":[3,0,0,0,0,3,80], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a5299c08edd2ab9c55d7a6d3698ee6be9":[3,0,0,0,0,3,19], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a53b158768916565f3746ce66188d1e5a":[3,0,0,0,0,3,22], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a58e51b46a6604fe2ba02d3afd9efac3b":[3,0,0,0,0,3,5], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a59c9bc1338196095a028b2870dcfb61d":[3,0,0,0,0,3,56], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a59c9bc1338196095a028b2870dcfb61d":[3,0,0,0,0,3,58], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a5ded02c48545c61edf4cdaeaffb7ecef":[3,0,0,0,0,3,17], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a68d88cc5163e77f36d5a796fc92cff40":[3,0,0,0,0,3,4], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a6aa861f1403424bf5768d6dd25da402f":[3,0,0,0,0,3,42], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a6de014bf9d16737f3b14b61d6eea413d":[3,0,0,0,0,3,49], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a6e4524b6bd5de76631bcc7ab68bab7bd":[3,0,0,0,0,3,46], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a6aa861f1403424bf5768d6dd25da402f":[3,0,0,0,0,3,44], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a6de014bf9d16737f3b14b61d6eea413d":[3,0,0,0,0,3,51], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a6e4524b6bd5de76631bcc7ab68bab7bd":[3,0,0,0,0,3,48], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a704c99c358c3de485939f755b278829a":[3,0,0,0,0,3,14], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a70998344e2234961c5ad64491d042ff8":[3,0,0,0,0,3,24], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a72da822cb2e7c406aaa40be0f44b16fa":[3,0,0,0,0,3,43], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a75bedfc2b14073a20ac359edc29f9cc9":[3,0,0,0,0,3,40], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a75d78e5591cafbc68e8ba4e2b2deffa9":[3,0,0,0,0,3,34], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a72da822cb2e7c406aaa40be0f44b16fa":[3,0,0,0,0,3,45], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a75bedfc2b14073a20ac359edc29f9cc9":[3,0,0,0,0,3,42], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a75d78e5591cafbc68e8ba4e2b2deffa9":[3,0,0,0,0,3,36], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a77c4cc5309bbe79dbf592dc6c8cb5452":[3,0,0,0,0,3,0], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a79672341d97d3f934d6c90637bbeb40c":[3,0,0,0,0,3,28], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a7d1fa70986dc1edea222e17fbabc6425":[3,0,0,0,0,3,58], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a81b36f2dcb205e049f3c3781c7973b6e":[3,0,0,0,0,3,39], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a8581a32e1ed27a84046bc5cd9a248392":[3,0,0,0,0,3,52], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a7d1fa70986dc1edea222e17fbabc6425":[3,0,0,0,0,3,60], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a81b36f2dcb205e049f3c3781c7973b6e":[3,0,0,0,0,3,41], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a8581a32e1ed27a84046bc5cd9a248392":[3,0,0,0,0,3,54], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a8890b6a6046fb562f9f0ab943b79dfb4":[3,0,0,0,0,3,75], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a8a3d60edd59bc7c7fdebf317eb6e4e64":[3,0,0,0,0,3,53], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a8a3d60edd59bc7c7fdebf317eb6e4e64":[3,0,0,0,0,3,55], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a8c46e9bc95cb6d0c20c6223d1f9ab6c3":[3,0,0,0,0,3,20], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a8d3193d192d5de93d3ea781b93ea398b":[3,0,0,0,0,3,84], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a8d4b2f3b095a80e651c18143246ee4e9":[3,0,0,0,0,3,36], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a8f008c58eacfba8efdb2f4ec88322fb9":[3,0,0,0,0,3,59], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a8f2d63f049dcaa225a1d0ef686eb8864":[3,0,0,0,0,3,62], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a8d4b2f3b095a80e651c18143246ee4e9":[3,0,0,0,0,3,38], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a8f008c58eacfba8efdb2f4ec88322fb9":[3,0,0,0,0,3,61], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a8f2d63f049dcaa225a1d0ef686eb8864":[3,0,0,0,0,3,64], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a92a124164a8245717712257637df5fb2":[3,0,0,0,0,3,9], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a94e4f4f1c76498114751489d44a34b5c":[3,0,0,0,0,3,29], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a9891e3b9ce82f13c3e8b5dad64ce89d2":[3,0,0,0,0,3,82], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a9d551befa0fa25a7119c07abc3a7a0e0":[3,0,0,0,0,3,64], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#aa6118e53c41add8d4112d9ebeddd9d14":[3,0,0,0,0,3,65], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#aa8de6675205db68de70bf9075a6c649f":[3,0,0,0,0,3,61], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a9d551befa0fa25a7119c07abc3a7a0e0":[3,0,0,0,0,3,66], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#aa6118e53c41add8d4112d9ebeddd9d14":[3,0,0,0,0,3,67], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#aa8de6675205db68de70bf9075a6c649f":[3,0,0,0,0,3,63], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#aab870fe5fa041af29e2d85a5c292077f":[3,0,0,0,0,3,70], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ab188873a4b5a4583fad5b6f50f50ba7e":[3,0,0,0,0,3,3], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ab317ddd32e1ba126c647b6a89541ad67":[3,0,0,0,0,3,31], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2":[3,0,0,0,0,3,54], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ab6547a4b98dbf613c6d58c4adb2c6f39":[3,0,0,0,0,3,57], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ab317ddd32e1ba126c647b6a89541ad67":[3,0,0,0,0,3,33], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2":[3,0,0,0,0,3,56], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ab6547a4b98dbf613c6d58c4adb2c6f39":[3,0,0,0,0,3,59], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ab8427163f63809bb60a7c70a7cc58031":[3,0,0,0,0,3,72], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#abef3375ff35a72bd780cbee0b600b26d":[3,0,0,0,0,3,33], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#abef3375ff35a72bd780cbee0b600b26d":[3,0,0,0,0,3,35], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ac1fb657631c5212401259bb35ebf16db":[3,0,0,0,0,3,76], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ac3fbb52d3b241f24548ead2c7bfb96e2":[3,0,0,0,0,3,1], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ac73d1383516e0e139e3863b57731e4de":[3,0,0,0,0,3,48], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ac847865f7370c00ca1e7d0b2ac8ee4e7":[3,0,0,0,0,3,44], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ac73d1383516e0e139e3863b57731e4de":[3,0,0,0,0,3,50], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ac847865f7370c00ca1e7d0b2ac8ee4e7":[3,0,0,0,0,3,46], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ac91d09276099ffcfc8519bc45eb494fa":[3,0,0,0,0,3,15], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ad4ee22cfec00551e1f71ff23962280be":[3,0,0,0,0,3,45], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ad4ee22cfec00551e1f71ff23962280be":[3,0,0,0,0,3,47], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ad602a03643026b0c796cd00684b8cd21":[3,0,0,0,0,3,2], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ad6cbdfbe64d09ec03829144a137bc865":[3,0,0,0,0,3,35], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ad6cbdfbe64d09ec03829144a137bc865":[3,0,0,0,0,3,37], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ad6e9fb85830e2efe20f1d416a4fdcf41":[3,0,0,0,0,3,83], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ad86e1421f2b1cb12c635a35ecb6ee417":[3,0,0,0,0,3,51], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#adc26314bd23b9080ac3c4c2dd6bc5937":[3,0,0,0,0,3,66], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#add27fa17cd6356b49a26a8b6dafb6a6d":[3,0,0,0,0,3,32], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#adf964e787e0666fc5b7d94c2715ee6f5":[3,0,0,0,0,3,60], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ad86e1421f2b1cb12c635a35ecb6ee417":[3,0,0,0,0,3,53], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#adc26314bd23b9080ac3c4c2dd6bc5937":[3,0,0,0,0,3,68], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#add27fa17cd6356b49a26a8b6dafb6a6d":[3,0,0,0,0,3,34], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#adf964e787e0666fc5b7d94c2715ee6f5":[3,0,0,0,0,3,62], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ae19418f14d1dd86e75214eda7644d42f":[3,0,0,0,0,3,78], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ae446e9a32283991f58f8f27dbed083d1":[3,0,0,0,0,3,26], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ae600069dc662d837c36f42802791c7f4":[3,0,0,0,0,3,50], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ae600069dc662d837c36f42802791c7f4":[3,0,0,0,0,3,52], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#ae9f4f5f9cc386f5188a9977145edbe6c":[3,0,0,0,0,3,77], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#aebd9c90a901e6364c94d466425db6e0f":[3,0,0,0,0,3,47], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#aebd9c90a901e6364c94d466425db6e0f":[3,0,0,0,0,3,49], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#aec70a102274869c9ababd7edba733ea7":[3,0,0,0,0,3,23], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#af15c6e8c4f0cef2a29657c26886c9216":[3,0,0,0,0,3,7], -"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#af2d9387a79e320e2902880fee38b392a":[3,0,0,0,0,3,38], +"classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#af2d9387a79e320e2902880fee38b392a":[3,0,0,0,0,3,40], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#afa870f2f9d173e10443a4f04727fe2bc":[3,0,0,0,0,3,69], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#afaf6132b6618d93866ad00598e1b7707":[3,0,0,0,0,3,27], "classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#afe63c2d2cea84e9819e5641e49b01cb0":[3,0,0,0,0,3,79], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html":[3,0,0,0,0,4], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a01027dfc7b8d85f2ba3b5a56ef053191":[3,0,0,0,0,4,60], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a057199b486fe6ce21544cf5d7c10da9c":[3,0,0,0,0,4,2], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a08d9585fe35e2c6265ecd2e49daf87f9":[3,0,0,0,0,4,0], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a0d043e29e065db9618f6df2e43cc1d42":[3,0,0,0,0,4,65], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a1268c592b21853e5c514a3d31222d981":[3,0,0,0,0,4,63], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a160f3f14661044dc28a264683bfb20e6":[3,0,0,0,0,4,59], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a13759dd906ab5564de0a381c3fe25726":[3,0,0,0,0,4,25], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a32ff2ef5a6ee128bf73b64eada6c0d1f":[3,0,0,0,0,4,17], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a3460c3419d165c7d9e8aaee8db3c7f2c":[3,0,0,0,0,4,31], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a396487cb0116b194fbb477a7ccbd26cb":[3,0,0,0,0,4,24], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a3460c3419d165c7d9e8aaee8db3c7f2c":[3,0,0,0,0,4,33], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a396487cb0116b194fbb477a7ccbd26cb":[3,0,0,0,0,4,26], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a3bf7b8132a905ef30735d924f44362ad":[3,0,0,0,0,4,6], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a3c14ec910a3eac02b44688807c9b7511":[3,0,0,0,0,4,35], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a3c14ec910a3eac02b44688807c9b7511":[3,0,0,0,0,4,37], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a3e08545dd29f09a40ff8439ac774ae1e":[3,0,0,0,0,4,22], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a4093b0b9e740b90c09efe8c73c16486a":[3,0,0,0,0,4,9], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a40b1d46a15d1773a58a5ef761662c243":[3,0,0,0,0,4,71], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a428aa4b395deccca18db4322eb0abd39":[3,0,0,0,0,4,56], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a4480a48b8e54cde62fd2cee4ceed3725":[3,0,0,0,0,4,48], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a428aa4b395deccca18db4322eb0abd39":[3,0,0,0,0,4,58], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a4480a48b8e54cde62fd2cee4ceed3725":[3,0,0,0,0,4,50], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a4c211d0ac077aecdb3b48d6a00d07542":[3,0,0,0,0,4,18], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a4e12aaa9316a7d48c017ee437106d2bd":[3,0,0,0,0,4,13], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a5037b058e4f8ef02a776d870b10d379a":[3,0,0,0,0,4,70], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a59c9bc1338196095a028b2870dcfb61d":[3,0,0,0,0,4,49], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a59c9bc1338196095a028b2870dcfb61d":[3,0,0,0,0,4,51], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a5d666e9bf16ae27ba9cb48b1f80d68d0":[3,0,0,0,0,4,5], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a5ded02c48545c61edf4cdaeaffb7ecef":[3,0,0,0,0,4,15], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a6aa861f1403424bf5768d6dd25da402f":[3,0,0,0,0,4,36], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a6de014bf9d16737f3b14b61d6eea413d":[3,0,0,0,0,4,43], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a6e4524b6bd5de76631bcc7ab68bab7bd":[3,0,0,0,0,4,40], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a6aa861f1403424bf5768d6dd25da402f":[3,0,0,0,0,4,38], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a6de014bf9d16737f3b14b61d6eea413d":[3,0,0,0,0,4,45], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a6e4524b6bd5de76631bcc7ab68bab7bd":[3,0,0,0,0,4,42], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a70998344e2234961c5ad64491d042ff8":[3,0,0,0,0,4,21], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a72da822cb2e7c406aaa40be0f44b16fa":[3,0,0,0,0,4,37], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a75bedfc2b14073a20ac359edc29f9cc9":[3,0,0,0,0,4,34], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a75d78e5591cafbc68e8ba4e2b2deffa9":[3,0,0,0,0,4,28], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a7d1fa70986dc1edea222e17fbabc6425":[3,0,0,0,0,4,51], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a72da822cb2e7c406aaa40be0f44b16fa":[3,0,0,0,0,4,39], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a75bedfc2b14073a20ac359edc29f9cc9":[3,0,0,0,0,4,36], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a75d78e5591cafbc68e8ba4e2b2deffa9":[3,0,0,0,0,4,30], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a7d1fa70986dc1edea222e17fbabc6425":[3,0,0,0,0,4,53], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a7fd06e6591d6905b97cf940d5b785054":[3,0,0,0,0,4,10], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a80613b31d11b8d52ba87438883983365":[3,0,0,0,0,4,8], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a81b36f2dcb205e049f3c3781c7973b6e":[3,0,0,0,0,4,33], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a81b36f2dcb205e049f3c3781c7973b6e":[3,0,0,0,0,4,35], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a830f0cc285b5d869cb598b1a62f56504":[3,0,0,0,0,4,11], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a8581a32e1ed27a84046bc5cd9a248392":[3,0,0,0,0,4,46], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a8581a32e1ed27a84046bc5cd9a248392":[3,0,0,0,0,4,48], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a8890b6a6046fb562f9f0ab943b79dfb4":[3,0,0,0,0,4,66], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a8d3193d192d5de93d3ea781b93ea398b":[3,0,0,0,0,4,74], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a8d4b2f3b095a80e651c18143246ee4e9":[3,0,0,0,0,4,30], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a8f008c58eacfba8efdb2f4ec88322fb9":[3,0,0,0,0,4,52], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a8f2d63f049dcaa225a1d0ef686eb8864":[3,0,0,0,0,4,55], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a8d4b2f3b095a80e651c18143246ee4e9":[3,0,0,0,0,4,32], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a8f008c58eacfba8efdb2f4ec88322fb9":[3,0,0,0,0,4,54], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a8f2d63f049dcaa225a1d0ef686eb8864":[3,0,0,0,0,4,57], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a94e4f4f1c76498114751489d44a34b5c":[3,0,0,0,0,4,24], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a9891e3b9ce82f13c3e8b5dad64ce89d2":[3,0,0,0,0,4,72], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aa55c60a9500905b9cf580764ee22e056":[3,0,0,0,0,4,3], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aa6118e53c41add8d4112d9ebeddd9d14":[3,0,0,0,0,4,57], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aa8de6675205db68de70bf9075a6c649f":[3,0,0,0,0,4,54], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aa6118e53c41add8d4112d9ebeddd9d14":[3,0,0,0,0,4,59], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aa8de6675205db68de70bf9075a6c649f":[3,0,0,0,0,4,56], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aab870fe5fa041af29e2d85a5c292077f":[3,0,0,0,0,4,62], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ab317ddd32e1ba126c647b6a89541ad67":[3,0,0,0,0,4,25], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2":[3,0,0,0,0,4,47], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ab6547a4b98dbf613c6d58c4adb2c6f39":[3,0,0,0,0,4,50], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ab317ddd32e1ba126c647b6a89541ad67":[3,0,0,0,0,4,27], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2":[3,0,0,0,0,4,49], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ab6547a4b98dbf613c6d58c4adb2c6f39":[3,0,0,0,0,4,52], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ab8427163f63809bb60a7c70a7cc58031":[3,0,0,0,0,4,64], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#abd5d99c8f745a162938e9cbc80a95f88":[3,0,0,0,0,4,19], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#abef3375ff35a72bd780cbee0b600b26d":[3,0,0,0,0,4,27] +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#abef3375ff35a72bd780cbee0b600b26d":[3,0,0,0,0,4,29] }; diff --git a/navtreeindex1.js b/navtreeindex1.js index dd6ce5b9..051495c6 100644 --- a/navtreeindex1.js +++ b/navtreeindex1.js @@ -1,27 +1,27 @@ var NAVTREEINDEX1 = { "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ac1fb657631c5212401259bb35ebf16db":[3,0,0,0,0,4,67], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ac73d1383516e0e139e3863b57731e4de":[3,0,0,0,0,4,42], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ac73d1383516e0e139e3863b57731e4de":[3,0,0,0,0,4,44], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ac7e2ebc0391fec150878a8149dc07523":[3,0,0,0,0,4,16], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ac847865f7370c00ca1e7d0b2ac8ee4e7":[3,0,0,0,0,4,38], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ac847865f7370c00ca1e7d0b2ac8ee4e7":[3,0,0,0,0,4,40], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#acf40c6b9db51b422bb1a0adb8eeea9a1":[3,0,0,0,0,4,1], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ad45d22308d9fe21e70f619c53f053576":[3,0,0,0,0,4,7], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ad4ee22cfec00551e1f71ff23962280be":[3,0,0,0,0,4,39], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ad6cbdfbe64d09ec03829144a137bc865":[3,0,0,0,0,4,29], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ad4ee22cfec00551e1f71ff23962280be":[3,0,0,0,0,4,41], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ad6cbdfbe64d09ec03829144a137bc865":[3,0,0,0,0,4,31], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ad6e9fb85830e2efe20f1d416a4fdcf41":[3,0,0,0,0,4,73], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ad78698b438178fdc5e3d5305e188b493":[3,0,0,0,0,4,4], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#adc26314bd23b9080ac3c4c2dd6bc5937":[3,0,0,0,0,4,58], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#add27fa17cd6356b49a26a8b6dafb6a6d":[3,0,0,0,0,4,26], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#adf964e787e0666fc5b7d94c2715ee6f5":[3,0,0,0,0,4,53], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#adc26314bd23b9080ac3c4c2dd6bc5937":[3,0,0,0,0,4,60], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#add27fa17cd6356b49a26a8b6dafb6a6d":[3,0,0,0,0,4,28], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#adf964e787e0666fc5b7d94c2715ee6f5":[3,0,0,0,0,4,55], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ae19418f14d1dd86e75214eda7644d42f":[3,0,0,0,0,4,68], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ae2d1e75105df6d59aa5637a1a68cbf06":[3,0,0,0,0,4,45], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ae2d1e75105df6d59aa5637a1a68cbf06":[3,0,0,0,0,4,47], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ae446e9a32283991f58f8f27dbed083d1":[3,0,0,0,0,4,23], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ae600069dc662d837c36f42802791c7f4":[3,0,0,0,0,4,44], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aebd9c90a901e6364c94d466425db6e0f":[3,0,0,0,0,4,41], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ae600069dc662d837c36f42802791c7f4":[3,0,0,0,0,4,46], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aebd9c90a901e6364c94d466425db6e0f":[3,0,0,0,0,4,43], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aec70a102274869c9ababd7edba733ea7":[3,0,0,0,0,4,20], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aec7858ff1c0b165bc56154903c8beba5":[3,0,0,0,0,4,14], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aeddc69a3cea107c0b4b328736a3618e7":[3,0,0,0,0,4,12], -"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#af2d9387a79e320e2902880fee38b392a":[3,0,0,0,0,4,32], +"classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#af2d9387a79e320e2902880fee38b392a":[3,0,0,0,0,4,34], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#afa870f2f9d173e10443a4f04727fe2bc":[3,0,0,0,0,4,61], "classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#afe63c2d2cea84e9819e5641e49b01cb0":[3,0,0,0,0,4,69], "classboost_1_1afio_1_1v2__xxx_1_1handle.html":[3,0,0,0,0,5], @@ -91,62 +91,62 @@ var NAVTREEINDEX1 = "classboost_1_1afio_1_1v2__xxx_1_1handle.html#aee8d98d7f979e312f5e18dfcebfc6870":[3,0,0,0,0,5,4], "classboost_1_1afio_1_1v2__xxx_1_1handle.html#af2d9387a79e320e2902880fee38b392a":[3,0,0,0,0,5,25], "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html":[3,0,0,0,0,6], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a01027dfc7b8d85f2ba3b5a56ef053191":[3,0,0,0,0,6,51], "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a0d043e29e065db9618f6df2e43cc1d42":[3,0,0,0,0,6,54], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a25060e5cc0f4f9f64f23e9fce121303c":[3,0,0,0,0,6,42], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a13759dd906ab5564de0a381c3fe25726":[3,0,0,0,0,6,22], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a25060e5cc0f4f9f64f23e9fce121303c":[3,0,0,0,0,6,43], "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a26ddc3ff526b58202fcca0184095420f":[3,0,0,0,0,6,10], "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a291852173a487edea1a7d73244f89465":[3,0,0,0,0,6,17], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a3460c3419d165c7d9e8aaee8db3c7f2c":[3,0,0,0,0,6,29], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a3c14ec910a3eac02b44688807c9b7511":[3,0,0,0,0,6,33], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a3460c3419d165c7d9e8aaee8db3c7f2c":[3,0,0,0,0,6,30], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a3c14ec910a3eac02b44688807c9b7511":[3,0,0,0,0,6,34], "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a3e08545dd29f09a40ff8439ac774ae1e":[3,0,0,0,0,6,20], "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a4423c3eec1de559b945b3e98bcd7a815":[3,0,0,0,0,6,15], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a4480a48b8e54cde62fd2cee4ceed3725":[3,0,0,0,0,6,45], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a461355ae526806b338fd2eaadc564a43":[3,0,0,0,0,6,43], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a4480a48b8e54cde62fd2cee4ceed3725":[3,0,0,0,0,6,46], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a461355ae526806b338fd2eaadc564a43":[3,0,0,0,0,6,44], "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a4a0d8ccaa36af6e7599f46555167fc1b":[3,0,0,0,0,6,13], "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a5037b058e4f8ef02a776d870b10d379a":[3,0,0,0,0,6,58], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a59c9bc1338196095a028b2870dcfb61d":[3,0,0,0,0,6,46], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a651ff10099e7522df784507aca8b8f0f":[3,0,0,0,0,6,23], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a59c9bc1338196095a028b2870dcfb61d":[3,0,0,0,0,6,47], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a651ff10099e7522df784507aca8b8f0f":[3,0,0,0,0,6,24], "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a692ba33b1e443510a791ff43f37d73cd":[3,0,0,0,0,6,7], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a6aa861f1403424bf5768d6dd25da402f":[3,0,0,0,0,6,34], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a6de014bf9d16737f3b14b61d6eea413d":[3,0,0,0,0,6,40], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a6aa861f1403424bf5768d6dd25da402f":[3,0,0,0,0,6,35], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a6de014bf9d16737f3b14b61d6eea413d":[3,0,0,0,0,6,41], "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a70998344e2234961c5ad64491d042ff8":[3,0,0,0,0,6,19], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a72da822cb2e7c406aaa40be0f44b16fa":[3,0,0,0,0,6,35], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a72da822cb2e7c406aaa40be0f44b16fa":[3,0,0,0,0,6,36], "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a75ac920cfe0a1596f3f68b7874e6255b":[3,0,0,0,0,6,5], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a75bedfc2b14073a20ac359edc29f9cc9":[3,0,0,0,0,6,32], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a75d78e5591cafbc68e8ba4e2b2deffa9":[3,0,0,0,0,6,26], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a7d1fa70986dc1edea222e17fbabc6425":[3,0,0,0,0,6,47], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a75bedfc2b14073a20ac359edc29f9cc9":[3,0,0,0,0,6,33], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a75d78e5591cafbc68e8ba4e2b2deffa9":[3,0,0,0,0,6,27], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a7d1fa70986dc1edea222e17fbabc6425":[3,0,0,0,0,6,48], "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a811166f987d82fcd3c85c6aa0b9b4f34":[3,0,0,0,0,6,3], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a81b36f2dcb205e049f3c3781c7973b6e":[3,0,0,0,0,6,31], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a81b36f2dcb205e049f3c3781c7973b6e":[3,0,0,0,0,6,32], "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a8890b6a6046fb562f9f0ab943b79dfb4":[3,0,0,0,0,6,55], "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a8d3193d192d5de93d3ea781b93ea398b":[3,0,0,0,0,6,59], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a8d4b2f3b095a80e651c18143246ee4e9":[3,0,0,0,0,6,28], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a8d4b2f3b095a80e651c18143246ee4e9":[3,0,0,0,0,6,29], "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a8d711d76185dedd14856b8653455b8f2":[3,0,0,0,0,6,11], "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a9085d19b744d1330eafa51fffc49e104":[3,0,0,0,0,6,4], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a95d26fe35f85d81382d903224660084d":[3,0,0,0,0,6,22], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aa8de6675205db68de70bf9075a6c649f":[3,0,0,0,0,6,49], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a95d26fe35f85d81382d903224660084d":[3,0,0,0,0,6,23], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aa8de6675205db68de70bf9075a6c649f":[3,0,0,0,0,6,50], "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aab870fe5fa041af29e2d85a5c292077f":[3,0,0,0,0,6,52], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2":[3,0,0,0,0,6,44], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2":[3,0,0,0,0,6,45], "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab6f198784e9982f3656a9651463621e0":[3,0,0,0,0,6,18], "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#abc6c7bb2118838483cf63eb004cef5ef":[3,0,0,0,0,6,9], "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#abdfb4dd68b3ad7532ad4485a4736cfac":[3,0,0,0,0,6,16], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#abef3375ff35a72bd780cbee0b600b26d":[3,0,0,0,0,6,25], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#abef3375ff35a72bd780cbee0b600b26d":[3,0,0,0,0,6,26], "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ac07efa5ef3ce79d7fcd784f55a0d86e4":[3,0,0,0,0,6,8], "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ac1fb657631c5212401259bb35ebf16db":[3,0,0,0,0,6,56], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ac73d1383516e0e139e3863b57731e4de":[3,0,0,0,0,6,39], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ac847865f7370c00ca1e7d0b2ac8ee4e7":[3,0,0,0,0,6,36], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ac73d1383516e0e139e3863b57731e4de":[3,0,0,0,0,6,40], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ac847865f7370c00ca1e7d0b2ac8ee4e7":[3,0,0,0,0,6,37], "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#acb372c2075980a97874557859a62f5f7":[3,0,0,0,0,6,53], "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#acbb752522c90f5e4596b8a4f07e2fa80":[3,0,0,0,0,6,6], "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ace66ef9d4b55ad11d02af26814069d94":[3,0,0,0,0,6,14], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ad4ee22cfec00551e1f71ff23962280be":[3,0,0,0,0,6,37], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ad6cbdfbe64d09ec03829144a137bc865":[3,0,0,0,0,6,27], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#adc26314bd23b9080ac3c4c2dd6bc5937":[3,0,0,0,0,6,50], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#add27fa17cd6356b49a26a8b6dafb6a6d":[3,0,0,0,0,6,24], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#adf964e787e0666fc5b7d94c2715ee6f5":[3,0,0,0,0,6,48], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ad4ee22cfec00551e1f71ff23962280be":[3,0,0,0,0,6,38], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ad6cbdfbe64d09ec03829144a137bc865":[3,0,0,0,0,6,28], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#adc26314bd23b9080ac3c4c2dd6bc5937":[3,0,0,0,0,6,51], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#add27fa17cd6356b49a26a8b6dafb6a6d":[3,0,0,0,0,6,25], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#adf964e787e0666fc5b7d94c2715ee6f5":[3,0,0,0,0,6,49], "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ae19418f14d1dd86e75214eda7644d42f":[3,0,0,0,0,6,57], "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ae446e9a32283991f58f8f27dbed083d1":[3,0,0,0,0,6,21], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ae600069dc662d837c36f42802791c7f4":[3,0,0,0,0,6,41], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f":[3,0,0,0,0,6,38], -"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#af2d9387a79e320e2902880fee38b392a":[3,0,0,0,0,6,30], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ae600069dc662d837c36f42802791c7f4":[3,0,0,0,0,6,42], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#aebd9c90a901e6364c94d466425db6e0f":[3,0,0,0,0,6,39], +"classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#af2d9387a79e320e2902880fee38b392a":[3,0,0,0,0,6,31], "classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#afb890bb5d6dfb19825e79261277d6bf5":[3,0,0,0,0,6,12], "classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html":[3,0,0,0,0,6,0], "classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#a0595c2e2e12d021b806963d01824322b":[3,0,0,0,0,6,0,6], @@ -191,63 +191,63 @@ var NAVTREEINDEX1 = "classboost_1_1afio_1_1v2__xxx_1_1io__service.html#ae401b78f109f594d6f1c5fc2281ff8f3":[3,0,0,0,0,7,19], "classboost_1_1afio_1_1v2__xxx_1_1io__service.html#ae7896b55798ada81d427f240e60f4a7e":[3,0,0,0,0,7,13], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html":[3,0,0,0,0,9], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a01027dfc7b8d85f2ba3b5a56ef053191":[3,0,0,0,0,9,59], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a03ca3f1cf96bae5be137227e64c1e78b":[3,0,0,0,0,9,66], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a0d043e29e065db9618f6df2e43cc1d42":[3,0,0,0,0,9,62], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a13759dd906ab5564de0a381c3fe25726":[3,0,0,0,0,9,23], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a14282152f2d93ca24873a7a9ede58d7e":[3,0,0,0,0,9,6], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a172fb6584e4e7ed53e5487604027a824":[3,0,0,0,0,9,53], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a1c4d9bcca251f705ccbfacc53aa20f99":[3,0,0,0,0,9,0], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a2bfe92df14ea41912f362558adcf066c":[3,0,0,0,0,9,14], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a25780704d766521da460d33b72cec76e":[3,0,0,0,0,9,50], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a2bfe92df14ea41912f362558adcf066c":[3,0,0,0,0,9,15], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a2c61575fe222c227d6d8db0d2c67c4ec":[3,0,0,0,0,9,11], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a31c50127e7255b7dc99eab306a225298":[3,0,0,0,0,9,18], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a32b72e90696ec29152c8fdd10c4689c9":[3,0,0,0,0,9,8], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a3460c3419d165c7d9e8aaee8db3c7f2c":[3,0,0,0,0,9,31], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a3460c3419d165c7d9e8aaee8db3c7f2c":[3,0,0,0,0,9,33], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a3aa4bd2308f8f7072e3417b7fbb2ff58":[3,0,0,0,0,9,67], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a3c14ec910a3eac02b44688807c9b7511":[3,0,0,0,0,9,35], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a3cb9350601a177da333304ef5930cbab":[3,0,0,0,0,9,25], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a3c14ec910a3eac02b44688807c9b7511":[3,0,0,0,0,9,37], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a3cb9350601a177da333304ef5930cbab":[3,0,0,0,0,9,27], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a3e08545dd29f09a40ff8439ac774ae1e":[3,0,0,0,0,9,20], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a4480a48b8e54cde62fd2cee4ceed3725":[3,0,0,0,0,9,50], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a461355ae526806b338fd2eaadc564a43":[3,0,0,0,0,9,47], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a4480a48b8e54cde62fd2cee4ceed3725":[3,0,0,0,0,9,52], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a461355ae526806b338fd2eaadc564a43":[3,0,0,0,0,9,49], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a5037b058e4f8ef02a776d870b10d379a":[3,0,0,0,0,9,69], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a51b43d88a271ed6f067cbe1d86687292":[3,0,0,0,0,9,4], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a5982ab4fc54347e01fed95ad44d948c6":[3,0,0,0,0,9,40], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a5b832e5045ae54db8561133763837a47":[3,0,0,0,0,9,48], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a5d37d5ce48ecb9c77d16ec5c0b76a10c":[3,0,0,0,0,9,58], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a5982ab4fc54347e01fed95ad44d948c6":[3,0,0,0,0,9,42], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a61355c5c8b3a05fe120cf742d19c4846":[3,0,0,0,0,9,71], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a6a942f41e85fb2e65e6376dc2e348497":[3,0,0,0,0,9,23], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a6aa861f1403424bf5768d6dd25da402f":[3,0,0,0,0,9,36], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a6de014bf9d16737f3b14b61d6eea413d":[3,0,0,0,0,9,43], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a6aa861f1403424bf5768d6dd25da402f":[3,0,0,0,0,9,38], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a6de014bf9d16737f3b14b61d6eea413d":[3,0,0,0,0,9,45], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a6eb625e6c6364e6669ebbf66c0b35ade":[3,0,0,0,0,9,10], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a70998344e2234961c5ad64491d042ff8":[3,0,0,0,0,9,19], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a72da822cb2e7c406aaa40be0f44b16fa":[3,0,0,0,0,9,37], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a740ebf7b850bfa5e5484e5e54341ff1f":[3,0,0,0,0,9,57], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a72da822cb2e7c406aaa40be0f44b16fa":[3,0,0,0,0,9,39], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a740ebf7b850bfa5e5484e5e54341ff1f":[3,0,0,0,0,9,59], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a7437f115d61376fc1064fef51eb3abf8":[3,0,0,0,0,9,12], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a75bedfc2b14073a20ac359edc29f9cc9":[3,0,0,0,0,9,34], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a75d78e5591cafbc68e8ba4e2b2deffa9":[3,0,0,0,0,9,28], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a75bedfc2b14073a20ac359edc29f9cc9":[3,0,0,0,0,9,36], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a75d78e5591cafbc68e8ba4e2b2deffa9":[3,0,0,0,0,9,30], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a7ad4f68e9a642f68369977cbe2d5195e":[3,0,0,0,0,9,9], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a7d1fa70986dc1edea222e17fbabc6425":[3,0,0,0,0,9,52], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a81b36f2dcb205e049f3c3781c7973b6e":[3,0,0,0,0,9,33], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a7d1fa70986dc1edea222e17fbabc6425":[3,0,0,0,0,9,54], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a81b36f2dcb205e049f3c3781c7973b6e":[3,0,0,0,0,9,35], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a856c6f55f486070b67e210065000454c":[3,0,0,0,0,9,17], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a8890b6a6046fb562f9f0ab943b79dfb4":[3,0,0,0,0,9,64], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a89f5587e480916c3d27428ea39a6c768":[3,0,0,0,0,9,53], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a89f5587e480916c3d27428ea39a6c768":[3,0,0,0,0,9,55], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a8ac242a40a18d44d1d79f470a019942b":[3,0,0,0,0,9,2], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a8d3193d192d5de93d3ea781b93ea398b":[3,0,0,0,0,9,73], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a8d4b2f3b095a80e651c18143246ee4e9":[3,0,0,0,0,9,30], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a95d26fe35f85d81382d903224660084d":[3,0,0,0,0,9,22], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a8d4b2f3b095a80e651c18143246ee4e9":[3,0,0,0,0,9,32], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a95d26fe35f85d81382d903224660084d":[3,0,0,0,0,9,24], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a973be6818c829b35c10441885b965a27":[3,0,0,0,0,9,25], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#aa28496a0b1cb81f567bbaf09ed7b195e":[3,0,0,0,0,9,70], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#aa37d709995bc671b3ca267ee5b821732":[3,0,0,0,0,9,45], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#aa37d709995bc671b3ca267ee5b821732":[3,0,0,0,0,9,47], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#aa638bb94fce9ca72cbbb78255ec5595b":[3,0,0,0,0,9,5], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#aa8de6675205db68de70bf9075a6c649f":[3,0,0,0,0,9,55], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#aa8de6675205db68de70bf9075a6c649f":[3,0,0,0,0,9,57], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#aa9a6e741e1774a9dffcf4ff5b1795b89":[3,0,0,0,0,9,3], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#aab870fe5fa041af29e2d85a5c292077f":[3,0,0,0,0,9,60], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2":[3,0,0,0,0,9,49], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ab11e484d01157158aaca7160bb1720ce":[3,0,0,0,0,9,63], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2":[3,0,0,0,0,9,51], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ab73f13fe2628fff2cad7d2f559b08135":[3,0,0,0,0,9,22], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#aba89dfd920d015199f25a07d53ccb991":[3,0,0,0,0,9,7], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#abef3375ff35a72bd780cbee0b600b26d":[3,0,0,0,0,9,27], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#abef3375ff35a72bd780cbee0b600b26d":[3,0,0,0,0,9,29], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ac1fb657631c5212401259bb35ebf16db":[3,0,0,0,0,9,65], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ac37b3a6960610b73538d3a63194f1106":[3,0,0,0,0,9,1], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ac73d1383516e0e139e3863b57731e4de":[3,0,0,0,0,9,42], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ac847865f7370c00ca1e7d0b2ac8ee4e7":[3,0,0,0,0,9,38], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ac73d1383516e0e139e3863b57731e4de":[3,0,0,0,0,9,44], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ac847865f7370c00ca1e7d0b2ac8ee4e7":[3,0,0,0,0,9,40], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#acb372c2075980a97874557859a62f5f7":[3,0,0,0,0,9,61], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ace66ef9d4b55ad11d02af26814069d94":[3,0,0,0,0,9,13], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ad191467425f5966dc4a42f365bf13dc7":[3,0,0,0,0,9,51], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ad4ee22cfec00551e1f71ff23962280be":[3,0,0,0,0,9,39] +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ace66ef9d4b55ad11d02af26814069d94":[3,0,0,0,0,9,13] }; diff --git a/navtreeindex2.js b/navtreeindex2.js index 9945ec52..c0f8a10e 100644 --- a/navtreeindex2.js +++ b/navtreeindex2.js @@ -1,19 +1,19 @@ var NAVTREEINDEX2 = { -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ad6157050182facd9bb5c545b8fe487e6":[3,0,0,0,0,9,63], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ad6cbdfbe64d09ec03829144a137bc865":[3,0,0,0,0,9,29], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#adc26314bd23b9080ac3c4c2dd6bc5937":[3,0,0,0,0,9,56], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#add27fa17cd6356b49a26a8b6dafb6a6d":[3,0,0,0,0,9,26], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ad4ee22cfec00551e1f71ff23962280be":[3,0,0,0,0,9,41], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ad6cbdfbe64d09ec03829144a137bc865":[3,0,0,0,0,9,31], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#adc26314bd23b9080ac3c4c2dd6bc5937":[3,0,0,0,0,9,58], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#add27fa17cd6356b49a26a8b6dafb6a6d":[3,0,0,0,0,9,28], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ade7ec03b740026529e8f7ad53e1bad5b":[3,0,0,0,0,9,16], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#adf964e787e0666fc5b7d94c2715ee6f5":[3,0,0,0,0,9,54], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ae00a766df04a5d546cfa7c5432eea14a":[3,0,0,0,0,9,15], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ae07b3e5449e9116d733ef449b6ac0713":[3,0,0,0,0,9,46], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#adf964e787e0666fc5b7d94c2715ee6f5":[3,0,0,0,0,9,56], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ae00a766df04a5d546cfa7c5432eea14a":[3,0,0,0,0,9,14], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ae07b3e5449e9116d733ef449b6ac0713":[3,0,0,0,0,9,48], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ae19418f14d1dd86e75214eda7644d42f":[3,0,0,0,0,9,68], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ae446e9a32283991f58f8f27dbed083d1":[3,0,0,0,0,9,21], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ae600069dc662d837c36f42802791c7f4":[3,0,0,0,0,9,44], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#aebd9c90a901e6364c94d466425db6e0f":[3,0,0,0,0,9,41], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#aefeb5e82a3073b18f50b3047c89752ce":[3,0,0,0,0,9,24], -"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#af2d9387a79e320e2902880fee38b392a":[3,0,0,0,0,9,32], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ae600069dc662d837c36f42802791c7f4":[3,0,0,0,0,9,46], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#aebd9c90a901e6364c94d466425db6e0f":[3,0,0,0,0,9,43], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#aefeb5e82a3073b18f50b3047c89752ce":[3,0,0,0,0,9,26], +"classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#af2d9387a79e320e2902880fee38b392a":[3,0,0,0,0,9,34], "classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#af38b22afde040c08f397af289d629041":[3,0,0,0,0,9,72], "classboost_1_1afio_1_1v2__xxx_1_1section__handle.html":[3,0,0,0,0,8], "classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a026bffb803b3118d74bf97f79140c2d7":[3,0,0,0,0,8,2], diff --git a/navtreeindex3.js b/navtreeindex3.js index 9c497bfd..b619bf1a 100644 --- a/navtreeindex3.js +++ b/navtreeindex3.js @@ -51,8 +51,8 @@ var NAVTREEINDEX3 = "namespaceboost_1_1afio_1_1v2__xxx.html":[2,0,0,0,0], "namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm.html":[3,0,0,0,0,0], "namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm.html":[2,0,0,0,0,0], -"namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.html":[2,0,0,0,0,0,0], "namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.html":[3,0,0,0,0,0,0], +"namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.html":[2,0,0,0,0,0,0], "namespaceboost_1_1afio_1_1v2__xxx_1_1storage__profile.html":[3,0,0,0,0,1], "namespaceboost_1_1afio_1_1v2__xxx_1_1storage__profile.html":[2,0,0,0,0,1], "namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html":[2,0,0,0,0,2], diff --git a/navtreeindex4.js b/navtreeindex4.js index 40c60573..db969a82 100644 --- a/navtreeindex4.js +++ b/navtreeindex4.js @@ -123,8 +123,8 @@ var NAVTREEINDEX4 = "version_8hpp.html#a57ccd4188902593e71fa3a397236fec5":[4,0,0,0,0,2,5], "version_8hpp.html#a7c3b7ac71103a427e96797dd72a344ac":[4,0,0,0,0,2,0], "version_8hpp.html#a9c4fb3ff02ff3a503da1976425995e3b":[4,0,0,0,0,2,4], -"version_8hpp.html#af40cb131effa2c3e80b9d9251724d7aa":[4,0,0,0,0,2,1], "version_8hpp.html#af40cb131effa2c3e80b9d9251724d7aa":[4,0,0,0,0,2,2], +"version_8hpp.html#af40cb131effa2c3e80b9d9251724d7aa":[4,0,0,0,0,2,1], "version_8hpp.html#ga57b799d93636bd46b7cc54899f6d24dd":[4,0,0,0,0,2,8], "version_8hpp.html#ga6630f7026f9cd8ef19c13f58c719323a":[4,0,0,0,0,2,6], "version_8hpp.html#ga6f2f297d6873b445e0df91bde6854cdd":[4,0,0,0,0,2,9], diff --git a/search/all_62.js b/search/all_62.js index b09ac11a..077e6fb5 100644 --- a/search/all_62.js +++ b/search/all_62.js @@ -4,6 +4,7 @@ var searchData= ['algorithm',['algorithm',['../namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm.html',1,'boost::afio::v2_xxx']]], ['backing',['backing',['../classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a60302d5e901f36404d61244e2f0ef90d',1,'boost::afio::v2_xxx::section_handle']]], ['backing_5fnative_5fhandle',['backing_native_handle',['../classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a78fc51ac881ae0fc42327de1f9604ee7',1,'boost::afio::v2_xxx::section_handle']]], + ['barrier',['barrier',['../classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a13759dd906ab5564de0a381c3fe25726',1,'boost::afio::v2_xxx::io_handle']]], ['base_2ehpp',['base.hpp',['../base_8hpp.html',1,'']]], ['begin',['begin',['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#aff13684e4ab8c811e63808b66901209c',1,'boost::afio::v2_xxx::storage_profile::storage_profile::begin() noexcept'],['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a41eaa3d97abd88484db04b0fed1d7cd3',1,'boost::afio::v2_xxx::storage_profile::storage_profile::begin() const noexcept']]], ['boost',['boost',['../namespaceboost.html',1,'']]], @@ -38,8 +39,8 @@ var searchData= ['buffer_5ftype',['buffer_type',['../classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a811166f987d82fcd3c85c6aa0b9b4f34',1,'boost::afio::v2_xxx::io_handle::buffer_type()'],['../classboost_1_1afio_1_1v2__xxx_1_1io__service.html#a4701604b3fb983001abdbd016fa104e5',1,'boost::afio::v2_xxx::io_service::buffer_type()']]], ['buffers_5ftype',['buffers_type',['../classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a9085d19b744d1330eafa51fffc49e104',1,'boost::afio::v2_xxx::io_handle::buffers_type()'],['../classboost_1_1afio_1_1v2__xxx_1_1io__service.html#a43fb728d79e18b7026a94faf16dd6dcd',1,'boost::afio::v2_xxx::io_service::buffers_type()']]], ['byte_5flock_5finsanity',['byte_lock_insanity',['../structboost_1_1afio_1_1v2__xxx_1_1handle_1_1flag__base.html#a341bd60b4fd9aa6a6737f40e52d22458a443ebb0a0ef2df5fca9d12cf73f726ee',1,'boost::afio::v2_xxx::handle::flag_base']]], - ['byte_5franges',['byte_ranges',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex']]], ['byte_5franges',['byte_ranges',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#ac966cdd44d405cdc1ee1fe4e43690d0b',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges']]], + ['byte_5franges',['byte_ranges',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex']]], ['byte_5franges_2ehpp',['byte_ranges.hpp',['../byte__ranges_8hpp.html',1,'']]], ['bytes_5ftransferred',['bytes_transferred',['../classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html#a1a6bc734614274e0be4d8fcbd2d5ad06',1,'boost::afio::v2_xxx::io_handle::io_result']]], ['shared_5ffs_5fmutex',['shared_fs_mutex',['../namespaceboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex.html',1,'boost::afio::v2_xxx::algorithm']]], diff --git a/search/all_63.js b/search/all_63.js index 54bc6079..84222e09 100644 --- a/search/all_63.js +++ b/search/all_63.js @@ -3,7 +3,7 @@ var searchData= ['caching',['caching',['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527ca',1,'boost::afio::v2_xxx::handle']]], ['clear',['clear',['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item.html#a347eb1ce54dddfe5f1654e6aa58470a2',1,'boost::afio::v2_xxx::storage_profile::item']]], ['clone',['clone',['../classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a146af690967dbe866f3ecf1ebd5358b0',1,'boost::afio::v2_xxx::async_file_handle::clone()'],['../classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a396487cb0116b194fbb477a7ccbd26cb',1,'boost::afio::v2_xxx::file_handle::clone()'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#a95d26fe35f85d81382d903224660084d',1,'boost::afio::v2_xxx::handle::clone()']]], - ['close',['close',['../classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ab317ddd32e1ba126c647b6a89541ad67',1,'boost::afio::v2_xxx::file_handle::close()'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#a651ff10099e7522df784507aca8b8f0f',1,'boost::afio::v2_xxx::handle::close()'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a6a942f41e85fb2e65e6376dc2e348497',1,'boost::afio::v2_xxx::map_handle::close()']]], + ['close',['close',['../classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ab317ddd32e1ba126c647b6a89541ad67',1,'boost::afio::v2_xxx::file_handle::close()'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#a651ff10099e7522df784507aca8b8f0f',1,'boost::afio::v2_xxx::handle::close()'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a973be6818c829b35c10441885b965a27',1,'boost::afio::v2_xxx::map_handle::close()']]], ['commit',['commit',['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#aefeb5e82a3073b18f50b3047c89752ce',1,'boost::afio::v2_xxx::map_handle']]], ['compression',['compression',['../structboost_1_1afio_1_1v2__xxx_1_1statfs__t_1_1f__flags__t.html#a142d606c813354169e0019337d2994a3',1,'boost::afio::v2_xxx::statfs_t::f_flags_t']]], ['configuration_20macros',['Configuration macros',['../group__config.html',1,'']]], diff --git a/search/all_6d.js b/search/all_6d.js index 976de08e..038da43d 100644 --- a/search/all_6d.js +++ b/search/all_6d.js @@ -2,7 +2,7 @@ var searchData= [ ['map',['map',['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a6f0fc242efb1e28078aa13812335df3b',1,'boost::afio::v2_xxx::map_handle']]], ['map_5fhandle',['map_handle',['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html',1,'boost::afio::v2_xxx']]], - ['map_5fhandle',['map_handle',['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a2bfe92df14ea41912f362558adcf066c',1,'boost::afio::v2_xxx::map_handle::map_handle()'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ae00a766df04a5d546cfa7c5432eea14a',1,'boost::afio::v2_xxx::map_handle::map_handle(section_handle *section)'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a856c6f55f486070b67e210065000454c',1,'boost::afio::v2_xxx::map_handle::map_handle(map_handle &&o) noexcept']]], + ['map_5fhandle',['map_handle',['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a2bfe92df14ea41912f362558adcf066c',1,'boost::afio::v2_xxx::map_handle::map_handle()'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a856c6f55f486070b67e210065000454c',1,'boost::afio::v2_xxx::map_handle::map_handle(map_handle &&o) noexcept']]], ['map_5fhandle_2ehpp',['map_handle.hpp',['../map__handle_8hpp.html',1,'']]], ['map_5fto_5fstorage_5ftype',['map_to_storage_type',['../namespaceboost_1_1afio_1_1v2__xxx_1_1storage__profile.html#a2ea36c51799cf6a8216c9d24a775d607',1,'boost::afio::v2_xxx::storage_profile']]], ['max_5fsize',['max_size',['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a7cfd0a293329c63b919c74c63ca7cb6e',1,'boost::afio::v2_xxx::storage_profile::storage_profile']]], diff --git a/search/all_72.js b/search/all_72.js index c486a5a6..bbdfe2e6 100644 --- a/search/all_72.js +++ b/search/all_72.js @@ -5,14 +5,14 @@ var searchData= ['random_5ffill',['random_fill',['../namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html#ac7b89428cdd460548bd9a645a6565df4',1,'boost::afio::v2_xxx::utils']]], ['random_5fstring',['random_string',['../namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html#a051e8deb72941b3460811a1cf5f29915',1,'boost::afio::v2_xxx::utils']]], ['rdonly',['rdonly',['../structboost_1_1afio_1_1v2__xxx_1_1statfs__t_1_1f__flags__t.html#a888a1dcf7397f05e735c80f2e33bcf89',1,'boost::afio::v2_xxx::statfs_t::f_flags_t']]], - ['read',['read',['../structboost_1_1afio_1_1v2__xxx_1_1section__handle_1_1flag__base.html#aadb6d09d6768eb7ef629f3c10aa24b21a9e90016114f8678131fb7547282e6b48',1,'boost::afio::v2_xxx::section_handle::flag_base::read()'],['../classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2',1,'boost::afio::v2_xxx::io_handle::read(io_request< buffers_type > reqs, deadline d=deadline()) noexcept'],['../classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a4480a48b8e54cde62fd2cee4ceed3725',1,'boost::afio::v2_xxx::io_handle::read(extent_type offset, char *data, size_type bytes, deadline d=deadline()) noexcept'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a5b832e5045ae54db8561133763837a47',1,'boost::afio::v2_xxx::map_handle::read()'],['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#afc56522cf4f6d90bd825f7f50bff7432',1,'boost::afio::v2_xxx::storage_profile::storage_profile::read()'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabadaecae13117d6f0584c25a9da6c8f8415e',1,'boost::afio::v2_xxx::handle::read()']]], + ['read',['read',['../structboost_1_1afio_1_1v2__xxx_1_1section__handle_1_1flag__base.html#aadb6d09d6768eb7ef629f3c10aa24b21a9e90016114f8678131fb7547282e6b48',1,'boost::afio::v2_xxx::section_handle::flag_base::read()'],['../classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2',1,'boost::afio::v2_xxx::io_handle::read(io_request< buffers_type > reqs, deadline d=deadline()) noexcept'],['../classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a4480a48b8e54cde62fd2cee4ceed3725',1,'boost::afio::v2_xxx::io_handle::read(extent_type offset, char *data, size_type bytes, deadline d=deadline()) noexcept'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a25780704d766521da460d33b72cec76e',1,'boost::afio::v2_xxx::map_handle::read()'],['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#afc56522cf4f6d90bd825f7f50bff7432',1,'boost::afio::v2_xxx::storage_profile::storage_profile::read()'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabadaecae13117d6f0584c25a9da6c8f8415e',1,'boost::afio::v2_xxx::handle::read()']]], ['readable',['readable',['../structboost_1_1afio_1_1v2__xxx_1_1native__handle__type_1_1disposition__base.html#a3f5231b1a86b8c661b39312f0f4a02f5a3dc019819243ad24fc283879f26e6c5d',1,'boost::afio::v2_xxx::native_handle_type::disposition_base']]], ['reads',['reads',['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527caa0fb9cf5f04f61bb6f1151da57ceb1ca1',1,'boost::afio::v2_xxx::handle']]], ['reads_5fand_5fmetadata',['reads_and_metadata',['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#a81c7de194feaa88684ca9851d0d527caadec4ecca8ae1593f84eea4656599a693',1,'boost::afio::v2_xxx::handle']]], ['rebind',['rebind',['../structboost_1_1afio_1_1v2__xxx_1_1utils_1_1page__allocator_3_01void_01_4_1_1rebind.html',1,'boost::afio::v2_xxx::utils::page_allocator< void >']]], ['rebind',['rebind',['../structboost_1_1afio_1_1v2__xxx_1_1utils_1_1page__allocator_1_1rebind.html',1,'boost::afio::v2_xxx::utils::page_allocator']]], ['reference',['reference',['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a2e1ee29ad902c5ae50d4a6762beeeaa5',1,'boost::afio::v2_xxx::storage_profile::storage_profile']]], - ['release',['release',['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#a59c9bc1338196095a028b2870dcfb61d',1,'boost::afio::v2_xxx::handle::release()'],['../classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#aed27aa9b18e13bd82038b190071aeafd',1,'boost::afio::v2_xxx::io_handle::extent_guard::release()'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ad191467425f5966dc4a42f365bf13dc7',1,'boost::afio::v2_xxx::map_handle::release()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html#a0cf3ef1014c95261a2799bcc055949ae',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entities_guard::release()']]], + ['release',['release',['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#a59c9bc1338196095a028b2870dcfb61d',1,'boost::afio::v2_xxx::handle::release()'],['../classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#aed27aa9b18e13bd82038b190071aeafd',1,'boost::afio::v2_xxx::io_handle::extent_guard::release()'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a172fb6584e4e7ed53e5487604027a824',1,'boost::afio::v2_xxx::map_handle::release()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html#a0cf3ef1014c95261a2799bcc055949ae',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entities_guard::release()']]], ['relink',['relink',['../classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ab6547a4b98dbf613c6d58c4adb2c6f39',1,'boost::afio::v2_xxx::file_handle']]], ['requires_5faligned_5fio',['requires_aligned_io',['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#a7d1fa70986dc1edea222e17fbabc6425',1,'boost::afio::v2_xxx::handle::requires_aligned_io()'],['../structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html#aed2d23f6ffd43b6c300bfe048616474e',1,'boost::afio::v2_xxx::native_handle_type::requires_aligned_io()']]], ['result',['result',['../namespaceboost_1_1afio_1_1v2__xxx.html#ac8d06ecaa9660e7251c1251d88c1305c',1,'boost::afio::v2_xxx']]], diff --git a/search/all_73.js b/search/all_73.js index 7e79daa7..8f025fa0 100644 --- a/search/all_73.js +++ b/search/all_73.js @@ -37,17 +37,16 @@ var searchData= ['st_5ftype',['st_type',['../structboost_1_1afio_1_1v2__xxx_1_1stat__t.html#a04444a83434fdcd57dd8fd3c961856bf',1,'boost::afio::v2_xxx::stat_t']]], ['st_5fuid',['st_uid',['../structboost_1_1afio_1_1v2__xxx_1_1stat__t.html#a2c539706d8c27a6517948e407a33ee60',1,'boost::afio::v2_xxx::stat_t']]], ['stat_2ehpp',['stat.hpp',['../stat_8hpp.html',1,'']]], - ['stat_5ft',['stat_t',['../structboost_1_1afio_1_1v2__xxx_1_1stat__t.html#a91622602f194fc7bc58f49238e7622e6',1,'boost::afio::v2_xxx::stat_t::stat_t() noexcept'],['../structboost_1_1afio_1_1v2__xxx_1_1stat__t.html#a0bfd220474fee07e9ea6a20f426cb6c0',1,'boost::afio::v2_xxx::stat_t::stat_t(std::nullptr_t) noexcept']]], ['stat_5ft',['stat_t',['../structboost_1_1afio_1_1v2__xxx_1_1stat__t.html',1,'boost::afio::v2_xxx']]], + ['stat_5ft',['stat_t',['../structboost_1_1afio_1_1v2__xxx_1_1stat__t.html#a91622602f194fc7bc58f49238e7622e6',1,'boost::afio::v2_xxx::stat_t::stat_t() noexcept'],['../structboost_1_1afio_1_1v2__xxx_1_1stat__t.html#a0bfd220474fee07e9ea6a20f426cb6c0',1,'boost::afio::v2_xxx::stat_t::stat_t(std::nullptr_t) noexcept']]], ['statfs_2ehpp',['statfs.hpp',['../statfs_8hpp.html',1,'']]], - ['statfs_5ft',['statfs_t',['../structboost_1_1afio_1_1v2__xxx_1_1statfs__t.html',1,'boost::afio::v2_xxx']]], ['statfs_5ft',['statfs_t',['../structboost_1_1afio_1_1v2__xxx_1_1statfs__t.html#a95cd6253c6046b469f2f0a8917e75fc9',1,'boost::afio::v2_xxx::statfs_t']]], + ['statfs_5ft',['statfs_t',['../structboost_1_1afio_1_1v2__xxx_1_1statfs__t.html',1,'boost::afio::v2_xxx']]], ['steady',['steady',['../structboost__afio__deadline.html#a6ae7a549b4b836797531e5f9e097d12e',1,'boost_afio_deadline']]], ['storage_5fprofile',['storage_profile',['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html',1,'boost::afio::v2_xxx::storage_profile']]], ['storage_5fprofile_2ehpp',['storage_profile.hpp',['../storage__profile_8hpp.html',1,'']]], ['storage_5ftypes',['storage_types',['../namespaceboost_1_1afio_1_1v2__xxx_1_1storage__profile.html#a43d0087c67bc947f806b0132c43f05f4',1,'boost::afio::v2_xxx::storage_profile']]], ['strip_5fpretty_5ffunction',['strip_pretty_function',['../namespaceboost_1_1afio_1_1v2__xxx.html#aaa526a2f0758c697b243b93ce14bc461',1,'boost::afio::v2_xxx']]], ['swap',['swap',['../classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a9d551befa0fa25a7119c07abc3a7a0e0',1,'boost::afio::v2_xxx::async_file_handle::swap()'],['../classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aa6118e53c41add8d4112d9ebeddd9d14',1,'boost::afio::v2_xxx::file_handle::swap()'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#adc26314bd23b9080ac3c4c2dd6bc5937',1,'boost::afio::v2_xxx::handle::swap()'],['../classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#ae0e0965229c5c6486352867c4284bffe',1,'boost::afio::v2_xxx::section_handle::swap()'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a740ebf7b850bfa5e5484e5e54341ff1f',1,'boost::afio::v2_xxx::map_handle::swap()'],['../structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html#a050a9de29d70566366a679db08969bf6',1,'boost::afio::v2_xxx::native_handle_type::swap()']]], - ['symlink',['symlink',['../structboost_1_1afio_1_1v2__xxx_1_1native__handle__type_1_1disposition__base.html#a3f5231b1a86b8c661b39312f0f4a02f5a58f3f96fa1cafd3605b488394e000d89',1,'boost::afio::v2_xxx::native_handle_type::disposition_base']]], - ['sync',['sync',['../classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a01027dfc7b8d85f2ba3b5a56ef053191',1,'boost::afio::v2_xxx::io_handle']]] + ['symlink',['symlink',['../structboost_1_1afio_1_1v2__xxx_1_1native__handle__type_1_1disposition__base.html#a3f5231b1a86b8c661b39312f0f4a02f5a58f3f96fa1cafd3605b488394e000d89',1,'boost::afio::v2_xxx::native_handle_type::disposition_base']]] ]; diff --git a/search/all_77.js b/search/all_77.js index 38a118c0..e4fcef46 100644 --- a/search/all_77.js +++ b/search/all_77.js @@ -4,5 +4,5 @@ var searchData= ['want_5fbase',['want_base',['../structboost_1_1afio_1_1v2__xxx_1_1statfs__t_1_1want__base.html',1,'boost::afio::v2_xxx::statfs_t']]], ['win_5fdisable_5funlink_5femulation',['win_disable_unlink_emulation',['../structboost_1_1afio_1_1v2__xxx_1_1handle_1_1flag__base.html#a341bd60b4fd9aa6a6737f40e52d22458a5dc8858566b13f916d3cc15986ac175d',1,'boost::afio::v2_xxx::handle::flag_base']]], ['writable',['writable',['../structboost_1_1afio_1_1v2__xxx_1_1native__handle__type_1_1disposition__base.html#a3f5231b1a86b8c661b39312f0f4a02f5a7f3c9880393fc86b9a5c004a597ed4fe',1,'boost::afio::v2_xxx::native_handle_type::disposition_base']]], - ['write',['write',['../structboost_1_1afio_1_1v2__xxx_1_1section__handle_1_1flag__base.html#aadb6d09d6768eb7ef629f3c10aa24b21ad674db212ff8358a30a6d2c105cf0c78',1,'boost::afio::v2_xxx::section_handle::flag_base::write()'],['../classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a8890b6a6046fb562f9f0ab943b79dfb4',1,'boost::afio::v2_xxx::io_handle::write(io_request< const_buffers_type > reqs, deadline d=deadline()) noexcept'],['../classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ac1fb657631c5212401259bb35ebf16db',1,'boost::afio::v2_xxx::io_handle::write(extent_type offset, const char *data, size_type bytes, deadline d=deadline()) noexcept'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ad6157050182facd9bb5c545b8fe487e6',1,'boost::afio::v2_xxx::map_handle::write()'],['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a927515610146e07b149cfe8cb4ccc52f',1,'boost::afio::v2_xxx::storage_profile::storage_profile::write()'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabadaefb2a684e4afb7d55e6147fbe5a332ee',1,'boost::afio::v2_xxx::handle::write()']]] + ['write',['write',['../structboost_1_1afio_1_1v2__xxx_1_1section__handle_1_1flag__base.html#aadb6d09d6768eb7ef629f3c10aa24b21ad674db212ff8358a30a6d2c105cf0c78',1,'boost::afio::v2_xxx::section_handle::flag_base::write()'],['../classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a8890b6a6046fb562f9f0ab943b79dfb4',1,'boost::afio::v2_xxx::io_handle::write(io_request< const_buffers_type > reqs, deadline d=deadline()) noexcept'],['../classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ac1fb657631c5212401259bb35ebf16db',1,'boost::afio::v2_xxx::io_handle::write(extent_type offset, const char *data, size_type bytes, deadline d=deadline()) noexcept'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ab11e484d01157158aaca7160bb1720ce',1,'boost::afio::v2_xxx::map_handle::write()'],['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a927515610146e07b149cfe8cb4ccc52f',1,'boost::afio::v2_xxx::storage_profile::storage_profile::write()'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#acd7f0c039e94c7ad40937fe32a2cabadaefb2a684e4afb7d55e6147fbe5a332ee',1,'boost::afio::v2_xxx::handle::write()']]] ]; diff --git a/search/functions_62.js b/search/functions_62.js index 41052f15..c64fd034 100644 --- a/search/functions_62.js +++ b/search/functions_62.js @@ -2,6 +2,7 @@ var searchData= [ ['backing',['backing',['../classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a60302d5e901f36404d61244e2f0ef90d',1,'boost::afio::v2_xxx::section_handle']]], ['backing_5fnative_5fhandle',['backing_native_handle',['../classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#a78fc51ac881ae0fc42327de1f9604ee7',1,'boost::afio::v2_xxx::section_handle']]], + ['barrier',['barrier',['../classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a13759dd906ab5564de0a381c3fe25726',1,'boost::afio::v2_xxx::io_handle']]], ['begin',['begin',['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#aff13684e4ab8c811e63808b66901209c',1,'boost::afio::v2_xxx::storage_profile::storage_profile::begin() noexcept'],['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a41eaa3d97abd88484db04b0fed1d7cd3',1,'boost::afio::v2_xxx::storage_profile::storage_profile::begin() const noexcept']]], ['byte_5franges',['byte_ranges',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1byte__ranges.html#ac966cdd44d405cdc1ee1fe4e43690d0b',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::byte_ranges']]], ['bytes_5ftransferred',['bytes_transferred',['../classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1io__result.html#a1a6bc734614274e0be4d8fcbd2d5ad06',1,'boost::afio::v2_xxx::io_handle::io_result']]] diff --git a/search/functions_63.js b/search/functions_63.js index 9fcaf5b3..21b0d26a 100644 --- a/search/functions_63.js +++ b/search/functions_63.js @@ -2,6 +2,6 @@ var searchData= [ ['clear',['clear',['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1item.html#a347eb1ce54dddfe5f1654e6aa58470a2',1,'boost::afio::v2_xxx::storage_profile::item']]], ['clone',['clone',['../classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a146af690967dbe866f3ecf1ebd5358b0',1,'boost::afio::v2_xxx::async_file_handle::clone()'],['../classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a396487cb0116b194fbb477a7ccbd26cb',1,'boost::afio::v2_xxx::file_handle::clone()'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#a95d26fe35f85d81382d903224660084d',1,'boost::afio::v2_xxx::handle::clone()']]], - ['close',['close',['../classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ab317ddd32e1ba126c647b6a89541ad67',1,'boost::afio::v2_xxx::file_handle::close()'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#a651ff10099e7522df784507aca8b8f0f',1,'boost::afio::v2_xxx::handle::close()'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a6a942f41e85fb2e65e6376dc2e348497',1,'boost::afio::v2_xxx::map_handle::close()']]], + ['close',['close',['../classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ab317ddd32e1ba126c647b6a89541ad67',1,'boost::afio::v2_xxx::file_handle::close()'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#a651ff10099e7522df784507aca8b8f0f',1,'boost::afio::v2_xxx::handle::close()'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a973be6818c829b35c10441885b965a27',1,'boost::afio::v2_xxx::map_handle::close()']]], ['commit',['commit',['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#aefeb5e82a3073b18f50b3047c89752ce',1,'boost::afio::v2_xxx::map_handle']]] ]; diff --git a/search/functions_6d.js b/search/functions_6d.js index 057bdd7a..4d17e1a7 100644 --- a/search/functions_6d.js +++ b/search/functions_6d.js @@ -1,7 +1,7 @@ var searchData= [ ['map',['map',['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a6f0fc242efb1e28078aa13812335df3b',1,'boost::afio::v2_xxx::map_handle']]], - ['map_5fhandle',['map_handle',['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a2bfe92df14ea41912f362558adcf066c',1,'boost::afio::v2_xxx::map_handle::map_handle()'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ae00a766df04a5d546cfa7c5432eea14a',1,'boost::afio::v2_xxx::map_handle::map_handle(section_handle *section)'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a856c6f55f486070b67e210065000454c',1,'boost::afio::v2_xxx::map_handle::map_handle(map_handle &&o) noexcept']]], + ['map_5fhandle',['map_handle',['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a2bfe92df14ea41912f362558adcf066c',1,'boost::afio::v2_xxx::map_handle::map_handle()'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a856c6f55f486070b67e210065000454c',1,'boost::afio::v2_xxx::map_handle::map_handle(map_handle &&o) noexcept']]], ['map_5fto_5fstorage_5ftype',['map_to_storage_type',['../namespaceboost_1_1afio_1_1v2__xxx_1_1storage__profile.html#a2ea36c51799cf6a8216c9d24a775d607',1,'boost::afio::v2_xxx::storage_profile']]], ['max_5fsize',['max_size',['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a7cfd0a293329c63b919c74c63ca7cb6e',1,'boost::afio::v2_xxx::storage_profile::storage_profile']]], ['memory_5fmap',['memory_map',['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1memory__map.html#a016539453fa3746be02d15830654e79b',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::memory_map']]] diff --git a/search/functions_72.js b/search/functions_72.js index 6b287a24..c7aa3195 100644 --- a/search/functions_72.js +++ b/search/functions_72.js @@ -4,8 +4,8 @@ var searchData= ['random_5ffile',['random_file',['../classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#a603b0827a9ae139b8f5806b1297fa5f0',1,'boost::afio::v2_xxx::file_handle']]], ['random_5ffill',['random_fill',['../namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html#ac7b89428cdd460548bd9a645a6565df4',1,'boost::afio::v2_xxx::utils']]], ['random_5fstring',['random_string',['../namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html#a051e8deb72941b3460811a1cf5f29915',1,'boost::afio::v2_xxx::utils']]], - ['read',['read',['../classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2',1,'boost::afio::v2_xxx::io_handle::read(io_request< buffers_type > reqs, deadline d=deadline()) noexcept'],['../classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a4480a48b8e54cde62fd2cee4ceed3725',1,'boost::afio::v2_xxx::io_handle::read(extent_type offset, char *data, size_type bytes, deadline d=deadline()) noexcept'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a5b832e5045ae54db8561133763837a47',1,'boost::afio::v2_xxx::map_handle::read()'],['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#afc56522cf4f6d90bd825f7f50bff7432',1,'boost::afio::v2_xxx::storage_profile::storage_profile::read()']]], - ['release',['release',['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#a59c9bc1338196095a028b2870dcfb61d',1,'boost::afio::v2_xxx::handle::release()'],['../classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#aed27aa9b18e13bd82038b190071aeafd',1,'boost::afio::v2_xxx::io_handle::extent_guard::release()'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ad191467425f5966dc4a42f365bf13dc7',1,'boost::afio::v2_xxx::map_handle::release()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html#a0cf3ef1014c95261a2799bcc055949ae',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entities_guard::release()']]], + ['read',['read',['../classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ab371d8427aeb4bd0ca5f8a39a98ea5a2',1,'boost::afio::v2_xxx::io_handle::read(io_request< buffers_type > reqs, deadline d=deadline()) noexcept'],['../classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a4480a48b8e54cde62fd2cee4ceed3725',1,'boost::afio::v2_xxx::io_handle::read(extent_type offset, char *data, size_type bytes, deadline d=deadline()) noexcept'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a25780704d766521da460d33b72cec76e',1,'boost::afio::v2_xxx::map_handle::read()'],['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#afc56522cf4f6d90bd825f7f50bff7432',1,'boost::afio::v2_xxx::storage_profile::storage_profile::read()']]], + ['release',['release',['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#a59c9bc1338196095a028b2870dcfb61d',1,'boost::afio::v2_xxx::handle::release()'],['../classboost_1_1afio_1_1v2__xxx_1_1io__handle_1_1extent__guard.html#aed27aa9b18e13bd82038b190071aeafd',1,'boost::afio::v2_xxx::io_handle::extent_guard::release()'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a172fb6584e4e7ed53e5487604027a824',1,'boost::afio::v2_xxx::map_handle::release()'],['../classboost_1_1afio_1_1v2__xxx_1_1algorithm_1_1shared__fs__mutex_1_1shared__fs__mutex_1_1entities__guard.html#a0cf3ef1014c95261a2799bcc055949ae',1,'boost::afio::v2_xxx::algorithm::shared_fs_mutex::shared_fs_mutex::entities_guard::release()']]], ['relink',['relink',['../classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#ab6547a4b98dbf613c6d58c4adb2c6f39',1,'boost::afio::v2_xxx::file_handle']]], ['requires_5faligned_5fio',['requires_aligned_io',['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#a7d1fa70986dc1edea222e17fbabc6425',1,'boost::afio::v2_xxx::handle::requires_aligned_io()'],['../structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html#aed2d23f6ffd43b6c300bfe048616474e',1,'boost::afio::v2_xxx::native_handle_type::requires_aligned_io()']]], ['round_5fdown_5fto_5fpage_5fsize',['round_down_to_page_size',['../namespaceboost_1_1afio_1_1v2__xxx_1_1utils.html#a78d32bc4017ad31d5163bf2e4a72160e',1,'boost::afio::v2_xxx::utils']]], diff --git a/search/functions_73.js b/search/functions_73.js index 2640cf09..4b072da0 100644 --- a/search/functions_73.js +++ b/search/functions_73.js @@ -14,6 +14,5 @@ var searchData= ['stat_5ft',['stat_t',['../structboost_1_1afio_1_1v2__xxx_1_1stat__t.html#a91622602f194fc7bc58f49238e7622e6',1,'boost::afio::v2_xxx::stat_t::stat_t() noexcept'],['../structboost_1_1afio_1_1v2__xxx_1_1stat__t.html#a0bfd220474fee07e9ea6a20f426cb6c0',1,'boost::afio::v2_xxx::stat_t::stat_t(std::nullptr_t) noexcept']]], ['statfs_5ft',['statfs_t',['../structboost_1_1afio_1_1v2__xxx_1_1statfs__t.html#a95cd6253c6046b469f2f0a8917e75fc9',1,'boost::afio::v2_xxx::statfs_t']]], ['strip_5fpretty_5ffunction',['strip_pretty_function',['../namespaceboost_1_1afio_1_1v2__xxx.html#aaa526a2f0758c697b243b93ce14bc461',1,'boost::afio::v2_xxx']]], - ['swap',['swap',['../classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a9d551befa0fa25a7119c07abc3a7a0e0',1,'boost::afio::v2_xxx::async_file_handle::swap()'],['../classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aa6118e53c41add8d4112d9ebeddd9d14',1,'boost::afio::v2_xxx::file_handle::swap()'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#adc26314bd23b9080ac3c4c2dd6bc5937',1,'boost::afio::v2_xxx::handle::swap()'],['../classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#ae0e0965229c5c6486352867c4284bffe',1,'boost::afio::v2_xxx::section_handle::swap()'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a740ebf7b850bfa5e5484e5e54341ff1f',1,'boost::afio::v2_xxx::map_handle::swap()'],['../structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html#a050a9de29d70566366a679db08969bf6',1,'boost::afio::v2_xxx::native_handle_type::swap()']]], - ['sync',['sync',['../classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a01027dfc7b8d85f2ba3b5a56ef053191',1,'boost::afio::v2_xxx::io_handle']]] + ['swap',['swap',['../classboost_1_1afio_1_1v2__xxx_1_1async__file__handle.html#a9d551befa0fa25a7119c07abc3a7a0e0',1,'boost::afio::v2_xxx::async_file_handle::swap()'],['../classboost_1_1afio_1_1v2__xxx_1_1file__handle.html#aa6118e53c41add8d4112d9ebeddd9d14',1,'boost::afio::v2_xxx::file_handle::swap()'],['../classboost_1_1afio_1_1v2__xxx_1_1handle.html#adc26314bd23b9080ac3c4c2dd6bc5937',1,'boost::afio::v2_xxx::handle::swap()'],['../classboost_1_1afio_1_1v2__xxx_1_1section__handle.html#ae0e0965229c5c6486352867c4284bffe',1,'boost::afio::v2_xxx::section_handle::swap()'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#a740ebf7b850bfa5e5484e5e54341ff1f',1,'boost::afio::v2_xxx::map_handle::swap()'],['../structboost_1_1afio_1_1v2__xxx_1_1native__handle__type.html#a050a9de29d70566366a679db08969bf6',1,'boost::afio::v2_xxx::native_handle_type::swap()']]] ]; diff --git a/search/functions_77.js b/search/functions_77.js index 48f2bfc0..9ef2f7a7 100644 --- a/search/functions_77.js +++ b/search/functions_77.js @@ -1,4 +1,4 @@ var searchData= [ - ['write',['write',['../classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a8890b6a6046fb562f9f0ab943b79dfb4',1,'boost::afio::v2_xxx::io_handle::write(io_request< const_buffers_type > reqs, deadline d=deadline()) noexcept'],['../classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ac1fb657631c5212401259bb35ebf16db',1,'boost::afio::v2_xxx::io_handle::write(extent_type offset, const char *data, size_type bytes, deadline d=deadline()) noexcept'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ad6157050182facd9bb5c545b8fe487e6',1,'boost::afio::v2_xxx::map_handle::write()'],['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a927515610146e07b149cfe8cb4ccc52f',1,'boost::afio::v2_xxx::storage_profile::storage_profile::write()']]] + ['write',['write',['../classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#a8890b6a6046fb562f9f0ab943b79dfb4',1,'boost::afio::v2_xxx::io_handle::write(io_request< const_buffers_type > reqs, deadline d=deadline()) noexcept'],['../classboost_1_1afio_1_1v2__xxx_1_1io__handle.html#ac1fb657631c5212401259bb35ebf16db',1,'boost::afio::v2_xxx::io_handle::write(extent_type offset, const char *data, size_type bytes, deadline d=deadline()) noexcept'],['../classboost_1_1afio_1_1v2__xxx_1_1map__handle.html#ab11e484d01157158aaca7160bb1720ce',1,'boost::afio::v2_xxx::map_handle::write()'],['../structboost_1_1afio_1_1v2__xxx_1_1storage__profile_1_1storage__profile.html#a927515610146e07b149cfe8cb4ccc52f',1,'boost::afio::v2_xxx::storage_profile::storage_profile::write()']]] ]; |