Insane_DNS/libraries/asio-1.28.1/doc/asio/reference/AsyncRandomAccessWriteDevic...

134 lines
7.6 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Buffer-oriented asynchronous random-access write device requirements</title>
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="AsyncRandomAccessReadDevice.html" title="Buffer-oriented asynchronous random-access read device requirements">
<link rel="next" href="AsyncReadStream.html" title="Buffer-oriented asynchronous read stream requirements">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="asio C++ library" width="250" height="60" src="../../asio.png"></td></tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="AsyncRandomAccessReadDevice.html"><img src="../../prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../home.png" alt="Home"></a><a accesskey="n" href="AsyncReadStream.html"><img src="../../next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="asio.reference.AsyncRandomAccessWriteDevice"></a><a class="link" href="AsyncRandomAccessWriteDevice.html" title="Buffer-oriented asynchronous random-access write device requirements">Buffer-oriented
asynchronous random-access write device requirements</a>
</h3></div></div></div>
<p>
In the table below, <code class="computeroutput"><span class="identifier">a</span></code> denotes
an asynchronous write stream object, <code class="computeroutput"><span class="identifier">o</span></code>
denotes an offset of type <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint64_t</span></code>,
<code class="computeroutput"><span class="identifier">cb</span></code> denotes an object satisfying
<a class="link" href="ConstBufferSequence.html" title="Constant buffer sequence requirements">constant buffer sequence</a>
requirements, and <code class="computeroutput"><span class="identifier">h</span></code> denotes
an object satisfying <a class="link" href="WriteHandler.html" title="Write handler requirements">write handler</a>
requirements.
</p>
<div class="table">
<a name="asio.reference.AsyncRandomAccessWriteDevice.t0"></a><p class="title"><b>Table 5. Buffer-oriented asynchronous random-access write device requirements</b></p>
<div class="table-contents"><table class="table" summary="Buffer-oriented asynchronous random-access write device requirements">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
operation
</p>
</th>
<th>
<p>
type
</p>
</th>
<th>
<p>
semantics, pre/post-conditions
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">a</span><span class="special">.</span><span class="identifier">get_executor</span><span class="special">()</span></code>
</p>
</td>
<td>
<p>
A type satisfying the <a class="link" href="Executor1.html" title="Executor requirements">Executor
requirements</a>.
</p>
</td>
<td>
<p>
Returns the associated I/O executor.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">a</span><span class="special">.</span><span class="identifier">async_write_some_at</span><span class="special">(</span><span class="identifier">o</span><span class="special">,</span>
<span class="identifier">cb</span><span class="special">,</span>
<span class="identifier">h</span><span class="special">);</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="keyword">void</span></code>
</p>
</td>
<td>
<p>
Initiates an asynchronous operation to write one or more bytes
of data to the device <code class="computeroutput"><span class="identifier">a</span></code>
at offset <code class="computeroutput"><span class="identifier">o</span></code>. The
operation is performed via the <code class="computeroutput"><span class="identifier">io_service</span></code>
object <code class="computeroutput"><span class="identifier">a</span><span class="special">.</span><span class="identifier">get_io_service</span><span class="special">()</span></code>
and behaves according to <a class="link" href="asynchronous_operations.html" title="Requirements on asynchronous operations">asynchronous
operation</a> requirements.<br> <br> The constant buffer
sequence <code class="computeroutput"><span class="identifier">cb</span></code> specifies
memory where the data to be written is located. The <code class="computeroutput"><span class="identifier">async_write_some_at</span></code> operation
shall always write a buffer in the sequence completely before proceeding
to the next.<br> <br> The implementation shall maintain one
or more copies of <code class="computeroutput"><span class="identifier">cb</span></code>
until such time as the write operation no longer requires access
to the memory specified by the buffers in the sequence. The program
must ensure the memory is valid until:<br> <br> — the last copy
of <code class="computeroutput"><span class="identifier">cb</span></code> is destroyed,
or<br> <br> — the handler for the asynchronous write operation
is invoked,<br> <br> whichever comes first.<br> <br> If
the total size of all buffers in the sequence <code class="computeroutput"><span class="identifier">cb</span></code>
is <code class="computeroutput"><span class="number">0</span></code>, the asynchronous
write operation shall complete immediately and pass <code class="computeroutput"><span class="number">0</span></code> as the argument to the handler
that specifies the number of bytes written.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</div>
<div class="copyright-footer">Copyright © 2003-2023 Christopher M. Kohlhoff<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="AsyncRandomAccessReadDevice.html"><img src="../../prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../home.png" alt="Home"></a><a accesskey="n" href="AsyncReadStream.html"><img src="../../next.png" alt="Next"></a>
</div>
</body>
</html>