• 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 (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">&lt;</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">&gt;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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