<!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.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Crashpad: crashpad::test::WinMultiprocess Class 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="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="crashpad_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 id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Crashpad
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespacecrashpad.html">crashpad</a></li><li class="navelem"><a class="el" href="namespacecrashpad_1_1test.html">test</a></li><li class="navelem"><a class="el" href="classcrashpad_1_1test_1_1WinMultiprocess.html">WinMultiprocess</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classcrashpad_1_1test_1_1WinMultiprocess-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">crashpad::test::WinMultiprocess Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p>Manages a multiprocess test on Windows.  
 <a href="classcrashpad_1_1test_1_1WinMultiprocess.html#details">More...</a></p>

<p><code>#include &quot;test/win/win_multiprocess.h&quot;</code></p>
<div class="dynheader">
Inheritance diagram for crashpad::test::WinMultiprocess:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classcrashpad_1_1test_1_1WinMultiprocess.png" usemap="#crashpad::test::WinMultiprocess_map" alt=""/>
  <map id="crashpad::test::WinMultiprocess_map" name="crashpad::test::WinMultiprocess_map">
<area href="classcrashpad_1_1test_1_1WinMultiprocessWithTempDir.html" title="Manages a multiprocess test on Windows with a parent-created temporary directory. ..." alt="crashpad::test::WinMultiprocessWithTempDir" shape="rect" coords="0,56,260,80"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a6bece6599f0ff54cdcc7a99550c4f1a6"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a6bece6599f0ff54cdcc7a99550c4f1a6"><td class="memTemplItemLeft" align="right" valign="top">static void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1test_1_1WinMultiprocess.html#a6bece6599f0ff54cdcc7a99550c4f1a6">Run</a> ()</td></tr>
<tr class="memdesc:a6bece6599f0ff54cdcc7a99550c4f1a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Runs the test.  <a href="#a6bece6599f0ff54cdcc7a99550c4f1a6">More...</a><br /></td></tr>
<tr class="separator:a6bece6599f0ff54cdcc7a99550c4f1a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a26a2a41fe6294ebc0d34c92e4f932356"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1test_1_1WinMultiprocess.html#a26a2a41fe6294ebc0d34c92e4f932356">SetExpectedChildExitCode</a> (unsigned int exit_code)</td></tr>
<tr class="memdesc:a26a2a41fe6294ebc0d34c92e4f932356"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the expected exit code of the child process.  <a href="#a26a2a41fe6294ebc0d34c92e4f932356">More...</a><br /></td></tr>
<tr class="separator:a26a2a41fe6294ebc0d34c92e4f932356"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab11e2ba1a50fe8c3be21517d167f9928"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1test_1_1WinMultiprocess.html#ab11e2ba1a50fe8c3be21517d167f9928">ReadPipeHandle</a> () const</td></tr>
<tr class="memdesc:ab11e2ba1a50fe8c3be21517d167f9928"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the read pipe's file handle.  <a href="#ab11e2ba1a50fe8c3be21517d167f9928">More...</a><br /></td></tr>
<tr class="separator:ab11e2ba1a50fe8c3be21517d167f9928"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34fd7345b612ccfb7efcfebfb4d8400f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1test_1_1WinMultiprocess.html#a34fd7345b612ccfb7efcfebfb4d8400f">WritePipeHandle</a> () const</td></tr>
<tr class="memdesc:a34fd7345b612ccfb7efcfebfb4d8400f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the write pipe's file handle.  <a href="#a34fd7345b612ccfb7efcfebfb4d8400f">More...</a><br /></td></tr>
<tr class="separator:a34fd7345b612ccfb7efcfebfb4d8400f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af569275d7c83a780319919c06ab7a3ab"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1test_1_1WinMultiprocess.html#af569275d7c83a780319919c06ab7a3ab">CloseReadPipe</a> ()</td></tr>
<tr class="memdesc:af569275d7c83a780319919c06ab7a3ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes the read pipe.  <a href="#af569275d7c83a780319919c06ab7a3ab">More...</a><br /></td></tr>
<tr class="separator:af569275d7c83a780319919c06ab7a3ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab2cac6c2bd29bbb1fbac7de41f82fa5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1test_1_1WinMultiprocess.html#aab2cac6c2bd29bbb1fbac7de41f82fa5">CloseWritePipe</a> ()</td></tr>
<tr class="memdesc:aab2cac6c2bd29bbb1fbac7de41f82fa5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes the write pipe.  <a href="#aab2cac6c2bd29bbb1fbac7de41f82fa5">More...</a><br /></td></tr>
<tr class="separator:aab2cac6c2bd29bbb1fbac7de41f82fa5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51bbd60b4e28ecca486c97f86601d480"><td class="memItemLeft" align="right" valign="top">HANDLE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1test_1_1WinMultiprocess.html#a51bbd60b4e28ecca486c97f86601d480">ChildProcess</a> () const</td></tr>
<tr class="memdesc:a51bbd60b4e28ecca486c97f86601d480"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a handle to the child process.  <a href="#a51bbd60b4e28ecca486c97f86601d480">More...</a><br /></td></tr>
<tr class="separator:a51bbd60b4e28ecca486c97f86601d480"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Manages a multiprocess test on Windows. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a51bbd60b4e28ecca486c97f86601d480"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a51bbd60b4e28ecca486c97f86601d480">&#9670;&nbsp;</a></span>ChildProcess()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">HANDLE crashpad::test::WinMultiprocess::ChildProcess </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns a handle to the child process. </p>
<p>This method may only be called by the parent process. </p>

</div>
</div>
<a id="af569275d7c83a780319919c06ab7a3ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af569275d7c83a780319919c06ab7a3ab">&#9670;&nbsp;</a></span>CloseReadPipe()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void crashpad::test::WinMultiprocess::CloseReadPipe </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Closes the read pipe. </p>
<p>This method may be called by either the parent or the child process. <a class="el" href="classcrashpad_1_1test_1_1WinMultiprocess.html#ab11e2ba1a50fe8c3be21517d167f9928" title="Returns the read pipe&#39;s file handle. ">ReadPipeHandle()</a> must not be called after this. </p>

</div>
</div>
<a id="aab2cac6c2bd29bbb1fbac7de41f82fa5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aab2cac6c2bd29bbb1fbac7de41f82fa5">&#9670;&nbsp;</a></span>CloseWritePipe()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void crashpad::test::WinMultiprocess::CloseWritePipe </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Closes the write pipe. </p>
<p>This method may be called by either the parent or the child process. An attempt to read from the read pipe in the partner process will indicate end-of-file. <a class="el" href="classcrashpad_1_1test_1_1WinMultiprocess.html#a34fd7345b612ccfb7efcfebfb4d8400f" title="Returns the write pipe&#39;s file handle. ">WritePipeHandle()</a> must not be called after this. </p>

</div>
</div>
<a id="ab11e2ba1a50fe8c3be21517d167f9928"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab11e2ba1a50fe8c3be21517d167f9928">&#9670;&nbsp;</a></span>ReadPipeHandle()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a> crashpad::test::WinMultiprocess::ReadPipeHandle </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the read pipe's file handle. </p>
<p>This method may be called by either the parent or the child process. Anything written to the write pipe in the partner process will appear on this file handle in this process.</p>
<p>It is an error to call this after <a class="el" href="classcrashpad_1_1test_1_1WinMultiprocess.html#af569275d7c83a780319919c06ab7a3ab" title="Closes the read pipe. ">CloseReadPipe()</a> has been called.</p>
<dl class="section return"><dt>Returns</dt><dd>The read pipe's file handle. </dd></dl>

</div>
</div>
<a id="a6bece6599f0ff54cdcc7a99550c4f1a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6bece6599f0ff54cdcc7a99550c4f1a6">&#9670;&nbsp;</a></span>Run()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void crashpad::test::WinMultiprocess::Run </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Runs the test. </p>
<p>This method establishes the testing environment by respawning the process as a child with additional flags.</p>
<p>In the parent process, WinMultiprocessParent() is run, and in the child WinMultiprocessChild(). </p>

</div>
</div>
<a id="a26a2a41fe6294ebc0d34c92e4f932356"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a26a2a41fe6294ebc0d34c92e4f932356">&#9670;&nbsp;</a></span>SetExpectedChildExitCode()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void crashpad::test::WinMultiprocess::SetExpectedChildExitCode </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>exit_code</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sets the expected exit code of the child process. </p>
<p>The default expected termination code is <code>EXIT_SUCCESS</code> (<code>0</code>).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">exit_code</td><td>The expected exit status of the child. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a34fd7345b612ccfb7efcfebfb4d8400f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34fd7345b612ccfb7efcfebfb4d8400f">&#9670;&nbsp;</a></span>WritePipeHandle()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacecrashpad.html#a07f8e33c4fdeba3783277f9f2563e48a">FileHandle</a> crashpad::test::WinMultiprocess::WritePipeHandle </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the write pipe's file handle. </p>
<p>This method may be called by either the parent or the child process. Anything written to this file handle in this process will appear on the read pipe in the partner process.</p>
<p>It is an error to call this after <a class="el" href="classcrashpad_1_1test_1_1WinMultiprocess.html#aab2cac6c2bd29bbb1fbac7de41f82fa5" title="Closes the write pipe. ">CloseWritePipe()</a> has been called.</p>
<dl class="section return"><dt>Returns</dt><dd>The write pipe's file handle. </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>test/win/win_multiprocess.h</li>
<li>test/win/win_multiprocess.cc</li>
</ul>
</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.14
</small></address>
</body>
</html>
