1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4<title>basic_stream::connect (10 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="overload9.html" title="basic_stream::connect (9 of 10 overloads)"> 10<link rel="next" href="../async_connect.html" title="basic_stream::async_connect"> 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="overload9.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="../async_connect.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.overload10"></a><a class="link" href="overload10.html" title="basic_stream::connect (10 of 10 overloads)">basic_stream::connect 28 (10 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.overload10.h0"></a> 34 <span class="phrase"><a name="beast.ref.boost__beast__basic_stream.connect.overload10.synopsis"></a></span><a class="link" href="overload10.html#beast.ref.boost__beast__basic_stream.connect.overload10.synopsis">Synopsis</a> 35 </h7><pre class="programlisting"><span class="keyword">template</span><span class="special"><</span> 36 <span class="keyword">class</span> <span class="identifier">Iterator</span><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">Iterator</span> 39<span class="identifier">connect</span><span class="special">(</span> 40 <span class="identifier">Iterator</span> <span class="identifier">begin</span><span class="special">,</span> 41 <span class="identifier">Iterator</span> <span class="identifier">end</span><span class="special">,</span> 42 <span class="identifier">ConnectCondition</span> <span class="identifier">connect_condition</span><span class="special">,</span> 43 <span class="identifier">error_code</span><span class="special">&</span> <span class="identifier">ec</span><span class="special">);</span> 44</pre> 45<h7><a name="beast.ref.boost__beast__basic_stream.connect.overload10.h1"></a> 46 <span class="phrase"><a name="beast.ref.boost__beast__basic_stream.connect.overload10.description"></a></span><a class="link" href="overload10.html#beast.ref.boost__beast__basic_stream.connect.overload10.description">Description</a> 47 </h7><p> 48 This function attempts to connect the stream to one of a sequence of 49 endpoints by trying each endpoint until a connection is successfully 50 established. The underlying socket is automatically opened if needed. 51 An automatically opened socket is not returned to the closed state upon 52 failure. The algorithm, known as a <span class="emphasis"><em>composed operation</em></span>, 53 is implemented in terms of calls to the underlying socket's <code class="computeroutput"><span class="identifier">connect</span></code> function. 54 </p> 55<h7><a name="beast.ref.boost__beast__basic_stream.connect.overload10.h2"></a> 56 <span class="phrase"><a name="beast.ref.boost__beast__basic_stream.connect.overload10.parameters"></a></span><a class="link" href="overload10.html#beast.ref.boost__beast__basic_stream.connect.overload10.parameters">Parameters</a> 57 </h7><div class="informaltable"><table class="table"> 58<colgroup> 59<col> 60<col> 61</colgroup> 62<thead><tr> 63<th> 64 <p> 65 Name 66 </p> 67 </th> 68<th> 69 <p> 70 Description 71 </p> 72 </th> 73</tr></thead> 74<tbody> 75<tr> 76<td> 77 <p> 78 <code class="computeroutput"><span class="identifier">begin</span></code> 79 </p> 80 </td> 81<td> 82 <p> 83 An iterator pointing to the start of a sequence of endpoints. 84 </p> 85 </td> 86</tr> 87<tr> 88<td> 89 <p> 90 <code class="computeroutput"><span class="identifier">end</span></code> 91 </p> 92 </td> 93<td> 94 <p> 95 An iterator pointing to the end of a sequence of endpoints. 96 </p> 97 </td> 98</tr> 99<tr> 100<td> 101 <p> 102 <code class="computeroutput"><span class="identifier">connect_condition</span></code> 103 </p> 104 </td> 105<td> 106 <p> 107 A function object that is called prior to each connection attempt. 108 The signature of the function object must be: 109 </p> 110<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> 111 <span class="identifier">error_code</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">ec</span><span class="special">,</span> 112 <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> 113</pre> 114 <p> 115 The <code class="computeroutput"><span class="identifier">ec</span></code> parameter 116 contains the result from the most recent connect operation. 117 Before the first connection attempt, <code class="computeroutput"><span class="identifier">ec</span></code> 118 is always set to indicate success. The <code class="computeroutput"><span class="identifier">next</span></code> 119 parameter is the next endpoint to be tried. The function object 120 should return true if the next endpoint should be tried, and 121 false if it should be skipped. 122 </p> 123 </td> 124</tr> 125<tr> 126<td> 127 <p> 128 <code class="computeroutput"><span class="identifier">ec</span></code> 129 </p> 130 </td> 131<td> 132 <p> 133 Set to indicate what error occurred, if any. If the sequence 134 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>. 135 Otherwise, contains the error from the last connection attempt. 136 </p> 137 </td> 138</tr> 139</tbody> 140</table></div> 141<h7><a name="beast.ref.boost__beast__basic_stream.connect.overload10.h3"></a> 142 <span class="phrase"><a name="beast.ref.boost__beast__basic_stream.connect.overload10.return_value"></a></span><a class="link" href="overload10.html#beast.ref.boost__beast__basic_stream.connect.overload10.return_value">Return 143 Value</a> 144 </h7><p> 145 On success, an iterator denoting the successfully connected endpoint. 146 Otherwise, the end iterator. 147 </p> 148</div> 149<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 150<td align="left"></td> 151<td align="right"><div class="copyright-footer">Copyright © 2016-2019 Vinnie 152 Falco<p> 153 Distributed under the Boost Software License, Version 1.0. (See accompanying 154 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>) 155 </p> 156</div></td> 157</tr></table> 158<hr> 159<div class="spirit-nav"> 160<a accesskey="p" href="overload9.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="../async_connect.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> 161</div> 162</body> 163</html> 164