1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4<title>basic_stream::connect (8 of 10 overloads)</title> 5<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> 6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> 7<link rel="home" href="../../../../index.html" title="Chapter 1. Boost.Beast"> 8<link rel="up" href="../connect.html" title="basic_stream::connect"> 9<link rel="prev" href="overload7.html" title="basic_stream::connect (7 of 10 overloads)"> 10<link rel="next" href="overload9.html" title="basic_stream::connect (9 of 10 overloads)"> 11</head> 12<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> 13<table cellpadding="2" width="100%"><tr> 14<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td> 15<td align="center"><a href="../../../../../../../../index.html">Home</a></td> 16<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> 17<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> 18<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> 19<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> 20</tr></table> 21<hr> 22<div class="spirit-nav"> 23<a accesskey="p" href="overload7.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../connect.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="overload9.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> 24</div> 25<div class="section"> 26<div class="titlepage"><div><div><h6 class="title"> 27<a name="beast.ref.boost__beast__basic_stream.connect.overload8"></a><a class="link" href="overload8.html" title="basic_stream::connect (8 of 10 overloads)">basic_stream::connect 28 (8 of 10 overloads)</a> 29</h6></div></div></div> 30<p> 31 Establishes a connection by trying each endpoint in a sequence. 32 </p> 33<h7><a name="beast.ref.boost__beast__basic_stream.connect.overload8.h0"></a> 34 <span class="phrase"><a name="beast.ref.boost__beast__basic_stream.connect.overload8.synopsis"></a></span><a class="link" href="overload8.html#beast.ref.boost__beast__basic_stream.connect.overload8.synopsis">Synopsis</a> 35 </h7><pre class="programlisting"><span class="keyword">template</span><span class="special"><</span> 36 <span class="keyword">class</span> <a href="../../../../../../../../doc/html/boost_asio/reference/EndpointSequence.html" target="_top"><span class="emphasis"><em>EndpointSequence</em></span></a><span class="special">,</span> 37 <span class="keyword">class</span> <a href="../../../../../../../../doc/html/boost_asio/reference/ConnectCondition.html" target="_top"><span class="emphasis"><em>ConnectCondition</em></span></a><span class="special">></span> 38<span class="identifier">Protocol</span><span class="special">::</span><span class="identifier">endpoint</span> 39<span class="identifier">connect</span><span class="special">(</span> 40 <span class="identifier">EndpointSequence</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">endpoints</span><span class="special">,</span> 41 <span class="identifier">ConnectCondition</span> <span class="identifier">connect_condition</span><span class="special">,</span> 42 <span class="identifier">error_code</span><span class="special">&</span> <span class="identifier">ec</span><span class="special">);</span> 43</pre> 44<h7><a name="beast.ref.boost__beast__basic_stream.connect.overload8.h1"></a> 45 <span class="phrase"><a name="beast.ref.boost__beast__basic_stream.connect.overload8.description"></a></span><a class="link" href="overload8.html#beast.ref.boost__beast__basic_stream.connect.overload8.description">Description</a> 46 </h7><p> 47 This function attempts to connect the stream to one of a sequence of 48 endpoints by trying each endpoint until a connection is successfully 49 established. The underlying socket is automatically opened if needed. 50 An automatically opened socket is not returned to the closed state upon 51 failure. The algorithm, known as a <span class="emphasis"><em>composed operation</em></span>, 52 is implemented in terms of calls to the underlying socket's <code class="computeroutput"><span class="identifier">connect</span></code> function. 53 </p> 54<h7><a name="beast.ref.boost__beast__basic_stream.connect.overload8.h2"></a> 55 <span class="phrase"><a name="beast.ref.boost__beast__basic_stream.connect.overload8.parameters"></a></span><a class="link" href="overload8.html#beast.ref.boost__beast__basic_stream.connect.overload8.parameters">Parameters</a> 56 </h7><div class="informaltable"><table class="table"> 57<colgroup> 58<col> 59<col> 60</colgroup> 61<thead><tr> 62<th> 63 <p> 64 Name 65 </p> 66 </th> 67<th> 68 <p> 69 Description 70 </p> 71 </th> 72</tr></thead> 73<tbody> 74<tr> 75<td> 76 <p> 77 <code class="computeroutput"><span class="identifier">endpoints</span></code> 78 </p> 79 </td> 80<td> 81 <p> 82 A sequence of endpoints. 83 </p> 84 </td> 85</tr> 86<tr> 87<td> 88 <p> 89 <code class="computeroutput"><span class="identifier">connect_condition</span></code> 90 </p> 91 </td> 92<td> 93 <p> 94 A function object that is called prior to each connection attempt. 95 The signature of the function object must be: 96 </p> 97<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">bool</span> <span class="identifier">connect_condition</span><span class="special">(</span> 98 <span class="identifier">error_code</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">ec</span><span class="special">,</span> 99 <span class="keyword">typename</span> <span class="identifier">Protocol</span><span class="special">::</span><span class="identifier">endpoint</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">next</span><span class="special">);</span> 100</pre> 101 <p> 102 The <code class="computeroutput"><span class="identifier">ec</span></code> parameter 103 contains the result from the most recent connect operation. 104 Before the first connection attempt, <code class="computeroutput"><span class="identifier">ec</span></code> 105 is always set to indicate success. The <code class="computeroutput"><span class="identifier">next</span></code> 106 parameter is the next endpoint to be tried. The function object 107 should return true if the next endpoint should be tried, and 108 false if it should be skipped. 109 </p> 110 </td> 111</tr> 112<tr> 113<td> 114 <p> 115 <code class="computeroutput"><span class="identifier">ec</span></code> 116 </p> 117 </td> 118<td> 119 <p> 120 Set to indicate what error occurred, if any. If the sequence 121 is empty, set to <code class="computeroutput"><span class="identifier">net</span><span class="special">::</span><span class="identifier">error</span><span class="special">::</span><span class="identifier">not_found</span></code>. 122 Otherwise, contains the error from the last connection attempt. 123 </p> 124 </td> 125</tr> 126</tbody> 127</table></div> 128<h7><a name="beast.ref.boost__beast__basic_stream.connect.overload8.h3"></a> 129 <span class="phrase"><a name="beast.ref.boost__beast__basic_stream.connect.overload8.return_value"></a></span><a class="link" href="overload8.html#beast.ref.boost__beast__basic_stream.connect.overload8.return_value">Return 130 Value</a> 131 </h7><p> 132 On success, the successfully connected endpoint. Otherwise, a default-constructed 133 endpoint. 134 </p> 135</div> 136<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 137<td align="left"></td> 138<td align="right"><div class="copyright-footer">Copyright © 2016-2019 Vinnie 139 Falco<p> 140 Distributed under the Boost Software License, Version 1.0. (See accompanying 141 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>) 142 </p> 143</div></td> 144</tr></table> 145<hr> 146<div class="spirit-nav"> 147<a accesskey="p" href="overload7.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../connect.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="overload9.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> 148</div> 149</body> 150</html> 151