• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2<html>
3<head>
4<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5<title>Class async_pipe</title>
6<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
7<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
8<link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
9<link rel="up" href="../../process/reference.html#header.boost.process.async_pipe_hpp" title="Header &lt;boost/process/async_pipe.hpp&gt;">
10<link rel="prev" href="on_exit.html" title="Global on_exit">
11<link rel="next" href="async_system.html" title="Function template async_system">
12</head>
13<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
14<table cellpadding="2" width="100%"><tr>
15<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
16<td align="center"><a href="../../../../index.html">Home</a></td>
17<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
18<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
19<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
20<td align="center"><a href="../../../../more/index.htm">More</a></td>
21</tr></table>
22<hr>
23<div class="spirit-nav">
24<a accesskey="p" href="on_exit.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../process/reference.html#header.boost.process.async_pipe_hpp"><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_system.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
25</div>
26<div class="refentry">
27<a name="boost.process.async_pipe"></a><div class="titlepage"></div>
28<div class="refnamediv">
29<h2><span class="refentrytitle">Class async_pipe</span></h2>
30<p>boost::process::async_pipe</p>
31</div>
32<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
33<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: &lt;<a class="link" href="../../process/reference.html#header.boost.process.async_pipe_hpp" title="Header &lt;boost/process/async_pipe.hpp&gt;">boost/process/async_pipe.hpp</a>&gt;
34
35</span>
36<span class="keyword">class</span> <a class="link" href="async_pipe.html" title="Class async_pipe">async_pipe</a> <span class="special">{</span>
37<span class="keyword">public</span><span class="special">:</span>
38  <span class="comment">// <a class="link" href="async_pipe.html#boost.process.async_pipetypes">types</a></span>
39  <span class="keyword">typedef</span> <span class="identifier">platform_specific</span>          <a class="link" href="async_pipe.html#boost.process.async_pipe.native_handle_type"><span class="identifier">native_handle_type</span></a><span class="special">;</span>
40  <span class="keyword">typedef</span> <span class="identifier">platform_specific</span>          <a class="link" href="async_pipe.html#boost.process.async_pipe.handle_type"><span class="identifier">handle_type</span></a><span class="special">;</span>
41  <span class="keyword">typedef</span> <span class="identifier">handle_type</span><span class="special">::</span><span class="identifier">executor_type</span> <a name="boost.process.async_pipe.executor_type"></a><span class="identifier">executor_type</span><span class="special">;</span>
42
43  <span class="comment">// <a class="link" href="async_pipe.html#boost.process.async_pipeconstruct-copy-destruct">construct/copy/destruct</a></span>
44  <a class="link" href="async_pipe.html#idm45243675208336-bb"><span class="identifier">async_pipe</span></a><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_context</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
45  <a class="link" href="async_pipe.html#idm45243675205600-bb"><span class="identifier">async_pipe</span></a><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_context</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_context</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
46  <a class="link" href="async_pipe.html#idm45243675202352-bb"><span class="identifier">async_pipe</span></a><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_context</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
47  <a class="link" href="async_pipe.html#idm45243675198976-bb"><span class="identifier">async_pipe</span></a><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_context</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_context</span> <span class="special">&amp;</span><span class="special">,</span>
48             <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
49  <a class="link" href="async_pipe.html#idm45243675195072-bb"><span class="identifier">async_pipe</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="async_pipe.html" title="Class async_pipe">async_pipe</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
50  <a class="link" href="async_pipe.html#idm45243675192672-bb"><span class="identifier">async_pipe</span></a><span class="special">(</span><a class="link" href="async_pipe.html" title="Class async_pipe">async_pipe</a> <span class="special">&amp;&amp;</span><span class="special">)</span><span class="special">;</span>
51  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">char_traits</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="special">&gt;</span>
52    <span class="keyword">explicit</span> <a class="link" href="async_pipe.html#idm45243675191152-bb"><span class="identifier">async_pipe</span></a><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_context</span> <span class="special">&amp;</span><span class="special">,</span>
53                        <span class="keyword">const</span> <a class="link" href="basic_pipe.html" title="Class template basic_pipe">basic_pipe</a><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
54  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">char_traits</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="special">&gt;</span>
55    <span class="keyword">explicit</span> <a class="link" href="async_pipe.html#idm45243675186384-bb"><span class="identifier">async_pipe</span></a><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_context</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_context</span> <span class="special">&amp;</span><span class="special">,</span>
56                        <span class="keyword">const</span> <a class="link" href="basic_pipe.html" title="Class template basic_pipe">basic_pipe</a><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
57  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">char_traits</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="special">&gt;</span>
58    <a class="link" href="async_pipe.html" title="Class async_pipe">async_pipe</a> <span class="special">&amp;</span> <a class="link" href="async_pipe.html#idm45243675180896-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_pipe.html" title="Class template basic_pipe">basic_pipe</a><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
59  <a class="link" href="async_pipe.html" title="Class async_pipe">async_pipe</a> <span class="special">&amp;</span> <a class="link" href="async_pipe.html#idm45243675175856-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="async_pipe.html" title="Class async_pipe">async_pipe</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
60  <a class="link" href="async_pipe.html" title="Class async_pipe">async_pipe</a> <span class="special">&amp;</span> <a class="link" href="async_pipe.html#idm45243675173056-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="async_pipe.html" title="Class async_pipe">async_pipe</a> <span class="special">&amp;&amp;</span><span class="special">)</span><span class="special">;</span>
61  <a class="link" href="async_pipe.html#idm45243675171024-bb"><span class="special">~</span><span class="identifier">async_pipe</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
62
63  <span class="comment">// <a class="link" href="async_pipe.html#idm45243675253584-bb">public member functions</a></span>
64  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">char_traits</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="special">&gt;</span>
65    <span class="keyword">explicit</span> <a class="link" href="async_pipe.html#idm45243675253088-bb"><span class="keyword">operator</span> <span class="identifier">basic_pipe</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
66  <span class="keyword">void</span> <a class="link" href="async_pipe.html#idm45243675249344-bb"><span class="identifier">cancel</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
67  <span class="keyword">void</span> <a class="link" href="async_pipe.html#idm45243675248208-bb"><span class="identifier">close</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
68  <span class="keyword">void</span> <a class="link" href="async_pipe.html#idm45243675247072-bb"><span class="identifier">close</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
69  <span class="keyword">bool</span> <a class="link" href="async_pipe.html#idm45243675245312-bb"><span class="identifier">is_open</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
70  <span class="keyword">void</span> <a class="link" href="async_pipe.html#idm45243675243936-bb"><span class="identifier">async_close</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
71  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> MutableBufferSequence<span class="special">&gt;</span>
72    <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="async_pipe.html#idm45243675241856-bb"><span class="identifier">read_some</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">MutableBufferSequence</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
73  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> MutableBufferSequence<span class="special">&gt;</span>
74    <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="async_pipe.html#idm45243675239088-bb"><span class="identifier">write_some</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">MutableBufferSequence</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
75  <span class="identifier">native_handle</span> <a class="link" href="async_pipe.html#idm45243675236320-bb"><span class="identifier">native_source</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
76  <span class="identifier">native_handle</span> <a class="link" href="async_pipe.html#idm45243675234944-bb"><span class="identifier">native_sink</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
77  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> MutableBufferSequence<span class="special">,</span> <span class="keyword">typename</span> ReadHandler<span class="special">&gt;</span>
78    <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="async_pipe.html#idm45243675233568-bb"><span class="identifier">async_read_some</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">MutableBufferSequence</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">ReadHandler</span> <span class="special">&amp;&amp;</span><span class="special">)</span><span class="special">;</span>
79  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> ConstBufferSequence<span class="special">,</span> <span class="keyword">typename</span> WriteHandler<span class="special">&gt;</span>
80    <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="async_pipe.html#idm45243675228832-bb"><span class="identifier">async_write_some</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ConstBufferSequence</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">WriteHandler</span> <span class="special">&amp;&amp;</span><span class="special">)</span><span class="special">;</span>
81  <span class="keyword">const</span> <span class="identifier">handle_type</span> <span class="special">&amp;</span> <a class="link" href="async_pipe.html#idm45243675224080-bb"><span class="identifier">sink</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
82  <span class="keyword">const</span> <span class="identifier">handle_type</span> <span class="special">&amp;</span> <a class="link" href="async_pipe.html#idm45243675222832-bb"><span class="identifier">source</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
83  <span class="identifier">handle_type</span> <span class="special">&amp;&amp;</span> <a class="link" href="async_pipe.html#idm45243675221584-bb"><span class="identifier">sink</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
84  <span class="identifier">handle_type</span> <span class="special">&amp;&amp;</span> <a class="link" href="async_pipe.html#idm45243675220496-bb"><span class="identifier">source</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
85  <span class="identifier">handle_type</span> <a class="link" href="async_pipe.html#idm45243675219408-bb"><span class="identifier">source</span></a><span class="special">(</span><span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_context</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
86  <span class="identifier">handle_type</span> <a class="link" href="async_pipe.html#idm45243675216784-bb"><span class="identifier">sink</span></a><span class="special">(</span><span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_context</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
87  <span class="identifier">handle_type</span> <a class="link" href="async_pipe.html#idm45243675214160-bb"><span class="identifier">source</span></a><span class="special">(</span><span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_context</span> <span class="special">&amp;</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
88  <span class="identifier">handle_type</span> <a class="link" href="async_pipe.html#idm45243675211312-bb"><span class="identifier">sink</span></a><span class="special">(</span><span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_context</span> <span class="special">&amp;</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
89<span class="special">}</span><span class="special">;</span></pre></div>
90<div class="refsect1">
91<a name="id-1.3.30.9.4.3.4"></a><h2>Description</h2>
92<p>Class implementing and asnychronous I/O-Object for use with boost.asio. It is based on the corresponding I/O Object, that is either boost::asio::windows::stream_handle or boost::asio::posix::stream_descriptor.</p>
93<p>It can be used directly with boost::asio::async_read or async_write.</p>
94<div class="note"><table border="0" summary="Note">
95<tr>
96<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../doc/src/images/note.png"></td>
97<th align="left">Note</th>
98</tr>
99<tr><td align="left" valign="top"><p>The object is copyable, but that does invoke a handle duplicate. </p></td></tr>
100</table></div>
101<p>
102</p>
103<div class="refsect2">
104<a name="id-1.3.30.9.4.3.4.5"></a><h3>
105<a name="boost.process.async_pipetypes"></a><code class="computeroutput">async_pipe</code>
106        public
107       types</h3>
108<div class="orderedlist"><ol class="orderedlist" type="1">
109<li class="listitem">
110<p>
111<span class="keyword">typedef</span> <span class="identifier">platform_specific</span> <a name="boost.process.async_pipe.native_handle_type"></a><span class="identifier">native_handle_type</span><span class="special">;</span></p>
112<p>Typedef for the native handle representation. </p>
113<div class="note"><table border="0" summary="Note">
114<tr>
115<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../doc/src/images/note.png"></td>
116<th align="left">Note</th>
117</tr>
118<tr><td align="left" valign="top"><p>This is the handle on the system, not the boost.asio class. </p></td></tr>
119</table></div>
120<p>
121</p>
122</li>
123<li class="listitem">
124<p>
125<span class="keyword">typedef</span> <span class="identifier">platform_specific</span> <a name="boost.process.async_pipe.handle_type"></a><span class="identifier">handle_type</span><span class="special">;</span></p>
126<p>Typedef for the handle representation of boost.asio. </p>
127</li>
128</ol></div>
129</div>
130<div class="refsect2">
131<a name="id-1.3.30.9.4.3.4.6"></a><h3>
132<a name="boost.process.async_pipeconstruct-copy-destruct"></a><code class="computeroutput">async_pipe</code>
133        public
134       construct/copy/destruct</h3>
135<div class="orderedlist"><ol class="orderedlist" type="1">
136<li class="listitem">
137<pre class="literallayout"><a name="idm45243675208336-bb"></a><span class="identifier">async_pipe</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_context</span> <span class="special">&amp;</span> ios<span class="special">)</span><span class="special">;</span></pre>
138<p>Construct a new <code class="computeroutput"><a class="link" href="async_pipe.html" title="Class async_pipe">async_pipe</a></code>, does automatically open the pipe. Initializes source and sink with the same io_context. </p>
139<div class="note"><table border="0" summary="Note">
140<tr>
141<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../doc/src/images/note.png"></td>
142<th align="left">Note</th>
143</tr>
144<tr><td align="left" valign="top"><p>Windows creates a named pipe here, where the name is automatically generated. </p></td></tr>
145</table></div>
146<p>
147</p>
148</li>
149<li class="listitem">
150<pre class="literallayout"><a name="idm45243675205600-bb"></a><span class="identifier">async_pipe</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_context</span> <span class="special">&amp;</span> ios_source<span class="special">,</span>
151           <span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_context</span> <span class="special">&amp;</span> ios_sink<span class="special">)</span><span class="special">;</span></pre>
152<p>Construct a new <code class="computeroutput"><a class="link" href="async_pipe.html" title="Class async_pipe">async_pipe</a></code>, does automatically open the pipe. </p>
153<div class="note"><table border="0" summary="Note">
154<tr>
155<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../doc/src/images/note.png"></td>
156<th align="left">Note</th>
157</tr>
158<tr><td align="left" valign="top"><p>Windows creates a named pipe here, where the name is automatically generated. </p></td></tr>
159</table></div>
160<p>
161</p>
162</li>
163<li class="listitem">
164<pre class="literallayout"><a name="idm45243675202352-bb"></a><span class="identifier">async_pipe</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_context</span> <span class="special">&amp;</span> ios<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&amp;</span> name<span class="special">)</span><span class="special">;</span></pre>
165<p>Construct a new <code class="computeroutput"><a class="link" href="async_pipe.html" title="Class async_pipe">async_pipe</a></code>, does automatically open. Initializes source and sink with the same io_context.</p>
166<div class="note"><table border="0" summary="Note">
167<tr>
168<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../doc/src/images/note.png"></td>
169<th align="left">Note</th>
170</tr>
171<tr><td align="left" valign="top"><p>Windows restricts possible names. </p></td></tr>
172</table></div>
173<p>
174</p>
175</li>
176<li class="listitem">
177<pre class="literallayout"><a name="idm45243675198976-bb"></a><span class="identifier">async_pipe</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_context</span> <span class="special">&amp;</span> ios_source<span class="special">,</span>
178           <span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_context</span> <span class="special">&amp;</span> ios_sink<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&amp;</span> name<span class="special">)</span><span class="special">;</span></pre>
179<p>Construct a new <code class="computeroutput"><a class="link" href="async_pipe.html" title="Class async_pipe">async_pipe</a></code>, does automatically open.</p>
180<div class="note"><table border="0" summary="Note">
181<tr>
182<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../doc/src/images/note.png"></td>
183<th align="left">Note</th>
184</tr>
185<tr><td align="left" valign="top"><p>Windows restricts possible names. </p></td></tr>
186</table></div>
187<p>
188</p>
189</li>
190<li class="listitem">
191<pre class="literallayout"><a name="idm45243675195072-bb"></a><span class="identifier">async_pipe</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="async_pipe.html" title="Class async_pipe">async_pipe</a> <span class="special">&amp;</span> lhs<span class="special">)</span><span class="special">;</span></pre>
192<p>Copy-Constructor of the async pipe. </p>
193<div class="note"><table border="0" summary="Note">
194<tr>
195<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../doc/src/images/note.png"></td>
196<th align="left">Note</th>
197</tr>
198<tr><td align="left" valign="top"><p>Windows requires a named pipe for this, if a the wrong type is used an exception is thrown. </p></td></tr>
199</table></div>
200<p>
201</p>
202</li>
203<li class="listitem">
204<pre class="literallayout"><a name="idm45243675192672-bb"></a><span class="identifier">async_pipe</span><span class="special">(</span><a class="link" href="async_pipe.html" title="Class async_pipe">async_pipe</a> <span class="special">&amp;&amp;</span> lhs<span class="special">)</span><span class="special">;</span></pre>
205<p>Move-Constructor of the async pipe. </p>
206</li>
207<li class="listitem">
208<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">char_traits</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="special">&gt;</span>
209  <span class="keyword">explicit</span> <a name="idm45243675191152-bb"></a><span class="identifier">async_pipe</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_context</span> <span class="special">&amp;</span> ios<span class="special">,</span>
210                      <span class="keyword">const</span> <a class="link" href="basic_pipe.html" title="Class template basic_pipe">basic_pipe</a><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> p<span class="special">)</span><span class="special">;</span></pre>
211<p>Construct the async-pipe from a pipe. </p>
212<div class="note"><table border="0" summary="Note">
213<tr>
214<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../doc/src/images/note.png"></td>
215<th align="left">Note</th>
216</tr>
217<tr><td align="left" valign="top"><p>Windows requires a named pipe for this, if a the wrong type is used an exception is thrown. </p></td></tr>
218</table></div>
219<p>
220</p>
221</li>
222<li class="listitem">
223<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">char_traits</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="special">&gt;</span>
224  <span class="keyword">explicit</span> <a name="idm45243675186384-bb"></a><span class="identifier">async_pipe</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_context</span> <span class="special">&amp;</span> ios_source<span class="special">,</span>
225                      <span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_context</span> <span class="special">&amp;</span> ios_sink<span class="special">,</span>
226                      <span class="keyword">const</span> <a class="link" href="basic_pipe.html" title="Class template basic_pipe">basic_pipe</a><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> p<span class="special">)</span><span class="special">;</span></pre>
227<p>Construct the async-pipe from a pipe, with two different io_context objects. </p>
228<div class="note"><table border="0" summary="Note">
229<tr>
230<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../doc/src/images/note.png"></td>
231<th align="left">Note</th>
232</tr>
233<tr><td align="left" valign="top"><p>Windows requires a named pipe for this, if a the wrong type is used an exception is thrown. </p></td></tr>
234</table></div>
235<p>
236</p>
237</li>
238<li class="listitem">
239<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">char_traits</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="special">&gt;</span>
240  <a class="link" href="async_pipe.html" title="Class async_pipe">async_pipe</a> <span class="special">&amp;</span> <a name="idm45243675180896-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_pipe.html" title="Class template basic_pipe">basic_pipe</a><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> p<span class="special">)</span><span class="special">;</span></pre>
241<p>Assign a <code class="computeroutput"><a class="link" href="basic_pipe.html" title="Class template basic_pipe">basic_pipe</a></code>. </p>
242<div class="note"><table border="0" summary="Note">
243<tr>
244<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../doc/src/images/note.png"></td>
245<th align="left">Note</th>
246</tr>
247<tr><td align="left" valign="top"><p>Windows requires a named pipe for this, if a the wrong type is used an exception is thrown. </p></td></tr>
248</table></div>
249<p>
250</p>
251</li>
252<li class="listitem">
253<pre class="literallayout"><a class="link" href="async_pipe.html" title="Class async_pipe">async_pipe</a> <span class="special">&amp;</span> <a name="idm45243675175856-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="async_pipe.html" title="Class async_pipe">async_pipe</a> <span class="special">&amp;</span> lhs<span class="special">)</span><span class="special">;</span></pre>
254<p>Copy Assign a pipe. </p>
255<div class="note"><table border="0" summary="Note">
256<tr>
257<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../doc/src/images/note.png"></td>
258<th align="left">Note</th>
259</tr>
260<tr><td align="left" valign="top"><p>Duplicates the handles. </p></td></tr>
261</table></div>
262<p>
263</p>
264</li>
265<li class="listitem">
266<pre class="literallayout"><a class="link" href="async_pipe.html" title="Class async_pipe">async_pipe</a> <span class="special">&amp;</span> <a name="idm45243675173056-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="async_pipe.html" title="Class async_pipe">async_pipe</a> <span class="special">&amp;&amp;</span> lhs<span class="special">)</span><span class="special">;</span></pre>
267<p>Move assign a pipe </p>
268</li>
269<li class="listitem">
270<pre class="literallayout"><a name="idm45243675171024-bb"></a><span class="special">~</span><span class="identifier">async_pipe</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre>
271<p>Destructor. Closes the pipe handles. </p>
272</li>
273</ol></div>
274</div>
275<div class="refsect2">
276<a name="id-1.3.30.9.4.3.4.7"></a><h3>
277<a name="idm45243675253584-bb"></a><code class="computeroutput">async_pipe</code> public member functions</h3>
278<div class="orderedlist"><ol class="orderedlist" type="1">
279<li class="listitem">
280<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">char_traits</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span> <span class="special">&gt;</span>
281  <span class="keyword">explicit</span> <a name="idm45243675253088-bb"></a><span class="keyword">operator</span> <span class="identifier">basic_pipe</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
282<p>Explicit cast to <code class="computeroutput"><a class="link" href="basic_pipe.html" title="Class template basic_pipe">basic_pipe</a></code>. </p>
283</li>
284<li class="listitem">
285<pre class="literallayout"><span class="keyword">void</span> <a name="idm45243675249344-bb"></a><span class="identifier">cancel</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre>
286<p>Cancel the current asynchronous operations. </p>
287</li>
288<li class="listitem">
289<pre class="literallayout"><span class="keyword">void</span> <a name="idm45243675248208-bb"></a><span class="identifier">close</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre>
290<p>Close the pipe handles. </p>
291</li>
292<li class="listitem">
293<pre class="literallayout"><span class="keyword">void</span> <a name="idm45243675247072-bb"></a><span class="identifier">close</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&amp;</span> ec<span class="special">)</span><span class="special">;</span></pre>
294<p>Close the pipe handles. While passing an error_code </p>
295</li>
296<li class="listitem">
297<pre class="literallayout"><span class="keyword">bool</span> <a name="idm45243675245312-bb"></a><span class="identifier">is_open</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
298<p>Check if the pipes are open. </p>
299</li>
300<li class="listitem">
301<pre class="literallayout"><span class="keyword">void</span> <a name="idm45243675243936-bb"></a><span class="identifier">async_close</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre>
302<p>Async close, i.e. close after current operation is completed.</p>
303<div class="note"><table border="0" summary="Note">
304<tr>
305<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../doc/src/images/note.png"></td>
306<th align="left">Note</th>
307</tr>
308<tr><td align="left" valign="top"><p>There is no guarantee that this will indeed read the entire pipe-buffer </p></td></tr>
309</table></div>
310<p>
311</p>
312</li>
313<li class="listitem">
314<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> MutableBufferSequence<span class="special">&gt;</span>
315  <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm45243675241856-bb"></a><span class="identifier">read_some</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">MutableBufferSequence</span> <span class="special">&amp;</span> buffers<span class="special">)</span><span class="special">;</span></pre>
316<p>Read some data from the handle.</p>
317<p>See the boost.asio documentation for more details. </p>
318</li>
319<li class="listitem">
320<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> MutableBufferSequence<span class="special">&gt;</span>
321  <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="idm45243675239088-bb"></a><span class="identifier">write_some</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">MutableBufferSequence</span> <span class="special">&amp;</span> buffers<span class="special">)</span><span class="special">;</span></pre>
322<p>Write some data to the handle.</p>
323<p>See the boost.asio documentation for more details. </p>
324</li>
325<li class="listitem">
326<pre class="literallayout"><span class="identifier">native_handle</span> <a name="idm45243675236320-bb"></a><span class="identifier">native_source</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
327<p>Get the native handle of the source. </p>
328</li>
329<li class="listitem">
330<pre class="literallayout"><span class="identifier">native_handle</span> <a name="idm45243675234944-bb"></a><span class="identifier">native_sink</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
331<p>Get the native handle of the sink. </p>
332</li>
333<li class="listitem">
334<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> MutableBufferSequence<span class="special">,</span> <span class="keyword">typename</span> ReadHandler<span class="special">&gt;</span>
335  <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a name="idm45243675233568-bb"></a><span class="identifier">async_read_some</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">MutableBufferSequence</span> <span class="special">&amp;</span> buffers<span class="special">,</span>
336                              <span class="identifier">ReadHandler</span> <span class="special">&amp;&amp;</span> handler<span class="special">)</span><span class="special">;</span></pre>
337<p>Start an asynchronous read.</p>
338<p>See the <a href="http://www.boost.org/doc/libs/1_60_0/doc/html/boost_asio/reference/AsyncReadStream.html" target="_top">boost.asio documentation</a> for more details. </p>
339</li>
340<li class="listitem">
341<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> ConstBufferSequence<span class="special">,</span> <span class="keyword">typename</span> WriteHandler<span class="special">&gt;</span>
342  <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a name="idm45243675228832-bb"></a><span class="identifier">async_write_some</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ConstBufferSequence</span> <span class="special">&amp;</span> buffers<span class="special">,</span>
343                               <span class="identifier">WriteHandler</span> <span class="special">&amp;&amp;</span> handler<span class="special">)</span><span class="special">;</span></pre>
344<p>Start an asynchronous write.</p>
345<p>See the <a href="http://www.boost.org/doc/libs/1_60_0/doc/html/boost_asio/reference/AsyncWriteStream.html" target="_top">boost.asio documentation</a> for more details. </p>
346</li>
347<li class="listitem">
348<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">handle_type</span> <span class="special">&amp;</span> <a name="idm45243675224080-bb"></a><span class="identifier">sink</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Get the asio handle of the pipe sink. </li>
349<li class="listitem">
350<pre class="literallayout"><span class="keyword">const</span> <span class="identifier">handle_type</span> <span class="special">&amp;</span> <a name="idm45243675222832-bb"></a><span class="identifier">source</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Get the asio handle of the pipe source. </li>
351<li class="listitem">
352<pre class="literallayout"><span class="identifier">handle_type</span> <span class="special">&amp;&amp;</span> <a name="idm45243675221584-bb"></a><span class="identifier">sink</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre>Get the asio handle of the pipe sink. Qualified as rvalue. </li>
353<li class="listitem">
354<pre class="literallayout"><span class="identifier">handle_type</span> <span class="special">&amp;&amp;</span> <a name="idm45243675220496-bb"></a><span class="identifier">source</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre>Get the asio handle of the pipe source. Qualified as rvalue. </li>
355<li class="listitem">
356<pre class="literallayout"><span class="identifier">handle_type</span> <a name="idm45243675219408-bb"></a><span class="identifier">source</span><span class="special">(</span><span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_context</span> <span class="special">&amp;</span> ios<span class="special">)</span><span class="special">;</span></pre>Move the source out of this class and change the io_context. Qualified as rvalue. <div class="note"><table border="0" summary="Note">
357<tr>
358<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../doc/src/images/note.png"></td>
359<th align="left">Note</th>
360</tr>
361<tr><td align="left" valign="top"><p>Will always move. </p></td></tr>
362</table></div>
363<p>
364</p>
365</li>
366<li class="listitem">
367<pre class="literallayout"><span class="identifier">handle_type</span> <a name="idm45243675216784-bb"></a><span class="identifier">sink</span><span class="special">(</span><span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_context</span> <span class="special">&amp;</span> ios<span class="special">)</span><span class="special">;</span></pre>Move the sink out of this class and change the io_context. Qualified as rvalue. <div class="note"><table border="0" summary="Note">
368<tr>
369<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../doc/src/images/note.png"></td>
370<th align="left">Note</th>
371</tr>
372<tr><td align="left" valign="top"><p>Will always move </p></td></tr>
373</table></div>
374<p>
375</p>
376</li>
377<li class="listitem">
378<pre class="literallayout"><span class="identifier">handle_type</span> <a name="idm45243675214160-bb"></a><span class="identifier">source</span><span class="special">(</span><span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_context</span> <span class="special">&amp;</span> ios<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Copy the source out of this class and change the io_context. <div class="note"><table border="0" summary="Note">
379<tr>
380<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../doc/src/images/note.png"></td>
381<th align="left">Note</th>
382</tr>
383<tr><td align="left" valign="top"><p>Will always copy. </p></td></tr>
384</table></div>
385<p>
386</p>
387</li>
388<li class="listitem">
389<pre class="literallayout"><span class="identifier">handle_type</span> <a name="idm45243675211312-bb"></a><span class="identifier">sink</span><span class="special">(</span><span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_context</span> <span class="special">&amp;</span> ios<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Copy the sink out of this class and change the io_context. <div class="note"><table border="0" summary="Note">
390<tr>
391<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../doc/src/images/note.png"></td>
392<th align="left">Note</th>
393</tr>
394<tr><td align="left" valign="top"><p>Will always copy </p></td></tr>
395</table></div>
396<p>
397</p>
398</li>
399</ol></div>
400</div>
401</div>
402</div>
403<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
404<td align="left"></td>
405<td align="right"><div class="copyright-footer">Copyright © 2006-2012 Julio M. Merino Vidal, Ilya Sokolov,
406      Felipe Tanus, Jeff Flinn, Boris Schaeling<br>Copyright © 2016 Klemens D. Morgenstern<p>
407        Distributed under the Boost Software License, Version 1.0. (See accompanying
408        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
409      </p>
410</div></td>
411</tr></table>
412<hr>
413<div class="spirit-nav">
414<a accesskey="p" href="on_exit.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../process/reference.html#header.boost.process.async_pipe_hpp"><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_system.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
415</div>
416</body>
417</html>
418