Insane_DNS/libraries/asio-1.28.1/doc/asio/reference/DynamicBuffer_v2.html

272 lines
13 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>Dynamic buffer requirements (version 2)</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="DynamicBuffer_v1.html" title="Dynamic buffer requirements (version 1)">
<link rel="next" href="Endpoint.html" title="Endpoint 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="DynamicBuffer_v1.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="Endpoint.html"><img src="../../next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="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"><span class="identifier">X</span></code> shall
satisfy the requirements of <code class="computeroutput"><span class="identifier">CopyConstructible</span></code>
(C++ Std, [copyconstructible]) types in addition to those listed below.
</p>
<p>
In the table below, <code class="computeroutput"><span class="identifier">X</span></code> denotes
a dynamic buffer class, <code class="computeroutput"><span class="identifier">x</span></code>
denotes a value of type <code class="computeroutput"><span class="identifier">X</span><span class="special">&amp;</span></code>, <code class="computeroutput"><span class="identifier">x1</span></code>
denotes values of type <code class="computeroutput"><span class="keyword">const</span> <span class="identifier">X</span><span class="special">&amp;</span></code>,
<code class="computeroutput"><span class="identifier">pos</span></code> and <code class="computeroutput"><span class="identifier">n</span></code>
denote values of type <code class="computeroutput"><span class="identifier">size_t</span></code>,
and <code class="computeroutput"><span class="identifier">u</span></code> denotes an identifier.
</p>
<div class="table">
<a name="asio.reference.DynamicBuffer_v2.t0"></a><p class="title"><b>Table 13. 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"><span class="identifier">X</span><span class="special">::</span><span class="identifier">const_buffers_type</span></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"><span class="identifier">X</span><span class="special">::</span><span class="identifier">mutable_buffers_type</span></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"><span class="identifier">x1</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="identifier">size_t</span></code>
</p>
</td>
<td>
<p>
Returns the size, in bytes, of the underlying memory.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">x1</span><span class="special">.</span><span class="identifier">max_size</span><span class="special">()</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="identifier">size_t</span></code>
</p>
</td>
<td>
<p>
Returns the permitted maximum size of the underlying memory.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">x1</span><span class="special">.</span><span class="identifier">capacity</span><span class="special">()</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="identifier">size_t</span></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"><span class="identifier">x1</span><span class="special">.</span><span class="identifier">data</span><span class="special">(</span><span class="identifier">pos</span><span class="special">,</span>
<span class="identifier">n</span><span class="special">)</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="identifier">X</span><span class="special">::</span><span class="identifier">const_buffers_type</span></code>
</p>
</td>
<td>
<p>
Returns a constant buffer sequence <code class="computeroutput"><span class="identifier">u</span></code>
that represents the underlying memory beginning at offset <code class="computeroutput"><span class="identifier">pos</span></code>, and where <code class="computeroutput"><span class="identifier">buffer_size</span><span class="special">(</span><span class="identifier">u</span><span class="special">)</span>
<span class="special">&lt;=</span> <span class="identifier">n</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">data</span><span class="special">(</span><span class="identifier">pos</span><span class="special">,</span>
<span class="identifier">n</span><span class="special">)</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="identifier">X</span><span class="special">::</span><span class="identifier">mutable_buffers_type</span></code>
</p>
</td>
<td>
<p>
Returns a mutable buffer sequence <code class="computeroutput"><span class="identifier">u</span></code>
that represents the underlying memory beginning at offset <code class="computeroutput"><span class="identifier">pos</span></code>, and where <code class="computeroutput"><span class="identifier">buffer_size</span><span class="special">(</span><span class="identifier">u</span><span class="special">)</span>
<span class="special">&lt;=</span> <span class="identifier">n</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">grow</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span></code>
</p>
</td>
<td>
</td>
<td>
<p>
Requires: <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">n</span> <span class="special">&lt;=</span>
<span class="identifier">max_size</span><span class="special">()</span></code>.<br>
<br> Extends the underlying memory to accommodate <code class="computeroutput"><span class="identifier">n</span></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"><span class="identifier">data</span><span class="special">()</span></code>
are invalidated.<br> <br> Throws: <code class="computeroutput"><span class="identifier">length_error</span></code>
if <code class="computeroutput"><span class="identifier">size</span><span class="special">()</span>
<span class="special">+</span> <span class="identifier">n</span>
<span class="special">&gt;</span> <span class="identifier">max_size</span><span class="special">()</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">shrink</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span></code>
</p>
</td>
<td>
</td>
<td>
<p>
Removes <code class="computeroutput"><span class="identifier">n</span></code> bytes
from the end of the underlying memory. If <code class="computeroutput"><span class="identifier">n</span></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"><span class="identifier">data</span><span class="special">()</span></code> are invalidated.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">consume</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span></code>
</p>
</td>
<td>
</td>
<td>
<p>
Removes <code class="computeroutput"><span class="identifier">n</span></code> bytes
from the beginning of the underlying memory. If <code class="computeroutput"><span class="identifier">n</span></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"><span class="identifier">data</span><span class="special">()</span></code> are invalidated.
</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="DynamicBuffer_v1.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="Endpoint.html"><img src="../../next.png" alt="Next"></a>
</div>
</body>
</html>