1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4<title>basic_stream::connect (9 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="overload8.html" title="basic_stream::connect (8 of 10 overloads)"> 10<link rel="next" href="overload10.html" title="basic_stream::connect (10 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="overload8.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="overload10.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.overload9"></a><a class="link" href="overload9.html" title="basic_stream::connect (9 of 10 overloads)">basic_stream::connect 28 (9 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.overload9.h0"></a> 34 <span class="phrase"><a name="beast.ref.boost__beast__basic_stream.connect.overload9.synopsis"></a></span><a class="link" href="overload9.html#beast.ref.boost__beast__basic_stream.connect.overload9.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</pre> 44<h7><a name="beast.ref.boost__beast__basic_stream.connect.overload9.h1"></a> 45 <span class="phrase"><a name="beast.ref.boost__beast__basic_stream.connect.overload9.description"></a></span><a class="link" href="overload9.html#beast.ref.boost__beast__basic_stream.connect.overload9.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.overload9.h2"></a> 55 <span class="phrase"><a name="beast.ref.boost__beast__basic_stream.connect.overload9.parameters"></a></span><a class="link" href="overload9.html#beast.ref.boost__beast__basic_stream.connect.overload9.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">begin</span></code> 78 </p> 79 </td> 80<td> 81 <p> 82 An iterator pointing to the start of a sequence of endpoints. 83 </p> 84 </td> 85</tr> 86<tr> 87<td> 88 <p> 89 <code class="computeroutput"><span class="identifier">end</span></code> 90 </p> 91 </td> 92<td> 93 <p> 94 An iterator pointing to the end of a sequence of endpoints. 95 </p> 96 </td> 97</tr> 98<tr> 99<td> 100 <p> 101 <code class="computeroutput"><span class="identifier">connect_condition</span></code> 102 </p> 103 </td> 104<td> 105 <p> 106 A function object that is called prior to each connection attempt. 107 The signature of the function object must be: 108 </p> 109<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> 110 <span class="identifier">error_code</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">ec</span><span class="special">,</span> 111 <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> 112</pre> 113 <p> 114 The <code class="computeroutput"><span class="identifier">ec</span></code> parameter 115 contains the result from the most recent connect operation. 116 Before the first connection attempt, <code class="computeroutput"><span class="identifier">ec</span></code> 117 is always set to indicate success. The <code class="computeroutput"><span class="identifier">next</span></code> 118 parameter is the next endpoint to be tried. The function object 119 should return true if the next endpoint should be tried, and 120 false if it should be skipped. 121 </p> 122 </td> 123</tr> 124</tbody> 125</table></div> 126<h7><a name="beast.ref.boost__beast__basic_stream.connect.overload9.h3"></a> 127 <span class="phrase"><a name="beast.ref.boost__beast__basic_stream.connect.overload9.return_value"></a></span><a class="link" href="overload9.html#beast.ref.boost__beast__basic_stream.connect.overload9.return_value">Return 128 Value</a> 129 </h7><p> 130 An iterator denoting the successfully connected endpoint. 131 </p> 132<h7><a name="beast.ref.boost__beast__basic_stream.connect.overload9.h4"></a> 133 <span class="phrase"><a name="beast.ref.boost__beast__basic_stream.connect.overload9.exceptions"></a></span><a class="link" href="overload9.html#beast.ref.boost__beast__basic_stream.connect.overload9.exceptions">Exceptions</a> 134 </h7><div class="informaltable"><table class="table"> 135<colgroup> 136<col> 137<col> 138</colgroup> 139<thead><tr> 140<th> 141 <p> 142 Type 143 </p> 144 </th> 145<th> 146 <p> 147 Thrown On 148 </p> 149 </th> 150</tr></thead> 151<tbody><tr> 152<td> 153 <p> 154 <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">system</span><span class="special">::</span><span class="identifier">system_error</span></code> 155 </p> 156 </td> 157<td> 158 <p> 159 Thrown on failure. If the sequence is empty, the associated 160 <code class="computeroutput"><span class="identifier">error_code</span></code> 161 is <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>. Otherwise, contains 162 the error from the last connection attempt. 163 </p> 164 </td> 165</tr></tbody> 166</table></div> 167</div> 168<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 169<td align="left"></td> 170<td align="right"><div class="copyright-footer">Copyright © 2016-2019 Vinnie 171 Falco<p> 172 Distributed under the Boost Software License, Version 1.0. (See accompanying 173 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>) 174 </p> 175</div></td> 176</tr></table> 177<hr> 178<div class="spirit-nav"> 179<a accesskey="p" href="overload8.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="overload10.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> 180</div> 181</body> 182</html> 183