blob: bf984c6c976f318e45adc5b44684fb060c10e7b6 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>Apache Mesos: 3rdparty/libprocess/include/process/subprocess_base.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">Apache Mesos
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_eac18f7a64f6f8afbd1493ef4e09abdb.html">include</a></li><li class="navelem"><a class="el" href="dir_1894286df79cf582d947dbc4268b06cf.html">process</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">subprocess_base.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;sys/types.h&gt;</code><br/>
<code>#include &lt;initializer_list&gt;</code><br/>
<code>#include &lt;map&gt;</code><br/>
<code>#include &lt;memory&gt;</code><br/>
<code>#include &lt;mutex&gt;</code><br/>
<code>#include &lt;string&gt;</code><br/>
<code>#include &lt;vector&gt;</code><br/>
<code>#include &lt;<a class="el" href="future_8hpp_source.html">process/future.hpp</a>&gt;</code><br/>
<code>#include &lt;<a class="el" href="3rdparty_2stout_2include_2stout_2flags_8hpp_source.html">stout/flags.hpp</a>&gt;</code><br/>
<code>#include &lt;<a class="el" href="lambda_8hpp_source.html">stout/lambda.hpp</a>&gt;</code><br/>
<code>#include &lt;<a class="el" href="none_8hpp_source.html">stout/none.hpp</a>&gt;</code><br/>
<code>#include &lt;<a class="el" href="option_8hpp_source.html">stout/option.hpp</a>&gt;</code><br/>
<code>#include &lt;<a class="el" href="try_8hpp_source.html">stout/try.hpp</a>&gt;</code><br/>
<code>#include &lt;<a class="el" href="shell_8hpp_source.html">stout/os/shell.hpp</a>&gt;</code><br/>
<code>#include &lt;<a class="el" href="int__fd_8hpp_source.html">stout/os/int_fd.hpp</a>&gt;</code><br/>
</div>
<p><a href="subprocess__base_8hpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1Subprocess.html">process::Subprocess</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Represents a fork() exec()ed subprocess. <a href="classprocess_1_1Subprocess.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1Subprocess_1_1IO.html">process::Subprocess::IO</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Describes how the I/O is redirected for stdin/stdout/stderr. <a href="classprocess_1_1Subprocess_1_1IO.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html">process::Subprocess::IO::InputFileDescriptors</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">For input file descriptors a child reads from the <code>read</code> file descriptor and a parent may write to the <code>write</code> file descriptor if one is present. <a href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">process::Subprocess::IO::OutputFileDescriptors</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">For output file descriptors a child writes to the <code>write</code> file descriptor and a parent may read from the <code>read</code> file descriptor if one is present. <a href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structprocess_1_1Subprocess_1_1ParentHook.html">process::Subprocess::ParentHook</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A hook can be passed to a <code>subprocess</code> call. <a href="structprocess_1_1Subprocess_1_1ParentHook.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1Subprocess_1_1ChildHook.html">process::Subprocess::ChildHook</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <code><a class="el" href="classprocess_1_1Subprocess_1_1ChildHook.html" title="A ChildHook can be passed to a subprocess call. ">ChildHook</a></code> can be passed to a <code>subprocess</code> call. <a href="classprocess_1_1Subprocess_1_1ChildHook.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceprocess"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess.html">process</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespaceprocess_1_1internal"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1internal.html">process::internal</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:afc6611c4913642642277b44447a16e55"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess.html#afc6611c4913642642277b44447a16e55">process::InputFileDescriptors</a> = Subprocess::IO::InputFileDescriptors</td></tr>
<tr class="separator:afc6611c4913642642277b44447a16e55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a882829822afa4f33b90aafc9c4ffa9af"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess.html#a882829822afa4f33b90aafc9c4ffa9af">process::OutputFileDescriptors</a> = Subprocess::IO::OutputFileDescriptors</td></tr>
<tr class="separator:a882829822afa4f33b90aafc9c4ffa9af"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:aabc8d31889b5a325275d13d7bcef6a9c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>&lt; Subprocess &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess.html#aabc8d31889b5a325275d13d7bcef6a9c">process::subprocess</a> (const std::string &amp;path, std::vector&lt; std::string &gt; argv, const Subprocess::IO &amp;in=Subprocess::FD(<a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#afcf80a6d91178952d107ad00b165752b">STDIN_FILENO</a>), const Subprocess::IO &amp;out=Subprocess::FD(<a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abd165ee6474b5b75bf075842fff13a04">STDOUT_FILENO</a>), const Subprocess::IO &amp;err=Subprocess::FD(<a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe1725bb5e9823d089c46b9ed5266e">STDERR_FILENO</a>), const <a class="el" href="classflags_1_1FlagsBase.html">flags::FlagsBase</a> *flags=nullptr, const <a class="el" href="classOption.html">Option</a>&lt; std::map&lt; std::string, std::string &gt;&gt; &amp;environment=<a class="el" href="structNone.html">None</a>(), const <a class="el" href="classOption.html">Option</a>&lt; lambda::function&lt; <a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>(const lambda::function&lt; int()&gt; &amp;)&gt;&gt; &amp;clone=<a class="el" href="structNone.html">None</a>(), const std::vector&lt; Subprocess::ParentHook &gt; &amp;parent_hooks={}, const std::vector&lt; Subprocess::ChildHook &gt; &amp;child_hooks={})</td></tr>
<tr class="memdesc:aabc8d31889b5a325275d13d7bcef6a9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Forks a subprocess and execs the specified 'path' with the specified 'argv', redirecting stdin, stdout, and stderr as specified by 'in', 'out', and 'err' respectively. <a href="#aabc8d31889b5a325275d13d7bcef6a9c">More...</a><br/></td></tr>
<tr class="separator:aabc8d31889b5a325275d13d7bcef6a9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd3d31ab4db7e39286a689b69ff8be3e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>&lt; Subprocess &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess.html#acd3d31ab4db7e39286a689b69ff8be3e">process::subprocess</a> (const std::string &amp;command, const Subprocess::IO &amp;in=Subprocess::FD(<a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#afcf80a6d91178952d107ad00b165752b">STDIN_FILENO</a>), const Subprocess::IO &amp;out=Subprocess::FD(<a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abd165ee6474b5b75bf075842fff13a04">STDOUT_FILENO</a>), const Subprocess::IO &amp;err=Subprocess::FD(<a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe1725bb5e9823d089c46b9ed5266e">STDERR_FILENO</a>), const <a class="el" href="classOption.html">Option</a>&lt; std::map&lt; std::string, std::string &gt;&gt; &amp;environment=<a class="el" href="structNone.html">None</a>(), const <a class="el" href="classOption.html">Option</a>&lt; lambda::function&lt; <a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>(const lambda::function&lt; int()&gt; &amp;)&gt;&gt; &amp;clone=<a class="el" href="structNone.html">None</a>(), const std::vector&lt; Subprocess::ParentHook &gt; &amp;parent_hooks={}, const std::vector&lt; Subprocess::ChildHook &gt; &amp;child_hooks={})</td></tr>
<tr class="memdesc:acd3d31ab4db7e39286a689b69ff8be3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Overload of 'subprocess' for launching a shell command, i.e., 'sh -c command'. <a href="#acd3d31ab4db7e39286a689b69ff8be3e">More...</a><br/></td></tr>
<tr class="separator:acd3d31ab4db7e39286a689b69ff8be3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adecde1a7ed503e819a4bc31ae854a9b4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1internal.html#adecde1a7ed503e819a4bc31ae854a9b4">process::internal::close</a> (std::initializer_list&lt; <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> &gt; fds)</td></tr>
<tr class="separator:adecde1a7ed503e819a4bc31ae854a9b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc857302069b1802e2b9983a54e0e4ef"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1internal.html#abc857302069b1802e2b9983a54e0e4ef">process::internal::close</a> (const Subprocess::IO::InputFileDescriptors &amp;stdinfds, const Subprocess::IO::OutputFileDescriptors &amp;stdoutfds, const Subprocess::IO::OutputFileDescriptors &amp;stderrfds)</td></tr>
<tr class="separator:abc857302069b1802e2b9983a54e0e4ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</small></address>
</body>
</html>