boost/doc/html/boost_asio/reference/DynamicBuffer_v2.html
2021-10-05 21:37:46 +02:00

273 lines
10 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Dynamic buffer requirements (version 2)</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="DynamicBuffer_v1.html" title="Dynamic buffer requirements (version 1)">
<link rel="next" href="Endpoint.html" title="Endpoint requirements">
</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="DynamicBuffer_v1.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="Endpoint.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_asio.reference.DynamicBuffer_v2"></a><a class="link" href="DynamicBuffer_v2.html" title="Dynamic buffer requirements (version 2)">Dynamic buffer
requirements (version 2)</a>
</h3></div></div></div>
<p>
A dynamic buffer encapsulates memory storage that may be automatically resized
as required.
</p>
<p>
A dynamic buffer type <code class="computeroutput">X</code> shall satisfy the requirements of <code class="computeroutput">CopyConstructible</code>
(C++ Std, [copyconstructible]) types in addition to those listed below.
</p>
<p>
In the table below, <code class="computeroutput">X</code> denotes a dynamic buffer class, <code class="computeroutput">x</code>
denotes a value of type <code class="computeroutput">X&amp;</code>, <code class="computeroutput">x1</code> denotes values
of type <code class="computeroutput">const X&amp;</code>, <code class="computeroutput">pos</code> and <code class="computeroutput">n</code> denote
values of type <code class="computeroutput">size_t</code>, and <code class="computeroutput">u</code> denotes an identifier.
</p>
<div class="table">
<a name="boost_asio.reference.DynamicBuffer_v2.t0"></a><p class="title"><b>Table 10. DynamicBuffer_v2 requirements</b></p>
<div class="table-contents"><table class="table" summary="DynamicBuffer_v2 requirements">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
expression
</p>
</th>
<th>
<p>
type
</p>
</th>
<th>
<p>
assertion/note<br> pre/post-conditions
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput">X::const_buffers_type</code>
</p>
</td>
<td>
<p>
type meeting <a class="link" href="ConstBufferSequence.html" title="Constant buffer sequence requirements">ConstBufferSequence</a>
requirements.
</p>
</td>
<td>
<p>
This type represents the underlying memory as a sequence of @c
const_buffer objects.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">X::mutable_buffers_type</code>
</p>
</td>
<td>
<p>
type meeting <a class="link" href="MutableBufferSequence.html" title="Mutable buffer sequence requirements">MutableBufferSequence</a>
requirements.
</p>
</td>
<td>
<p>
This type represents the underlying memory as a sequence of @c
mutable_buffer objects.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x1.size()</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">size_t</code>
</p>
</td>
<td>
<p>
Returns the size, in bytes, of the underlying memory.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x1.max_size()</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">size_t</code>
</p>
</td>
<td>
<p>
Returns the permitted maximum size of the underlying memory.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x1.capacity()</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">size_t</code>
</p>
</td>
<td>
<p>
Returns the maximum size to which the underlying memory can grow
without requiring reallocation.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x1.data(pos, n)</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">X::const_buffers_type</code>
</p>
</td>
<td>
<p>
Returns a constant buffer sequence <code class="computeroutput">u</code> that represents
the underlying memory beginning at offset <code class="computeroutput">pos</code>, and
where <code class="computeroutput">buffer_size(u) &lt;= n</code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x.data(pos, n)</code>
</p>
</td>
<td>
<p>
<code class="computeroutput">X::mutable_buffers_type</code>
</p>
</td>
<td>
<p>
Returns a mutable buffer sequence <code class="computeroutput">u</code> that represents
the underlying memory beginning at offset <code class="computeroutput">pos</code>, and
where <code class="computeroutput">buffer_size(u) &lt;= n</code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x.grow(n)</code>
</p>
</td>
<td>
</td>
<td>
<p>
Requires: <code class="computeroutput">size() + n &lt;= max_size()</code>.<br> <br>
Extends the underlying memory to accommodate <code class="computeroutput">n</code> additional
bytes at the end. The dynamic buffer reallocates memory as required.
All constant or mutable buffer sequences previously obtained using
<code class="computeroutput">data()</code> are invalidated.<br> <br> Throws: <code class="computeroutput">length_error</code>
if <code class="computeroutput">size() + n &gt; max_size()</code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x.shrink(n)</code>
</p>
</td>
<td>
</td>
<td>
<p>
Removes <code class="computeroutput">n</code> bytes from the end of the underlying memory.
If <code class="computeroutput">n</code> is greater than the size of the underlying memory,
the entire underlying memory is emptied. All constant or mutable
buffer sequences previously obtained using <code class="computeroutput">data()</code>
are invalidated.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput">x.consume(n)</code>
</p>
</td>
<td>
</td>
<td>
<p>
Removes <code class="computeroutput">n</code> bytes from the beginning of the underlying
memory. If <code class="computeroutput">n</code> is greater than the size of the underlying
memory, the entire underlying memory is emptied. All constant or
mutable buffer sequences previously obtained using <code class="computeroutput">data()</code>
are invalidated.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</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 © 2003-2021 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="DynamicBuffer_v1.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="Endpoint.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>