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