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

261 lines
15 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>Endpoint 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="DynamicBuffer_v2.html" title="Dynamic buffer requirements (version 2)">
<link rel="next" href="EndpointSequence.html" title="Endpoint sequence 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_v2.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="EndpointSequence.html"><img src="../../next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="asio.reference.Endpoint"></a><a class="link" href="Endpoint.html" title="Endpoint requirements">Endpoint requirements</a>
</h3></div></div></div>
<p>
A type <code class="computeroutput"><span class="identifier">X</span></code> meets the <code class="computeroutput"><span class="identifier">Endpoint</span></code> requirements if it satisfies the
requirements of <code class="computeroutput"><span class="identifier">Destructible</span></code>
(C++Std [destructible]), <code class="computeroutput"><span class="identifier">DefaultConstructible</span></code>
(C++Std [defaultconstructible]), <code class="computeroutput"><span class="identifier">CopyConstructible</span></code>
(C++Std [copyconstructible]), and <code class="computeroutput"><span class="identifier">CopyAssignable</span></code>
(C++Std [copyassignable]), as well as the additional requirements listed
below.
</p>
<p>
The default constructor and move operations of the type <code class="computeroutput"><span class="identifier">X</span></code>
shall not exit via an exception.
</p>
<p>
In the table below, <code class="computeroutput"><span class="identifier">a</span></code> denotes
a (possibly const) value of type <code class="computeroutput"><span class="identifier">X</span></code>,
and <code class="computeroutput"><span class="identifier">u</span></code> denotes an identifier.
</p>
<div class="table">
<a name="asio.reference.Endpoint.t0"></a><p class="title"><b>Table 14. Endpoint requirements</b></p>
<div class="table-contents"><table class="table" summary="Endpoint 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">protocol_type</span></code>
</p>
</td>
<td>
<p>
type meeting <a class="link" href="Protocol.html" title="Protocol requirements"><code class="computeroutput"><span class="identifier">Protocol</span></code></a> requirements
</p>
</td>
<td>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">a</span><span class="special">.</span><span class="identifier">protocol</span><span class="special">()</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="identifier">protocol_type</span></code>
</p>
</td>
<td>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><p>
In the table below, <code class="computeroutput"><span class="identifier">a</span></code> denotes
a (possibly const) value of type <code class="computeroutput"><span class="identifier">X</span></code>,
<code class="computeroutput"><span class="identifier">b</span></code> denotes a value of type
<code class="computeroutput"><span class="identifier">X</span></code>, and <code class="computeroutput"><span class="identifier">s</span></code>
denotes a (possibly const) value of a type that is convertible to <code class="computeroutput"><span class="identifier">size_t</span></code> and denotes a size in bytes.
</p>
<div class="table">
<a name="asio.reference.Endpoint.t1"></a><p class="title"><b>Table 15. Endpoint requirements for extensible implementations</b></p>
<div class="table-contents"><table class="table" summary="Endpoint requirements for extensible implementations">
<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">a</span><span class="special">.</span><span class="identifier">data</span><span class="special">()</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="keyword">const</span> <span class="keyword">void</span><span class="special">*</span></code>
</p>
</td>
<td>
<p>
Returns a pointer suitable for passing as the <span class="emphasis"><em>address</em></span>
argument to functions such as <span class="emphasis"><em>POSIX</em></span> <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/connect.html" target="_top"><code class="computeroutput"><span class="identifier">connect</span><span class="special">()</span></code></a>,
or as the <span class="emphasis"><em>dest_addr</em></span> argument to functions
such as <span class="emphasis"><em>POSIX</em></span> <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/sendto.html" target="_top"><code class="computeroutput"><span class="identifier">sendto</span><span class="special">()</span></code></a>.
The implementation shall perform a <code class="computeroutput"><span class="keyword">static_cast</span></code>
on the pointer to convert it to <code class="computeroutput"><span class="keyword">const</span>
<span class="identifier">sockaddr</span><span class="special">*</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">b</span><span class="special">.</span><span class="identifier">data</span><span class="special">()</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="keyword">void</span><span class="special">*</span></code>
</p>
</td>
<td>
<p>
Returns a pointer suitable for passing as the <span class="emphasis"><em>address</em></span>
argument to functions such as <span class="emphasis"><em>POSIX</em></span> <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/accept.html" target="_top"><code class="computeroutput"><span class="identifier">accept</span><span class="special">()</span></code></a>,
<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/getpeername.html" target="_top"><code class="computeroutput"><span class="identifier">getpeername</span><span class="special">()</span></code></a>,
<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/getsockname.html" target="_top"><code class="computeroutput"><span class="identifier">getsockname</span><span class="special">()</span></code></a>
and <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/recvfrom.html" target="_top"><code class="computeroutput"><span class="identifier">recvfrom</span><span class="special">()</span></code></a>.
The implementation shall perform a <code class="computeroutput"><span class="keyword">static_cast</span></code>
on the pointer to convert it to <code class="computeroutput"><span class="identifier">sockaddr</span><span class="special">*</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">a</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 a value suitable for passing as the <span class="emphasis"><em>address_len</em></span>
argument to functions such as <span class="emphasis"><em>POSIX</em></span> <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/connect.html" target="_top"><code class="computeroutput"><span class="identifier">connect</span><span class="special">()</span></code></a>,
or as the <span class="emphasis"><em>dest_len</em></span> argument to functions such
as <span class="emphasis"><em>POSIX</em></span> <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/sendto.html" target="_top"><code class="computeroutput"><span class="identifier">sendto</span><span class="special">()</span></code></a>,
after appropriate integer conversion has been performed.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">b</span><span class="special">.</span><span class="identifier">resize</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
</p>
</td>
<td>
</td>
<td>
<p>
pre: <code class="computeroutput"><span class="identifier">s</span> <span class="special">&gt;=</span>
<span class="number">0</span></code><br> post: <code class="computeroutput"><span class="identifier">a</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span>
<span class="special">==</span> <span class="identifier">s</span></code><br>
Passed the value contained in the <span class="emphasis"><em>address_len</em></span>
argument to functions such as <span class="emphasis"><em>POSIX</em></span> <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/accept.html" target="_top"><code class="computeroutput"><span class="identifier">accept</span><span class="special">()</span></code></a>,
<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/getpeername.html" target="_top"><code class="computeroutput"><span class="identifier">getpeername</span><span class="special">()</span></code></a>,
<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/getsockname.html" target="_top"><code class="computeroutput"><span class="identifier">getsockname</span><span class="special">()</span></code></a>
and <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/recvfrom.html" target="_top"><code class="computeroutput"><span class="identifier">recvfrom</span><span class="special">()</span></code></a>,
after successful completion of the function. Permitted to throw
an exception if the protocol associated with the endpoint object
<code class="computeroutput"><span class="identifier">a</span></code> does not support
the specified size.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">a</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 a value suitable for passing as the <span class="emphasis"><em>address_len</em></span>
argument to functions such as <span class="emphasis"><em>POSIX</em></span> <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/accept.html" target="_top"><code class="computeroutput"><span class="identifier">accept</span><span class="special">()</span></code></a>,
<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/getpeername.html" target="_top"><code class="computeroutput"><span class="identifier">getpeername</span><span class="special">()</span></code></a>,
<a href="http://www.opengroup.org/onlinepubs/9699919799/functions/getsockname.html" target="_top"><code class="computeroutput"><span class="identifier">getsockname</span><span class="special">()</span></code></a>
and <a href="http://www.opengroup.org/onlinepubs/9699919799/functions/recvfrom.html" target="_top"><code class="computeroutput"><span class="identifier">recvfrom</span><span class="special">()</span></code></a>,
after appropriate integer conversion has been performed.
</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_v2.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="EndpointSequence.html"><img src="../../next.png" alt="Next"></a>
</div>
</body>
</html>