| [/ |
| / Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) |
| / |
| / Distributed under the Boost Software License, Version 1.0. (See accompanying |
| / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |
| /] |
| |
| [section:AsyncWriteStream Buffer-oriented asynchronous write stream requirements] |
| |
| In the table below, `a` denotes an asynchronous write stream object, `cb` |
| denotes an object satisfying [link boost_asio.reference.ConstBufferSequence |
| constant buffer sequence] requirements, and `h` denotes an object satisfying |
| [link boost_asio.reference.WriteHandler write handler] requirements. |
| |
| [table Buffer-oriented asynchronous write stream requirements |
| [[operation] [type] [semantics, pre/post-conditions]] |
| [ |
| [`a.io_service();`] |
| [`io_service&`] |
| [Returns the `io_service` object through which the `async_write_some` |
| handler `h` will be invoked.] |
| ] |
| [ |
| [`a.async_write_some(cb, h);`] |
| [`void`] |
| [ |
| Initiates an asynchronous operation to write one or more bytes of data to |
| the stream `a`. The operation is performed via the `io_service` object |
| `a.io_service()` and behaves according to [link |
| boost_asio.reference.asynchronous_operations asynchronous operation] |
| requirements.\n |
| \n |
| The constant buffer sequence `cb` specifies memory where the data to be |
| written is located. The `async_write_some` operation shall always write a |
| buffer in the sequence completely before proceeding to the next.\n |
| \n |
| The implementation shall maintain one or more copies of `cb` 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:\n |
| \n |
| [mdash] the last copy of `cb` is destroyed, or\n |
| \n |
| [mdash] the handler for the asynchronous write operation is invoked,\n |
| \n |
| whichever comes first.\n |
| \n |
| If the total size of all buffers in the sequence `cb` is `0`, the |
| asynchronous write operation shall complete immediately and pass `0` as |
| the argument to the handler that specifies the number of bytes written. |
| ] |
| ] |
| ] |
| |
| [endsect] |