<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>async_write_at (2 of 4 overloads)</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../async_write_at.html" title="async_write_at">
<link rel="prev" href="overload1.html" title="async_write_at (1 of 4 overloads)">
<link rel="next" href="overload3.html" title="async_write_at (3 of 4 overloads)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload1.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../async_write_at.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../boost_asio.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="overload3.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_asio.reference.async_write_at.overload2"></a><a class="link" href="overload2.html" title="async_write_at (2 of 4 overloads)">async_write_at
        (2 of 4 overloads)</a>
</h4></div></div></div>
<p>
          Start an asynchronous operation to write a certain amount of data at the
          specified offset.
        </p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
    <span class="keyword">typename</span> <a class="link" href="../AsyncRandomAccessWriteDevice.html" title="Buffer-oriented asynchronous random-access write device requirements">AsyncRandomAccessWriteDevice</a><span class="special">,</span>
    <span class="keyword">typename</span> <a class="link" href="../ConstBufferSequence.html" title="Constant buffer sequence requirements">ConstBufferSequence</a><span class="special">,</span>
    <span class="keyword">typename</span> <span class="identifier">CompletionCondition</span><span class="special">,</span>
    <span class="keyword">typename</span> <a class="link" href="../WriteHandler.html" title="Write handler requirements">WriteHandler</a><span class="special">&gt;</span>
<span class="keyword">void</span> <span class="identifier">async_write_at</span><span class="special">(</span>
    <span class="identifier">AsyncRandomAccessWriteDevice</span> <span class="special">&amp;</span> <span class="identifier">d</span><span class="special">,</span>
    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint64_t</span> <span class="identifier">offset</span><span class="special">,</span>
    <span class="keyword">const</span> <span class="identifier">ConstBufferSequence</span> <span class="special">&amp;</span> <span class="identifier">buffers</span><span class="special">,</span>
    <span class="identifier">CompletionCondition</span> <span class="identifier">completion_condition</span><span class="special">,</span>
    <span class="identifier">WriteHandler</span> <span class="identifier">handler</span><span class="special">);</span>
</pre>
<p>
          This function is used to asynchronously write a certain number of bytes
          of data to a random access device at a specified offset. The function call
          always returns immediately. The asynchronous operation will continue until
          one of the following conditions is true:
        </p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
              All of the data in the supplied buffers has been written. That is,
              the bytes transferred is equal to the sum of the buffer sizes.
            </li>
<li class="listitem">
              The completion_condition function object returns 0.
            </li>
</ul></div>
<p>
          This operation is implemented in terms of zero or more calls to the device's
          async_write_some_at function.
        </p>
<a name="boost_asio.reference.async_write_at.overload2.parameters"></a><h6>
<a name="id889452"></a>
          <a class="link" href="overload2.html#boost_asio.reference.async_write_at.overload2.parameters">Parameters</a>
        </h6>
<div class="variablelist">
<p class="title"><b></b></p>
<dl>
<dt><span class="term">d</span></dt>
<dd><p>
                The device to which the data is to be written. The type must support
                the AsyncRandomAccessWriteDevice concept.
              </p></dd>
<dt><span class="term">offset</span></dt>
<dd><p>
                The offset at which the data will be written.
              </p></dd>
<dt><span class="term">buffers</span></dt>
<dd><p>
                One or more buffers containing the data to be written. Although the
                buffers object may be copied as necessary, ownership of the underlying
                memory blocks is retained by the caller, which must guarantee that
                they remain valid until the handler is called.
              </p></dd>
<dt><span class="term">completion_condition</span></dt>
<dd>
<p>
                The function object to be called to determine whether the write operation
                is complete. The signature of the function object must be: 
</p>
<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">completion_condition</span><span class="special">(</span>
  <span class="comment">// Result of latest async_write_some_at operation.
</span>  <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span><span class="special">&amp;</span> <span class="identifier">error</span><span class="special">,</span>

  <span class="comment">// Number of bytes transferred so far.
</span>  <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">bytes_transferred</span>
<span class="special">);</span> 
</pre>
<p>
                A return value of 0 indicates that the write operation is complete.
                A non-zero return value indicates the maximum number of bytes to
                be written on the next call to the device's async_write_some_at function.
              </p>
</dd>
<dt><span class="term">handler</span></dt>
<dd>
<p>
                The handler to be called when the write operation completes. Copies
                will be made of the handler as required. The function signature of
                the handler must be: 
</p>
<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">handler</span><span class="special">(</span>
  <span class="comment">// Result of operation.
</span>  <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span><span class="special">&amp;</span> <span class="identifier">error</span><span class="special">,</span>

  <span class="comment">// Number of bytes written from the buffers. If an error
</span>  <span class="comment">// occurred, this will be less than the sum of the buffer sizes.
</span>  <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">bytes_transferred</span>
<span class="special">);</span> 
</pre>
<p>
                Regardless of whether the asynchronous operation completes immediately
                or not, the handler will not be invoked from within this function.
                Invocation of the handler will be performed in a manner equivalent
                to using <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_service</span><span class="special">::</span><span class="identifier">post</span><span class="special">()</span></code>.
              </p>
</dd>
</dl>
</div>
<a name="boost_asio.reference.async_write_at.overload2.example"></a><h6>
<a name="id889831"></a>
          <a class="link" href="overload2.html#boost_asio.reference.async_write_at.overload2.example">Example</a>
        </h6>
<p>
          To write a single data buffer use the <a class="link" href="../buffer.html" title="buffer"><code class="computeroutput"><span class="identifier">buffer</span></code></a> function as follows:
        </p>
<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">async_write_at</span><span class="special">(</span><span class="identifier">d</span><span class="special">,</span> <span class="number">42</span><span class="special">,</span>
    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">buffer</span><span class="special">(</span><span class="identifier">data</span><span class="special">,</span> <span class="identifier">size</span><span class="special">),</span>
    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">transfer_at_least</span><span class="special">(</span><span class="number">32</span><span class="special">),</span>
    <span class="identifier">handler</span><span class="special">);</span> 
</pre>
<p>
          See the <a class="link" href="../buffer.html" title="buffer"><code class="computeroutput"><span class="identifier">buffer</span></code></a>
          documentation for information on writing multiple buffers in one go, and
          how to use it with arrays, boost::array or std::vector.
        </p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2003 - 2010 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></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload1.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../async_write_at.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../boost_asio.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="overload3.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
