Adds asio library and Storage Module
This commit is contained in:
1 parent
79a6ee5779
commit
30439acd43
4869 files changed
+618801
-903
No files matched your search
@@ -0,0 +1,106 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>connect (1 of 12 overloads)</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="../connect.html" title="connect">
|
||||
<link rel="prev" href="../connect.html" title="connect">
|
||||
<link rel="next" href="overload2.html" title="connect (2 of 12 overloads)">
|
||||
</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="../connect.html"><img src="../../../prev.png" alt="Prev"></a><a accesskey="u" href="../connect.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="overload2.html"><img src="../../../next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="asio.reference.connect.overload1"></a><a class="link" href="overload1.html" title="connect (1 of 12 overloads)">connect (1 of 12
|
||||
overloads)</a>
|
||||
</h4></div></div></div>
|
||||
<p>
|
||||
Establishes a socket connection by trying each endpoint in a sequence.
|
||||
</p>
|
||||
<pre class="programlisting">template<
|
||||
typename <a class="link" href="../Protocol.html" title="Protocol requirements">Protocol</a>,
|
||||
typename <a class="link" href="../Executor1.html" title="Executor requirements">Executor</a>,
|
||||
typename <a class="link" href="../EndpointSequence.html" title="Endpoint sequence requirements">EndpointSequence</a>>
|
||||
Protocol::endpoint connect(
|
||||
basic_socket< Protocol, Executor > & s,
|
||||
const EndpointSequence & endpoints,
|
||||
typename enable_if< is_endpoint_sequence< EndpointSequence >::value >::type * = 0);
|
||||
</pre>
|
||||
<p>
|
||||
This function attempts to connect a socket to one of a sequence of endpoints.
|
||||
It does this by repeated calls to the socket's <code class="computeroutput">connect</code> member
|
||||
function, once for each endpoint in the sequence, until a connection is
|
||||
successfully established.
|
||||
</p>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload1.h0"></a>
|
||||
<span><a name="asio.reference.connect.overload1.parameters"></a></span><a class="link" href="overload1.html#asio.reference.connect.overload1.parameters">Parameters</a>
|
||||
</h6>
|
||||
<div class="variablelist">
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term">s</span></dt>
|
||||
<dd><p>
|
||||
The socket to be connected. If the socket is already open, it will
|
||||
be closed.
|
||||
</p></dd>
|
||||
<dt><span class="term">endpoints</span></dt>
|
||||
<dd><p>
|
||||
A sequence of endpoints.
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload1.h1"></a>
|
||||
<span><a name="asio.reference.connect.overload1.return_value"></a></span><a class="link" href="overload1.html#asio.reference.connect.overload1.return_value">Return
|
||||
Value</a>
|
||||
</h6>
|
||||
<p>
|
||||
The successfully connected endpoint.
|
||||
</p>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload1.h2"></a>
|
||||
<span><a name="asio.reference.connect.overload1.exceptions"></a></span><a class="link" href="overload1.html#asio.reference.connect.overload1.exceptions">Exceptions</a>
|
||||
</h6>
|
||||
<div class="variablelist">
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term">asio::system_error</span></dt>
|
||||
<dd><p>
|
||||
Thrown on failure. If the sequence is empty, the associated <code class="computeroutput">error_code</code>
|
||||
is <code class="computeroutput">asio::error::not_found</code>. Otherwise, contains the error
|
||||
from the last connection attempt.
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload1.h3"></a>
|
||||
<span><a name="asio.reference.connect.overload1.example"></a></span><a class="link" href="overload1.html#asio.reference.connect.overload1.example">Example</a>
|
||||
</h6>
|
||||
<pre class="programlisting">tcp::resolver r(my_context);
|
||||
tcp::resolver::query q("host", "service");
|
||||
tcp::socket s(my_context);
|
||||
asio::connect(s, r.resolve(q));
|
||||
</pre>
|
||||
</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-2020 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="../connect.html"><img src="../../../prev.png" alt="Prev"></a><a accesskey="u" href="../connect.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="overload2.html"><img src="../../../next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,121 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>connect (10 of 12 overloads)</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="../connect.html" title="connect">
|
||||
<link rel="prev" href="overload9.html" title="connect (9 of 12 overloads)">
|
||||
<link rel="next" href="overload11.html" title="connect (11 of 12 overloads)">
|
||||
</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="overload9.html"><img src="../../../prev.png" alt="Prev"></a><a accesskey="u" href="../connect.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="overload11.html"><img src="../../../next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="asio.reference.connect.overload10"></a><a class="link" href="overload10.html" title="connect (10 of 12 overloads)">connect (10 of 12
|
||||
overloads)</a>
|
||||
</h4></div></div></div>
|
||||
<p>
|
||||
(Deprecated: Use range overload.) Establishes a socket connection by trying
|
||||
each endpoint in a sequence.
|
||||
</p>
|
||||
<pre class="programlisting">template<
|
||||
typename <a class="link" href="../Protocol.html" title="Protocol requirements">Protocol</a>,
|
||||
typename <a class="link" href="../Executor1.html" title="Executor requirements">Executor</a>,
|
||||
typename Iterator,
|
||||
typename <a class="link" href="../ConnectCondition.html" title="Connect condition requirements">ConnectCondition</a>>
|
||||
Iterator connect(
|
||||
basic_socket< Protocol, Executor > & s,
|
||||
Iterator begin,
|
||||
ConnectCondition connect_condition,
|
||||
asio::error_code & ec,
|
||||
typename enable_if<!is_endpoint_sequence< Iterator >::value >::type * = 0);
|
||||
</pre>
|
||||
<p>
|
||||
This function attempts to connect a socket to one of a sequence of endpoints.
|
||||
It does this by repeated calls to the socket's <code class="computeroutput">connect</code> member
|
||||
function, once for each endpoint in the sequence, until a connection is
|
||||
successfully established.
|
||||
</p>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload10.h0"></a>
|
||||
<span><a name="asio.reference.connect.overload10.parameters"></a></span><a class="link" href="overload10.html#asio.reference.connect.overload10.parameters">Parameters</a>
|
||||
</h6>
|
||||
<div class="variablelist">
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term">s</span></dt>
|
||||
<dd><p>
|
||||
The socket to be connected. If the socket is already open, it will
|
||||
be closed.
|
||||
</p></dd>
|
||||
<dt><span class="term">begin</span></dt>
|
||||
<dd><p>
|
||||
An iterator pointing to the start of a sequence of endpoints.
|
||||
</p></dd>
|
||||
<dt><span class="term">connect_condition</span></dt>
|
||||
<dd>
|
||||
<p>
|
||||
A function object that is called prior to each connection attempt.
|
||||
The signature of the function object must be:
|
||||
</p>
|
||||
<pre class="programlisting">bool connect_condition(
|
||||
const asio::error_code& ec,
|
||||
const typename Protocol::endpoint& next);
|
||||
</pre>
|
||||
<p>
|
||||
The <code class="computeroutput">ec</code> parameter contains the result from the most recent
|
||||
connect operation. Before the first connection attempt, <code class="computeroutput">ec</code>
|
||||
is always set to indicate success. The <code class="computeroutput">next</code> parameter
|
||||
is the next endpoint to be tried. The function object should return
|
||||
true if the next endpoint should be tried, and false if it should
|
||||
be skipped.
|
||||
</p>
|
||||
</dd>
|
||||
<dt><span class="term">ec</span></dt>
|
||||
<dd><p>
|
||||
Set to indicate what error occurred, if any. If the sequence is empty,
|
||||
set to <code class="computeroutput">asio::error::not_found</code>. Otherwise, contains the
|
||||
error from the last connection attempt.
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload10.h1"></a>
|
||||
<span><a name="asio.reference.connect.overload10.return_value"></a></span><a class="link" href="overload10.html#asio.reference.connect.overload10.return_value">Return
|
||||
Value</a>
|
||||
</h6>
|
||||
<p>
|
||||
On success, an iterator denoting the successfully connected endpoint. Otherwise,
|
||||
the end iterator.
|
||||
</p>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload10.h2"></a>
|
||||
<span><a name="asio.reference.connect.overload10.remarks"></a></span><a class="link" href="overload10.html#asio.reference.connect.overload10.remarks">Remarks</a>
|
||||
</h6>
|
||||
<p>
|
||||
This overload assumes that a default constructed object of type <code class="computeroutput">Iterator</code>
|
||||
represents the end of the sequence. This is a valid assumption for iterator
|
||||
types such as <code class="computeroutput">asio::ip::tcp::resolver::iterator</code>.
|
||||
</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 © 2003-2020 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="overload9.html"><img src="../../../prev.png" alt="Prev"></a><a accesskey="u" href="../connect.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="overload11.html"><img src="../../../next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,153 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>connect (11 of 12 overloads)</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="../connect.html" title="connect">
|
||||
<link rel="prev" href="overload10.html" title="connect (10 of 12 overloads)">
|
||||
<link rel="next" href="overload12.html" title="connect (12 of 12 overloads)">
|
||||
</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="overload10.html"><img src="../../../prev.png" alt="Prev"></a><a accesskey="u" href="../connect.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="overload12.html"><img src="../../../next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="asio.reference.connect.overload11"></a><a class="link" href="overload11.html" title="connect (11 of 12 overloads)">connect (11 of 12
|
||||
overloads)</a>
|
||||
</h4></div></div></div>
|
||||
<p>
|
||||
Establishes a socket connection by trying each endpoint in a sequence.
|
||||
</p>
|
||||
<pre class="programlisting">template<
|
||||
typename <a class="link" href="../Protocol.html" title="Protocol requirements">Protocol</a>,
|
||||
typename <a class="link" href="../Executor1.html" title="Executor requirements">Executor</a>,
|
||||
typename Iterator,
|
||||
typename <a class="link" href="../ConnectCondition.html" title="Connect condition requirements">ConnectCondition</a>>
|
||||
Iterator connect(
|
||||
basic_socket< Protocol, Executor > & s,
|
||||
Iterator begin,
|
||||
Iterator end,
|
||||
ConnectCondition connect_condition);
|
||||
</pre>
|
||||
<p>
|
||||
This function attempts to connect a socket to one of a sequence of endpoints.
|
||||
It does this by repeated calls to the socket's <code class="computeroutput">connect</code> member
|
||||
function, once for each endpoint in the sequence, until a connection is
|
||||
successfully established.
|
||||
</p>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload11.h0"></a>
|
||||
<span><a name="asio.reference.connect.overload11.parameters"></a></span><a class="link" href="overload11.html#asio.reference.connect.overload11.parameters">Parameters</a>
|
||||
</h6>
|
||||
<div class="variablelist">
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term">s</span></dt>
|
||||
<dd><p>
|
||||
The socket to be connected. If the socket is already open, it will
|
||||
be closed.
|
||||
</p></dd>
|
||||
<dt><span class="term">begin</span></dt>
|
||||
<dd><p>
|
||||
An iterator pointing to the start of a sequence of endpoints.
|
||||
</p></dd>
|
||||
<dt><span class="term">end</span></dt>
|
||||
<dd><p>
|
||||
An iterator pointing to the end of a sequence of endpoints.
|
||||
</p></dd>
|
||||
<dt><span class="term">connect_condition</span></dt>
|
||||
<dd>
|
||||
<p>
|
||||
A function object that is called prior to each connection attempt.
|
||||
The signature of the function object must be:
|
||||
</p>
|
||||
<pre class="programlisting">bool connect_condition(
|
||||
const asio::error_code& ec,
|
||||
const typename Protocol::endpoint& next);
|
||||
</pre>
|
||||
<p>
|
||||
The <code class="computeroutput">ec</code> parameter contains the result from the most recent
|
||||
connect operation. Before the first connection attempt, <code class="computeroutput">ec</code>
|
||||
is always set to indicate success. The <code class="computeroutput">next</code> parameter
|
||||
is the next endpoint to be tried. The function object should return
|
||||
true if the next endpoint should be tried, and false if it should
|
||||
be skipped.
|
||||
</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload11.h1"></a>
|
||||
<span><a name="asio.reference.connect.overload11.return_value"></a></span><a class="link" href="overload11.html#asio.reference.connect.overload11.return_value">Return
|
||||
Value</a>
|
||||
</h6>
|
||||
<p>
|
||||
An iterator denoting the successfully connected endpoint.
|
||||
</p>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload11.h2"></a>
|
||||
<span><a name="asio.reference.connect.overload11.exceptions"></a></span><a class="link" href="overload11.html#asio.reference.connect.overload11.exceptions">Exceptions</a>
|
||||
</h6>
|
||||
<div class="variablelist">
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term">asio::system_error</span></dt>
|
||||
<dd><p>
|
||||
Thrown on failure. If the sequence is empty, the associated <code class="computeroutput">error_code</code>
|
||||
is <code class="computeroutput">asio::error::not_found</code>. Otherwise, contains the error
|
||||
from the last connection attempt.
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload11.h3"></a>
|
||||
<span><a name="asio.reference.connect.overload11.example"></a></span><a class="link" href="overload11.html#asio.reference.connect.overload11.example">Example</a>
|
||||
</h6>
|
||||
<p>
|
||||
The following connect condition function object can be used to output information
|
||||
about the individual connection attempts:
|
||||
</p>
|
||||
<pre class="programlisting">struct my_connect_condition
|
||||
{
|
||||
bool operator()(
|
||||
const asio::error_code& ec,
|
||||
const::tcp::endpoint& next)
|
||||
{
|
||||
if (ec) std::cout << "Error: " << ec.message() << std::endl;
|
||||
std::cout << "Trying: " << next << std::endl;
|
||||
return true;
|
||||
}
|
||||
};
|
||||
</pre>
|
||||
<p>
|
||||
It would be used with the <code class="computeroutput">asio::connect</code> function as follows:
|
||||
</p>
|
||||
<pre class="programlisting">tcp::resolver r(my_context);
|
||||
tcp::resolver::query q("host", "service");
|
||||
tcp::resolver::results_type e = r.resolve(q);
|
||||
tcp::socket s(my_context);
|
||||
tcp::resolver::results_type::iterator i = asio::connect(
|
||||
s, e.begin(), e.end(), my_connect_condition());
|
||||
std::cout << "Connected to: " << i->endpoint() << std::endl;
|
||||
</pre>
|
||||
</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-2020 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="overload10.html"><img src="../../../prev.png" alt="Prev"></a><a accesskey="u" href="../connect.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="overload12.html"><img src="../../../next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,154 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>connect (12 of 12 overloads)</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="../connect.html" title="connect">
|
||||
<link rel="prev" href="overload11.html" title="connect (11 of 12 overloads)">
|
||||
<link rel="next" href="../const_buffer.html" title="const_buffer">
|
||||
</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="overload11.html"><img src="../../../prev.png" alt="Prev"></a><a accesskey="u" href="../connect.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="../const_buffer.html"><img src="../../../next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="asio.reference.connect.overload12"></a><a class="link" href="overload12.html" title="connect (12 of 12 overloads)">connect (12 of 12
|
||||
overloads)</a>
|
||||
</h4></div></div></div>
|
||||
<p>
|
||||
Establishes a socket connection by trying each endpoint in a sequence.
|
||||
</p>
|
||||
<pre class="programlisting">template<
|
||||
typename <a class="link" href="../Protocol.html" title="Protocol requirements">Protocol</a>,
|
||||
typename <a class="link" href="../Executor1.html" title="Executor requirements">Executor</a>,
|
||||
typename Iterator,
|
||||
typename <a class="link" href="../ConnectCondition.html" title="Connect condition requirements">ConnectCondition</a>>
|
||||
Iterator connect(
|
||||
basic_socket< Protocol, Executor > & s,
|
||||
Iterator begin,
|
||||
Iterator end,
|
||||
ConnectCondition connect_condition,
|
||||
asio::error_code & ec);
|
||||
</pre>
|
||||
<p>
|
||||
This function attempts to connect a socket to one of a sequence of endpoints.
|
||||
It does this by repeated calls to the socket's <code class="computeroutput">connect</code> member
|
||||
function, once for each endpoint in the sequence, until a connection is
|
||||
successfully established.
|
||||
</p>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload12.h0"></a>
|
||||
<span><a name="asio.reference.connect.overload12.parameters"></a></span><a class="link" href="overload12.html#asio.reference.connect.overload12.parameters">Parameters</a>
|
||||
</h6>
|
||||
<div class="variablelist">
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term">s</span></dt>
|
||||
<dd><p>
|
||||
The socket to be connected. If the socket is already open, it will
|
||||
be closed.
|
||||
</p></dd>
|
||||
<dt><span class="term">begin</span></dt>
|
||||
<dd><p>
|
||||
An iterator pointing to the start of a sequence of endpoints.
|
||||
</p></dd>
|
||||
<dt><span class="term">end</span></dt>
|
||||
<dd><p>
|
||||
An iterator pointing to the end of a sequence of endpoints.
|
||||
</p></dd>
|
||||
<dt><span class="term">connect_condition</span></dt>
|
||||
<dd>
|
||||
<p>
|
||||
A function object that is called prior to each connection attempt.
|
||||
The signature of the function object must be:
|
||||
</p>
|
||||
<pre class="programlisting">bool connect_condition(
|
||||
const asio::error_code& ec,
|
||||
const typename Protocol::endpoint& next);
|
||||
</pre>
|
||||
<p>
|
||||
The <code class="computeroutput">ec</code> parameter contains the result from the most recent
|
||||
connect operation. Before the first connection attempt, <code class="computeroutput">ec</code>
|
||||
is always set to indicate success. The <code class="computeroutput">next</code> parameter
|
||||
is the next endpoint to be tried. The function object should return
|
||||
true if the next endpoint should be tried, and false if it should
|
||||
be skipped.
|
||||
</p>
|
||||
</dd>
|
||||
<dt><span class="term">ec</span></dt>
|
||||
<dd><p>
|
||||
Set to indicate what error occurred, if any. If the sequence is empty,
|
||||
set to <code class="computeroutput">asio::error::not_found</code>. Otherwise, contains the
|
||||
error from the last connection attempt.
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload12.h1"></a>
|
||||
<span><a name="asio.reference.connect.overload12.return_value"></a></span><a class="link" href="overload12.html#asio.reference.connect.overload12.return_value">Return
|
||||
Value</a>
|
||||
</h6>
|
||||
<p>
|
||||
On success, an iterator denoting the successfully connected endpoint. Otherwise,
|
||||
the end iterator.
|
||||
</p>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload12.h2"></a>
|
||||
<span><a name="asio.reference.connect.overload12.example"></a></span><a class="link" href="overload12.html#asio.reference.connect.overload12.example">Example</a>
|
||||
</h6>
|
||||
<p>
|
||||
The following connect condition function object can be used to output information
|
||||
about the individual connection attempts:
|
||||
</p>
|
||||
<pre class="programlisting">struct my_connect_condition
|
||||
{
|
||||
bool operator()(
|
||||
const asio::error_code& ec,
|
||||
const::tcp::endpoint& next)
|
||||
{
|
||||
if (ec) std::cout << "Error: " << ec.message() << std::endl;
|
||||
std::cout << "Trying: " << next << std::endl;
|
||||
return true;
|
||||
}
|
||||
};
|
||||
</pre>
|
||||
<p>
|
||||
It would be used with the <code class="computeroutput">asio::connect</code> function as follows:
|
||||
</p>
|
||||
<pre class="programlisting">tcp::resolver r(my_context);
|
||||
tcp::resolver::query q("host", "service");
|
||||
tcp::resolver::results_type e = r.resolve(q);
|
||||
tcp::socket s(my_context);
|
||||
asio::error_code ec;
|
||||
tcp::resolver::results_type::iterator i = asio::connect(
|
||||
s, e.begin(), e.end(), my_connect_condition());
|
||||
if (ec)
|
||||
{
|
||||
// An error occurred.
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Connected to: " << i->endpoint() << std::endl;
|
||||
}
|
||||
</pre>
|
||||
</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-2020 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="overload11.html"><img src="../../../prev.png" alt="Prev"></a><a accesskey="u" href="../connect.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="../const_buffer.html"><img src="../../../next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,104 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>connect (2 of 12 overloads)</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="../connect.html" title="connect">
|
||||
<link rel="prev" href="overload1.html" title="connect (1 of 12 overloads)">
|
||||
<link rel="next" href="overload3.html" title="connect (3 of 12 overloads)">
|
||||
</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="overload1.html"><img src="../../../prev.png" alt="Prev"></a><a accesskey="u" href="../connect.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="overload3.html"><img src="../../../next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="asio.reference.connect.overload2"></a><a class="link" href="overload2.html" title="connect (2 of 12 overloads)">connect (2 of 12
|
||||
overloads)</a>
|
||||
</h4></div></div></div>
|
||||
<p>
|
||||
Establishes a socket connection by trying each endpoint in a sequence.
|
||||
</p>
|
||||
<pre class="programlisting">template<
|
||||
typename <a class="link" href="../Protocol.html" title="Protocol requirements">Protocol</a>,
|
||||
typename <a class="link" href="../Executor1.html" title="Executor requirements">Executor</a>,
|
||||
typename <a class="link" href="../EndpointSequence.html" title="Endpoint sequence requirements">EndpointSequence</a>>
|
||||
Protocol::endpoint connect(
|
||||
basic_socket< Protocol, Executor > & s,
|
||||
const EndpointSequence & endpoints,
|
||||
asio::error_code & ec,
|
||||
typename enable_if< is_endpoint_sequence< EndpointSequence >::value >::type * = 0);
|
||||
</pre>
|
||||
<p>
|
||||
This function attempts to connect a socket to one of a sequence of endpoints.
|
||||
It does this by repeated calls to the socket's <code class="computeroutput">connect</code> member
|
||||
function, once for each endpoint in the sequence, until a connection is
|
||||
successfully established.
|
||||
</p>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload2.h0"></a>
|
||||
<span><a name="asio.reference.connect.overload2.parameters"></a></span><a class="link" href="overload2.html#asio.reference.connect.overload2.parameters">Parameters</a>
|
||||
</h6>
|
||||
<div class="variablelist">
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term">s</span></dt>
|
||||
<dd><p>
|
||||
The socket to be connected. If the socket is already open, it will
|
||||
be closed.
|
||||
</p></dd>
|
||||
<dt><span class="term">endpoints</span></dt>
|
||||
<dd><p>
|
||||
A sequence of endpoints.
|
||||
</p></dd>
|
||||
<dt><span class="term">ec</span></dt>
|
||||
<dd><p>
|
||||
Set to indicate what error occurred, if any. If the sequence is empty,
|
||||
set to <code class="computeroutput">asio::error::not_found</code>. Otherwise, contains the
|
||||
error from the last connection attempt.
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload2.h1"></a>
|
||||
<span><a name="asio.reference.connect.overload2.return_value"></a></span><a class="link" href="overload2.html#asio.reference.connect.overload2.return_value">Return
|
||||
Value</a>
|
||||
</h6>
|
||||
<p>
|
||||
On success, the successfully connected endpoint. Otherwise, a default-constructed
|
||||
endpoint.
|
||||
</p>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload2.h2"></a>
|
||||
<span><a name="asio.reference.connect.overload2.example"></a></span><a class="link" href="overload2.html#asio.reference.connect.overload2.example">Example</a>
|
||||
</h6>
|
||||
<pre class="programlisting">tcp::resolver r(my_context);
|
||||
tcp::resolver::query q("host", "service");
|
||||
tcp::socket s(my_context);
|
||||
asio::error_code ec;
|
||||
asio::connect(s, r.resolve(q), ec);
|
||||
if (ec)
|
||||
{
|
||||
// An error occurred.
|
||||
}
|
||||
</pre>
|
||||
</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-2020 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="../../../prev.png" alt="Prev"></a><a accesskey="u" href="../connect.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="overload3.html"><img src="../../../next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,108 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>connect (3 of 12 overloads)</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="../connect.html" title="connect">
|
||||
<link rel="prev" href="overload2.html" title="connect (2 of 12 overloads)">
|
||||
<link rel="next" href="overload4.html" title="connect (4 of 12 overloads)">
|
||||
</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="overload2.html"><img src="../../../prev.png" alt="Prev"></a><a accesskey="u" href="../connect.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="overload4.html"><img src="../../../next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="asio.reference.connect.overload3"></a><a class="link" href="overload3.html" title="connect (3 of 12 overloads)">connect (3 of 12
|
||||
overloads)</a>
|
||||
</h4></div></div></div>
|
||||
<p>
|
||||
(Deprecated: Use range overload.) Establishes a socket connection by trying
|
||||
each endpoint in a sequence.
|
||||
</p>
|
||||
<pre class="programlisting">template<
|
||||
typename <a class="link" href="../Protocol.html" title="Protocol requirements">Protocol</a>,
|
||||
typename <a class="link" href="../Executor1.html" title="Executor requirements">Executor</a>,
|
||||
typename Iterator>
|
||||
Iterator connect(
|
||||
basic_socket< Protocol, Executor > & s,
|
||||
Iterator begin,
|
||||
typename enable_if<!is_endpoint_sequence< Iterator >::value >::type * = 0);
|
||||
</pre>
|
||||
<p>
|
||||
This function attempts to connect a socket to one of a sequence of endpoints.
|
||||
It does this by repeated calls to the socket's <code class="computeroutput">connect</code> member
|
||||
function, once for each endpoint in the sequence, until a connection is
|
||||
successfully established.
|
||||
</p>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload3.h0"></a>
|
||||
<span><a name="asio.reference.connect.overload3.parameters"></a></span><a class="link" href="overload3.html#asio.reference.connect.overload3.parameters">Parameters</a>
|
||||
</h6>
|
||||
<div class="variablelist">
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term">s</span></dt>
|
||||
<dd><p>
|
||||
The socket to be connected. If the socket is already open, it will
|
||||
be closed.
|
||||
</p></dd>
|
||||
<dt><span class="term">begin</span></dt>
|
||||
<dd><p>
|
||||
An iterator pointing to the start of a sequence of endpoints.
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload3.h1"></a>
|
||||
<span><a name="asio.reference.connect.overload3.return_value"></a></span><a class="link" href="overload3.html#asio.reference.connect.overload3.return_value">Return
|
||||
Value</a>
|
||||
</h6>
|
||||
<p>
|
||||
On success, an iterator denoting the successfully connected endpoint. Otherwise,
|
||||
the end iterator.
|
||||
</p>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload3.h2"></a>
|
||||
<span><a name="asio.reference.connect.overload3.exceptions"></a></span><a class="link" href="overload3.html#asio.reference.connect.overload3.exceptions">Exceptions</a>
|
||||
</h6>
|
||||
<div class="variablelist">
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term">asio::system_error</span></dt>
|
||||
<dd><p>
|
||||
Thrown on failure. If the sequence is empty, the associated <code class="computeroutput">error_code</code>
|
||||
is <code class="computeroutput">asio::error::not_found</code>. Otherwise, contains the error
|
||||
from the last connection attempt.
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload3.h3"></a>
|
||||
<span><a name="asio.reference.connect.overload3.remarks"></a></span><a class="link" href="overload3.html#asio.reference.connect.overload3.remarks">Remarks</a>
|
||||
</h6>
|
||||
<p>
|
||||
This overload assumes that a default constructed object of type <code class="computeroutput">Iterator</code>
|
||||
represents the end of the sequence. This is a valid assumption for iterator
|
||||
types such as <code class="computeroutput">asio::ip::tcp::resolver::iterator</code>.
|
||||
</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 © 2003-2020 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="overload2.html"><img src="../../../prev.png" alt="Prev"></a><a accesskey="u" href="../connect.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="overload4.html"><img src="../../../next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,100 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>connect (4 of 12 overloads)</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="../connect.html" title="connect">
|
||||
<link rel="prev" href="overload3.html" title="connect (3 of 12 overloads)">
|
||||
<link rel="next" href="overload5.html" title="connect (5 of 12 overloads)">
|
||||
</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="overload3.html"><img src="../../../prev.png" alt="Prev"></a><a accesskey="u" href="../connect.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="overload5.html"><img src="../../../next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="asio.reference.connect.overload4"></a><a class="link" href="overload4.html" title="connect (4 of 12 overloads)">connect (4 of 12
|
||||
overloads)</a>
|
||||
</h4></div></div></div>
|
||||
<p>
|
||||
(Deprecated: Use range overload.) Establishes a socket connection by trying
|
||||
each endpoint in a sequence.
|
||||
</p>
|
||||
<pre class="programlisting">template<
|
||||
typename <a class="link" href="../Protocol.html" title="Protocol requirements">Protocol</a>,
|
||||
typename <a class="link" href="../Executor1.html" title="Executor requirements">Executor</a>,
|
||||
typename Iterator>
|
||||
Iterator connect(
|
||||
basic_socket< Protocol, Executor > & s,
|
||||
Iterator begin,
|
||||
asio::error_code & ec,
|
||||
typename enable_if<!is_endpoint_sequence< Iterator >::value >::type * = 0);
|
||||
</pre>
|
||||
<p>
|
||||
This function attempts to connect a socket to one of a sequence of endpoints.
|
||||
It does this by repeated calls to the socket's <code class="computeroutput">connect</code> member
|
||||
function, once for each endpoint in the sequence, until a connection is
|
||||
successfully established.
|
||||
</p>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload4.h0"></a>
|
||||
<span><a name="asio.reference.connect.overload4.parameters"></a></span><a class="link" href="overload4.html#asio.reference.connect.overload4.parameters">Parameters</a>
|
||||
</h6>
|
||||
<div class="variablelist">
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term">s</span></dt>
|
||||
<dd><p>
|
||||
The socket to be connected. If the socket is already open, it will
|
||||
be closed.
|
||||
</p></dd>
|
||||
<dt><span class="term">begin</span></dt>
|
||||
<dd><p>
|
||||
An iterator pointing to the start of a sequence of endpoints.
|
||||
</p></dd>
|
||||
<dt><span class="term">ec</span></dt>
|
||||
<dd><p>
|
||||
Set to indicate what error occurred, if any. If the sequence is empty,
|
||||
set to <code class="computeroutput">asio::error::not_found</code>. Otherwise, contains the
|
||||
error from the last connection attempt.
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload4.h1"></a>
|
||||
<span><a name="asio.reference.connect.overload4.return_value"></a></span><a class="link" href="overload4.html#asio.reference.connect.overload4.return_value">Return
|
||||
Value</a>
|
||||
</h6>
|
||||
<p>
|
||||
On success, an iterator denoting the successfully connected endpoint. Otherwise,
|
||||
the end iterator.
|
||||
</p>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload4.h2"></a>
|
||||
<span><a name="asio.reference.connect.overload4.remarks"></a></span><a class="link" href="overload4.html#asio.reference.connect.overload4.remarks">Remarks</a>
|
||||
</h6>
|
||||
<p>
|
||||
This overload assumes that a default constructed object of type <code class="computeroutput">Iterator</code>
|
||||
represents the end of the sequence. This is a valid assumption for iterator
|
||||
types such as <code class="computeroutput">asio::ip::tcp::resolver::iterator</code>.
|
||||
</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 © 2003-2020 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="overload3.html"><img src="../../../prev.png" alt="Prev"></a><a accesskey="u" href="../connect.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="overload5.html"><img src="../../../next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,111 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>connect (5 of 12 overloads)</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="../connect.html" title="connect">
|
||||
<link rel="prev" href="overload4.html" title="connect (4 of 12 overloads)">
|
||||
<link rel="next" href="overload6.html" title="connect (6 of 12 overloads)">
|
||||
</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="overload4.html"><img src="../../../prev.png" alt="Prev"></a><a accesskey="u" href="../connect.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="overload6.html"><img src="../../../next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="asio.reference.connect.overload5"></a><a class="link" href="overload5.html" title="connect (5 of 12 overloads)">connect (5 of 12
|
||||
overloads)</a>
|
||||
</h4></div></div></div>
|
||||
<p>
|
||||
Establishes a socket connection by trying each endpoint in a sequence.
|
||||
</p>
|
||||
<pre class="programlisting">template<
|
||||
typename <a class="link" href="../Protocol.html" title="Protocol requirements">Protocol</a>,
|
||||
typename <a class="link" href="../Executor1.html" title="Executor requirements">Executor</a>,
|
||||
typename Iterator>
|
||||
Iterator connect(
|
||||
basic_socket< Protocol, Executor > & s,
|
||||
Iterator begin,
|
||||
Iterator end);
|
||||
</pre>
|
||||
<p>
|
||||
This function attempts to connect a socket to one of a sequence of endpoints.
|
||||
It does this by repeated calls to the socket's <code class="computeroutput">connect</code> member
|
||||
function, once for each endpoint in the sequence, until a connection is
|
||||
successfully established.
|
||||
</p>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload5.h0"></a>
|
||||
<span><a name="asio.reference.connect.overload5.parameters"></a></span><a class="link" href="overload5.html#asio.reference.connect.overload5.parameters">Parameters</a>
|
||||
</h6>
|
||||
<div class="variablelist">
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term">s</span></dt>
|
||||
<dd><p>
|
||||
The socket to be connected. If the socket is already open, it will
|
||||
be closed.
|
||||
</p></dd>
|
||||
<dt><span class="term">begin</span></dt>
|
||||
<dd><p>
|
||||
An iterator pointing to the start of a sequence of endpoints.
|
||||
</p></dd>
|
||||
<dt><span class="term">end</span></dt>
|
||||
<dd><p>
|
||||
An iterator pointing to the end of a sequence of endpoints.
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload5.h1"></a>
|
||||
<span><a name="asio.reference.connect.overload5.return_value"></a></span><a class="link" href="overload5.html#asio.reference.connect.overload5.return_value">Return
|
||||
Value</a>
|
||||
</h6>
|
||||
<p>
|
||||
An iterator denoting the successfully connected endpoint.
|
||||
</p>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload5.h2"></a>
|
||||
<span><a name="asio.reference.connect.overload5.exceptions"></a></span><a class="link" href="overload5.html#asio.reference.connect.overload5.exceptions">Exceptions</a>
|
||||
</h6>
|
||||
<div class="variablelist">
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term">asio::system_error</span></dt>
|
||||
<dd><p>
|
||||
Thrown on failure. If the sequence is empty, the associated <code class="computeroutput">error_code</code>
|
||||
is <code class="computeroutput">asio::error::not_found</code>. Otherwise, contains the error
|
||||
from the last connection attempt.
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload5.h3"></a>
|
||||
<span><a name="asio.reference.connect.overload5.example"></a></span><a class="link" href="overload5.html#asio.reference.connect.overload5.example">Example</a>
|
||||
</h6>
|
||||
<pre class="programlisting">tcp::resolver r(my_context);
|
||||
tcp::resolver::query q("host", "service");
|
||||
tcp::resolver::results_type e = r.resolve(q);
|
||||
tcp::socket s(my_context);
|
||||
asio::connect(s, e.begin(), e.end());
|
||||
</pre>
|
||||
</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-2020 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="overload4.html"><img src="../../../prev.png" alt="Prev"></a><a accesskey="u" href="../connect.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="overload6.html"><img src="../../../next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,109 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>connect (6 of 12 overloads)</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="../connect.html" title="connect">
|
||||
<link rel="prev" href="overload5.html" title="connect (5 of 12 overloads)">
|
||||
<link rel="next" href="overload7.html" title="connect (7 of 12 overloads)">
|
||||
</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="overload5.html"><img src="../../../prev.png" alt="Prev"></a><a accesskey="u" href="../connect.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="overload7.html"><img src="../../../next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="asio.reference.connect.overload6"></a><a class="link" href="overload6.html" title="connect (6 of 12 overloads)">connect (6 of 12
|
||||
overloads)</a>
|
||||
</h4></div></div></div>
|
||||
<p>
|
||||
Establishes a socket connection by trying each endpoint in a sequence.
|
||||
</p>
|
||||
<pre class="programlisting">template<
|
||||
typename <a class="link" href="../Protocol.html" title="Protocol requirements">Protocol</a>,
|
||||
typename <a class="link" href="../Executor1.html" title="Executor requirements">Executor</a>,
|
||||
typename Iterator>
|
||||
Iterator connect(
|
||||
basic_socket< Protocol, Executor > & s,
|
||||
Iterator begin,
|
||||
Iterator end,
|
||||
asio::error_code & ec);
|
||||
</pre>
|
||||
<p>
|
||||
This function attempts to connect a socket to one of a sequence of endpoints.
|
||||
It does this by repeated calls to the socket's <code class="computeroutput">connect</code> member
|
||||
function, once for each endpoint in the sequence, until a connection is
|
||||
successfully established.
|
||||
</p>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload6.h0"></a>
|
||||
<span><a name="asio.reference.connect.overload6.parameters"></a></span><a class="link" href="overload6.html#asio.reference.connect.overload6.parameters">Parameters</a>
|
||||
</h6>
|
||||
<div class="variablelist">
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term">s</span></dt>
|
||||
<dd><p>
|
||||
The socket to be connected. If the socket is already open, it will
|
||||
be closed.
|
||||
</p></dd>
|
||||
<dt><span class="term">begin</span></dt>
|
||||
<dd><p>
|
||||
An iterator pointing to the start of a sequence of endpoints.
|
||||
</p></dd>
|
||||
<dt><span class="term">end</span></dt>
|
||||
<dd><p>
|
||||
An iterator pointing to the end of a sequence of endpoints.
|
||||
</p></dd>
|
||||
<dt><span class="term">ec</span></dt>
|
||||
<dd><p>
|
||||
Set to indicate what error occurred, if any. If the sequence is empty,
|
||||
set to <code class="computeroutput">asio::error::not_found</code>. Otherwise, contains the
|
||||
error from the last connection attempt.
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload6.h1"></a>
|
||||
<span><a name="asio.reference.connect.overload6.return_value"></a></span><a class="link" href="overload6.html#asio.reference.connect.overload6.return_value">Return
|
||||
Value</a>
|
||||
</h6>
|
||||
<p>
|
||||
On success, an iterator denoting the successfully connected endpoint. Otherwise,
|
||||
the end iterator.
|
||||
</p>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload6.h2"></a>
|
||||
<span><a name="asio.reference.connect.overload6.example"></a></span><a class="link" href="overload6.html#asio.reference.connect.overload6.example">Example</a>
|
||||
</h6>
|
||||
<pre class="programlisting">tcp::resolver r(my_context);
|
||||
tcp::resolver::query q("host", "service");
|
||||
tcp::resolver::results_type e = r.resolve(q);
|
||||
tcp::socket s(my_context);
|
||||
asio::error_code ec;
|
||||
asio::connect(s, e.begin(), e.end(), ec);
|
||||
if (ec)
|
||||
{
|
||||
// An error occurred.
|
||||
}
|
||||
</pre>
|
||||
</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-2020 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="overload5.html"><img src="../../../prev.png" alt="Prev"></a><a accesskey="u" href="../connect.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="overload7.html"><img src="../../../next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,148 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>connect (7 of 12 overloads)</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="../connect.html" title="connect">
|
||||
<link rel="prev" href="overload6.html" title="connect (6 of 12 overloads)">
|
||||
<link rel="next" href="overload8.html" title="connect (8 of 12 overloads)">
|
||||
</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="overload6.html"><img src="../../../prev.png" alt="Prev"></a><a accesskey="u" href="../connect.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="overload8.html"><img src="../../../next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="asio.reference.connect.overload7"></a><a class="link" href="overload7.html" title="connect (7 of 12 overloads)">connect (7 of 12
|
||||
overloads)</a>
|
||||
</h4></div></div></div>
|
||||
<p>
|
||||
Establishes a socket connection by trying each endpoint in a sequence.
|
||||
</p>
|
||||
<pre class="programlisting">template<
|
||||
typename <a class="link" href="../Protocol.html" title="Protocol requirements">Protocol</a>,
|
||||
typename <a class="link" href="../Executor1.html" title="Executor requirements">Executor</a>,
|
||||
typename <a class="link" href="../EndpointSequence.html" title="Endpoint sequence requirements">EndpointSequence</a>,
|
||||
typename <a class="link" href="../ConnectCondition.html" title="Connect condition requirements">ConnectCondition</a>>
|
||||
Protocol::endpoint connect(
|
||||
basic_socket< Protocol, Executor > & s,
|
||||
const EndpointSequence & endpoints,
|
||||
ConnectCondition connect_condition,
|
||||
typename enable_if< is_endpoint_sequence< EndpointSequence >::value >::type * = 0);
|
||||
</pre>
|
||||
<p>
|
||||
This function attempts to connect a socket to one of a sequence of endpoints.
|
||||
It does this by repeated calls to the socket's <code class="computeroutput">connect</code> member
|
||||
function, once for each endpoint in the sequence, until a connection is
|
||||
successfully established.
|
||||
</p>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload7.h0"></a>
|
||||
<span><a name="asio.reference.connect.overload7.parameters"></a></span><a class="link" href="overload7.html#asio.reference.connect.overload7.parameters">Parameters</a>
|
||||
</h6>
|
||||
<div class="variablelist">
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term">s</span></dt>
|
||||
<dd><p>
|
||||
The socket to be connected. If the socket is already open, it will
|
||||
be closed.
|
||||
</p></dd>
|
||||
<dt><span class="term">endpoints</span></dt>
|
||||
<dd><p>
|
||||
A sequence of endpoints.
|
||||
</p></dd>
|
||||
<dt><span class="term">connect_condition</span></dt>
|
||||
<dd>
|
||||
<p>
|
||||
A function object that is called prior to each connection attempt.
|
||||
The signature of the function object must be:
|
||||
</p>
|
||||
<pre class="programlisting">bool connect_condition(
|
||||
const asio::error_code& ec,
|
||||
const typename Protocol::endpoint& next);
|
||||
</pre>
|
||||
<p>
|
||||
The <code class="computeroutput">ec</code> parameter contains the result from the most recent
|
||||
connect operation. Before the first connection attempt, <code class="computeroutput">ec</code>
|
||||
is always set to indicate success. The <code class="computeroutput">next</code> parameter
|
||||
is the next endpoint to be tried. The function object should return
|
||||
true if the next endpoint should be tried, and false if it should
|
||||
be skipped.
|
||||
</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload7.h1"></a>
|
||||
<span><a name="asio.reference.connect.overload7.return_value"></a></span><a class="link" href="overload7.html#asio.reference.connect.overload7.return_value">Return
|
||||
Value</a>
|
||||
</h6>
|
||||
<p>
|
||||
The successfully connected endpoint.
|
||||
</p>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload7.h2"></a>
|
||||
<span><a name="asio.reference.connect.overload7.exceptions"></a></span><a class="link" href="overload7.html#asio.reference.connect.overload7.exceptions">Exceptions</a>
|
||||
</h6>
|
||||
<div class="variablelist">
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term">asio::system_error</span></dt>
|
||||
<dd><p>
|
||||
Thrown on failure. If the sequence is empty, the associated <code class="computeroutput">error_code</code>
|
||||
is <code class="computeroutput">asio::error::not_found</code>. Otherwise, contains the error
|
||||
from the last connection attempt.
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload7.h3"></a>
|
||||
<span><a name="asio.reference.connect.overload7.example"></a></span><a class="link" href="overload7.html#asio.reference.connect.overload7.example">Example</a>
|
||||
</h6>
|
||||
<p>
|
||||
The following connect condition function object can be used to output information
|
||||
about the individual connection attempts:
|
||||
</p>
|
||||
<pre class="programlisting">struct my_connect_condition
|
||||
{
|
||||
bool operator()(
|
||||
const asio::error_code& ec,
|
||||
const::tcp::endpoint& next)
|
||||
{
|
||||
if (ec) std::cout << "Error: " << ec.message() << std::endl;
|
||||
std::cout << "Trying: " << next << std::endl;
|
||||
return true;
|
||||
}
|
||||
};
|
||||
</pre>
|
||||
<p>
|
||||
It would be used with the <code class="computeroutput">asio::connect</code> function as follows:
|
||||
</p>
|
||||
<pre class="programlisting">tcp::resolver r(my_context);
|
||||
tcp::resolver::query q("host", "service");
|
||||
tcp::socket s(my_context);
|
||||
tcp::endpoint e = asio::connect(s,
|
||||
r.resolve(q), my_connect_condition());
|
||||
std::cout << "Connected to: " << e << std::endl;
|
||||
</pre>
|
||||
</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-2020 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="overload6.html"><img src="../../../prev.png" alt="Prev"></a><a accesskey="u" href="../connect.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="overload8.html"><img src="../../../next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,149 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>connect (8 of 12 overloads)</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="../connect.html" title="connect">
|
||||
<link rel="prev" href="overload7.html" title="connect (7 of 12 overloads)">
|
||||
<link rel="next" href="overload9.html" title="connect (9 of 12 overloads)">
|
||||
</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="overload7.html"><img src="../../../prev.png" alt="Prev"></a><a accesskey="u" href="../connect.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="overload9.html"><img src="../../../next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="asio.reference.connect.overload8"></a><a class="link" href="overload8.html" title="connect (8 of 12 overloads)">connect (8 of 12
|
||||
overloads)</a>
|
||||
</h4></div></div></div>
|
||||
<p>
|
||||
Establishes a socket connection by trying each endpoint in a sequence.
|
||||
</p>
|
||||
<pre class="programlisting">template<
|
||||
typename <a class="link" href="../Protocol.html" title="Protocol requirements">Protocol</a>,
|
||||
typename <a class="link" href="../Executor1.html" title="Executor requirements">Executor</a>,
|
||||
typename <a class="link" href="../EndpointSequence.html" title="Endpoint sequence requirements">EndpointSequence</a>,
|
||||
typename <a class="link" href="../ConnectCondition.html" title="Connect condition requirements">ConnectCondition</a>>
|
||||
Protocol::endpoint connect(
|
||||
basic_socket< Protocol, Executor > & s,
|
||||
const EndpointSequence & endpoints,
|
||||
ConnectCondition connect_condition,
|
||||
asio::error_code & ec,
|
||||
typename enable_if< is_endpoint_sequence< EndpointSequence >::value >::type * = 0);
|
||||
</pre>
|
||||
<p>
|
||||
This function attempts to connect a socket to one of a sequence of endpoints.
|
||||
It does this by repeated calls to the socket's <code class="computeroutput">connect</code> member
|
||||
function, once for each endpoint in the sequence, until a connection is
|
||||
successfully established.
|
||||
</p>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload8.h0"></a>
|
||||
<span><a name="asio.reference.connect.overload8.parameters"></a></span><a class="link" href="overload8.html#asio.reference.connect.overload8.parameters">Parameters</a>
|
||||
</h6>
|
||||
<div class="variablelist">
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term">s</span></dt>
|
||||
<dd><p>
|
||||
The socket to be connected. If the socket is already open, it will
|
||||
be closed.
|
||||
</p></dd>
|
||||
<dt><span class="term">endpoints</span></dt>
|
||||
<dd><p>
|
||||
A sequence of endpoints.
|
||||
</p></dd>
|
||||
<dt><span class="term">connect_condition</span></dt>
|
||||
<dd>
|
||||
<p>
|
||||
A function object that is called prior to each connection attempt.
|
||||
The signature of the function object must be:
|
||||
</p>
|
||||
<pre class="programlisting">bool connect_condition(
|
||||
const asio::error_code& ec,
|
||||
const typename Protocol::endpoint& next);
|
||||
</pre>
|
||||
<p>
|
||||
The <code class="computeroutput">ec</code> parameter contains the result from the most recent
|
||||
connect operation. Before the first connection attempt, <code class="computeroutput">ec</code>
|
||||
is always set to indicate success. The <code class="computeroutput">next</code> parameter
|
||||
is the next endpoint to be tried. The function object should return
|
||||
true if the next endpoint should be tried, and false if it should
|
||||
be skipped.
|
||||
</p>
|
||||
</dd>
|
||||
<dt><span class="term">ec</span></dt>
|
||||
<dd><p>
|
||||
Set to indicate what error occurred, if any. If the sequence is empty,
|
||||
set to <code class="computeroutput">asio::error::not_found</code>. Otherwise, contains the
|
||||
error from the last connection attempt.
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload8.h1"></a>
|
||||
<span><a name="asio.reference.connect.overload8.return_value"></a></span><a class="link" href="overload8.html#asio.reference.connect.overload8.return_value">Return
|
||||
Value</a>
|
||||
</h6>
|
||||
<p>
|
||||
On success, the successfully connected endpoint. Otherwise, a default-constructed
|
||||
endpoint.
|
||||
</p>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload8.h2"></a>
|
||||
<span><a name="asio.reference.connect.overload8.example"></a></span><a class="link" href="overload8.html#asio.reference.connect.overload8.example">Example</a>
|
||||
</h6>
|
||||
<p>
|
||||
The following connect condition function object can be used to output information
|
||||
about the individual connection attempts:
|
||||
</p>
|
||||
<pre class="programlisting">struct my_connect_condition
|
||||
{
|
||||
bool operator()(
|
||||
const asio::error_code& ec,
|
||||
const::tcp::endpoint& next)
|
||||
{
|
||||
if (ec) std::cout << "Error: " << ec.message() << std::endl;
|
||||
std::cout << "Trying: " << next << std::endl;
|
||||
return true;
|
||||
}
|
||||
};
|
||||
</pre>
|
||||
<p>
|
||||
It would be used with the <code class="computeroutput">asio::connect</code> function as follows:
|
||||
</p>
|
||||
<pre class="programlisting">tcp::resolver r(my_context);
|
||||
tcp::resolver::query q("host", "service");
|
||||
tcp::socket s(my_context);
|
||||
asio::error_code ec;
|
||||
tcp::endpoint e = asio::connect(s,
|
||||
r.resolve(q), my_connect_condition(), ec);
|
||||
if (ec)
|
||||
{
|
||||
// An error occurred.
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Connected to: " << e << std::endl;
|
||||
}
|
||||
</pre>
|
||||
</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-2020 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="overload7.html"><img src="../../../prev.png" alt="Prev"></a><a accesskey="u" href="../connect.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="overload9.html"><img src="../../../next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,129 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>connect (9 of 12 overloads)</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="../connect.html" title="connect">
|
||||
<link rel="prev" href="overload8.html" title="connect (8 of 12 overloads)">
|
||||
<link rel="next" href="overload10.html" title="connect (10 of 12 overloads)">
|
||||
</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="overload8.html"><img src="../../../prev.png" alt="Prev"></a><a accesskey="u" href="../connect.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="overload10.html"><img src="../../../next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="asio.reference.connect.overload9"></a><a class="link" href="overload9.html" title="connect (9 of 12 overloads)">connect (9 of 12
|
||||
overloads)</a>
|
||||
</h4></div></div></div>
|
||||
<p>
|
||||
(Deprecated: Use range overload.) Establishes a socket connection by trying
|
||||
each endpoint in a sequence.
|
||||
</p>
|
||||
<pre class="programlisting">template<
|
||||
typename <a class="link" href="../Protocol.html" title="Protocol requirements">Protocol</a>,
|
||||
typename <a class="link" href="../Executor1.html" title="Executor requirements">Executor</a>,
|
||||
typename Iterator,
|
||||
typename <a class="link" href="../ConnectCondition.html" title="Connect condition requirements">ConnectCondition</a>>
|
||||
Iterator connect(
|
||||
basic_socket< Protocol, Executor > & s,
|
||||
Iterator begin,
|
||||
ConnectCondition connect_condition,
|
||||
typename enable_if<!is_endpoint_sequence< Iterator >::value >::type * = 0);
|
||||
</pre>
|
||||
<p>
|
||||
This function attempts to connect a socket to one of a sequence of endpoints.
|
||||
It does this by repeated calls to the socket's <code class="computeroutput">connect</code> member
|
||||
function, once for each endpoint in the sequence, until a connection is
|
||||
successfully established.
|
||||
</p>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload9.h0"></a>
|
||||
<span><a name="asio.reference.connect.overload9.parameters"></a></span><a class="link" href="overload9.html#asio.reference.connect.overload9.parameters">Parameters</a>
|
||||
</h6>
|
||||
<div class="variablelist">
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term">s</span></dt>
|
||||
<dd><p>
|
||||
The socket to be connected. If the socket is already open, it will
|
||||
be closed.
|
||||
</p></dd>
|
||||
<dt><span class="term">begin</span></dt>
|
||||
<dd><p>
|
||||
An iterator pointing to the start of a sequence of endpoints.
|
||||
</p></dd>
|
||||
<dt><span class="term">connect_condition</span></dt>
|
||||
<dd>
|
||||
<p>
|
||||
A function object that is called prior to each connection attempt.
|
||||
The signature of the function object must be:
|
||||
</p>
|
||||
<pre class="programlisting">bool connect_condition(
|
||||
const asio::error_code& ec,
|
||||
const typename Protocol::endpoint& next);
|
||||
</pre>
|
||||
<p>
|
||||
The <code class="computeroutput">ec</code> parameter contains the result from the most recent
|
||||
connect operation. Before the first connection attempt, <code class="computeroutput">ec</code>
|
||||
is always set to indicate success. The <code class="computeroutput">next</code> parameter
|
||||
is the next endpoint to be tried. The function object should return
|
||||
true if the next endpoint should be tried, and false if it should
|
||||
be skipped.
|
||||
</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload9.h1"></a>
|
||||
<span><a name="asio.reference.connect.overload9.return_value"></a></span><a class="link" href="overload9.html#asio.reference.connect.overload9.return_value">Return
|
||||
Value</a>
|
||||
</h6>
|
||||
<p>
|
||||
On success, an iterator denoting the successfully connected endpoint. Otherwise,
|
||||
the end iterator.
|
||||
</p>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload9.h2"></a>
|
||||
<span><a name="asio.reference.connect.overload9.exceptions"></a></span><a class="link" href="overload9.html#asio.reference.connect.overload9.exceptions">Exceptions</a>
|
||||
</h6>
|
||||
<div class="variablelist">
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term">asio::system_error</span></dt>
|
||||
<dd><p>
|
||||
Thrown on failure. If the sequence is empty, the associated <code class="computeroutput">error_code</code>
|
||||
is <code class="computeroutput">asio::error::not_found</code>. Otherwise, contains the error
|
||||
from the last connection attempt.
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<h6>
|
||||
<a name="asio.reference.connect.overload9.h3"></a>
|
||||
<span><a name="asio.reference.connect.overload9.remarks"></a></span><a class="link" href="overload9.html#asio.reference.connect.overload9.remarks">Remarks</a>
|
||||
</h6>
|
||||
<p>
|
||||
This overload assumes that a default constructed object of type <code class="computeroutput">Iterator</code>
|
||||
represents the end of the sequence. This is a valid assumption for iterator
|
||||
types such as <code class="computeroutput">asio::ip::tcp::resolver::iterator</code>.
|
||||
</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 © 2003-2020 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="overload8.html"><img src="../../../prev.png" alt="Prev"></a><a accesskey="u" href="../connect.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="overload10.html"><img src="../../../next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
Reference in new issue
Block a user