• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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">&lt;</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">&gt;</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">&amp;</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">&amp;</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