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 <boost/process/async_pipe.hpp>"> 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: <<a class="link" href="../../process/reference.html#header.boost.process.async_pipe_hpp" title="Header <boost/process/async_pipe.hpp>">boost/process/async_pipe.hpp</a>> 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">&</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">&</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">&</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">&</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">&</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">&</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">&</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">&</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">&</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">&&</span><span class="special">)</span><span class="special">;</span> 51 <span class="keyword">template</span><span class="special"><</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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="special">></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">&</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"><</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> 54 <span class="keyword">template</span><span class="special"><</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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="special">></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">&</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">&</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"><</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">></span> <span class="special">&</span><span class="special">)</span><span class="special">;</span> 57 <span class="keyword">template</span><span class="special"><</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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="special">></span> 58 <a class="link" href="async_pipe.html" title="Class async_pipe">async_pipe</a> <span class="special">&</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"><</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">></span> <span class="special">&</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">&</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">&</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">&</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">&&</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"><</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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="special">></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"><</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">></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">&</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"><</span><span class="keyword">typename</span> MutableBufferSequence<span class="special">></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">&</span><span class="special">)</span><span class="special">;</span> 73 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> MutableBufferSequence<span class="special">></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">&</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"><</span><span class="keyword">typename</span> MutableBufferSequence<span class="special">,</span> <span class="keyword">typename</span> ReadHandler<span class="special">></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">&</span><span class="special">,</span> <span class="identifier">ReadHandler</span> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> 79 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> ConstBufferSequence<span class="special">,</span> <span class="keyword">typename</span> WriteHandler<span class="special">></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">&</span><span class="special">,</span> <span class="identifier">WriteHandler</span> <span class="special">&&</span><span class="special">)</span><span class="special">;</span> 81 <span class="keyword">const</span> <span class="identifier">handle_type</span> <span class="special">&</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">&</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">&&</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">&&</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">&</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">&</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">&</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">&</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">&</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">&</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">&</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">&</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">&</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">&</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">&</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">&</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">&</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">&&</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"><</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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="special">></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">&</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"><</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">></span> <span class="special">&</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"><</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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="special">></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">&</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">&</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"><</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">></span> <span class="special">&</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"><</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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="special">></span> 240 <a class="link" href="async_pipe.html" title="Class async_pipe">async_pipe</a> <span class="special">&</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"><</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">></span> <span class="special">&</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">&</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">&</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">&</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">&&</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"><</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"><</span><span class="identifier">CharT</span><span class="special">></span> <span class="special">></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"><</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">></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">&</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"><</span><span class="keyword">typename</span> MutableBufferSequence<span class="special">></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">&</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"><</span><span class="keyword">typename</span> MutableBufferSequence<span class="special">></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">&</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"><</span><span class="keyword">typename</span> MutableBufferSequence<span class="special">,</span> <span class="keyword">typename</span> ReadHandler<span class="special">></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">&</span> buffers<span class="special">,</span> 336 <span class="identifier">ReadHandler</span> <span class="special">&&</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"><</span><span class="keyword">typename</span> ConstBufferSequence<span class="special">,</span> <span class="keyword">typename</span> WriteHandler<span class="special">></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">&</span> buffers<span class="special">,</span> 343 <span class="identifier">WriteHandler</span> <span class="special">&&</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">&</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">&</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">&&</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">&&</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">&</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">&</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">&</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">&</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