<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Crashpad: crashpad::MachMessageServer 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.18 -->
<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="classcrashpad_1_1MachMessageServer.html">MachMessageServer</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="classcrashpad_1_1MachMessageServer-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">crashpad::MachMessageServer Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Runs a Mach message server to handle a Mach RPC request for MIG servers.  
 <a href="classcrashpad_1_1MachMessageServer.html#details">More...</a></p>

<p><code>#include &quot;util/mach/mach_message_server.h&quot;</code></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="classcrashpad_1_1MachMessageServer_1_1Interface.html">Interface</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A Mach RPC callback interface, called by <a class="el" href="classcrashpad_1_1MachMessageServer.html#ace981f2e495984f119aa074f7d33bff6" title="Runs a Mach message server to handle a Mach RPC request for MIG servers.">Run()</a>.  <a href="classcrashpad_1_1MachMessageServer_1_1Interface.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="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a737f51adaf8725883f1158ef2576aae8"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MachMessageServer.html#a737f51adaf8725883f1158ef2576aae8">Persistent</a> </td></tr>
<tr class="memdesc:a737f51adaf8725883f1158ef2576aae8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Informs <a class="el" href="classcrashpad_1_1MachMessageServer.html#ace981f2e495984f119aa074f7d33bff6" title="Runs a Mach message server to handle a Mach RPC request for MIG servers.">Run()</a> whether to handle a single request-reply transaction or to run in a loop.  <a href="classcrashpad_1_1MachMessageServer.html#a737f51adaf8725883f1158ef2576aae8">More...</a><br /></td></tr>
<tr class="separator:a737f51adaf8725883f1158ef2576aae8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4e5a9fe58ebd1a86f21d8a2284129ed"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MachMessageServer.html#ad4e5a9fe58ebd1a86f21d8a2284129ed">ReceiveLarge</a> </td></tr>
<tr class="memdesc:ad4e5a9fe58ebd1a86f21d8a2284129ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines how to handle the reception of messages larger than the size of the buffer allocated to store them.  <a href="classcrashpad_1_1MachMessageServer.html#ad4e5a9fe58ebd1a86f21d8a2284129ed">More...</a><br /></td></tr>
<tr class="separator:ad4e5a9fe58ebd1a86f21d8a2284129ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><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:ace981f2e495984f119aa074f7d33bff6"><td class="memItemLeft" align="right" valign="top">static mach_msg_return_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1MachMessageServer.html#ace981f2e495984f119aa074f7d33bff6">Run</a> (<a class="el" href="classcrashpad_1_1MachMessageServer_1_1Interface.html">Interface</a> *interface, mach_port_t receive_port, mach_msg_options_t options, <a class="el" href="classcrashpad_1_1MachMessageServer.html#a737f51adaf8725883f1158ef2576aae8">Persistent</a> persistent, <a class="el" href="classcrashpad_1_1MachMessageServer.html#ad4e5a9fe58ebd1a86f21d8a2284129ed">ReceiveLarge</a> receive_large, mach_msg_timeout_t timeout_ms)</td></tr>
<tr class="memdesc:ace981f2e495984f119aa074f7d33bff6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Runs a Mach message server to handle a Mach RPC request for MIG servers.  <a href="classcrashpad_1_1MachMessageServer.html#ace981f2e495984f119aa074f7d33bff6">More...</a><br /></td></tr>
<tr class="separator:ace981f2e495984f119aa074f7d33bff6"><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>Runs a Mach message server to handle a Mach RPC request for MIG servers. </p>
<p>The principal entry point to this interface is the static <a class="el" href="classcrashpad_1_1MachMessageServer.html#ace981f2e495984f119aa074f7d33bff6" title="Runs a Mach message server to handle a Mach RPC request for MIG servers.">Run()</a> method. </p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="a737f51adaf8725883f1158ef2576aae8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a737f51adaf8725883f1158ef2576aae8">&#9670;&nbsp;</a></span>Persistent</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classcrashpad_1_1MachMessageServer.html#a737f51adaf8725883f1158ef2576aae8">crashpad::MachMessageServer::Persistent</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Informs <a class="el" href="classcrashpad_1_1MachMessageServer.html#ace981f2e495984f119aa074f7d33bff6" title="Runs a Mach message server to handle a Mach RPC request for MIG servers.">Run()</a> whether to handle a single request-reply transaction or to run in a loop. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a737f51adaf8725883f1158ef2576aae8aa2c8263ef8e0afb54cc5d01c6ac3a735"></a>kOneShot&#160;</td><td class="fielddoc"><p>Handle a single request-reply transaction and then return. </p>
</td></tr>
<tr><td class="fieldname"><a id="a737f51adaf8725883f1158ef2576aae8a9f7aa4de8d84bd299a296d7b289c6047"></a>kPersistent&#160;</td><td class="fielddoc"><p>Run in a loop, potentially handling multiple request-reply transactions. </p>
</td></tr>
</table>

</div>
</div>
<a id="ad4e5a9fe58ebd1a86f21d8a2284129ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad4e5a9fe58ebd1a86f21d8a2284129ed">&#9670;&nbsp;</a></span>ReceiveLarge</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classcrashpad_1_1MachMessageServer.html#ad4e5a9fe58ebd1a86f21d8a2284129ed">crashpad::MachMessageServer::ReceiveLarge</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Determines how to handle the reception of messages larger than the size of the buffer allocated to store them. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ad4e5a9fe58ebd1a86f21d8a2284129eda9d5505bdd5aa2fd0789d3e79befd5d11"></a>kReceiveLargeError&#160;</td><td class="fielddoc"><p>Return <code>MACH_RCV_TOO_LARGE</code> upon receipt of a large message. </p>
<pre class="fragment">This mimics the default behavior of `mach_msg_server()` when `options`
does not contain `MACH_RCV_LARGE`. 
</pre> </td></tr>
<tr><td class="fieldname"><a id="ad4e5a9fe58ebd1a86f21d8a2284129eda1ffaaf6cc781039178422e5d05204b71"></a>kReceiveLargeIgnore&#160;</td><td class="fielddoc"><p>Ignore large messages, and attempt to receive the next queued message upon encountering one. </p>
<p>When a large message is encountered, a warning will be logged.</p>
<p><code>mach_msg()</code> will be called to receive the next message after a large one even when accompanied by a <a class="el" href="classcrashpad_1_1MachMessageServer.html#a737f51adaf8725883f1158ef2576aae8" title="Informs Run() whether to handle a single request-reply transaction or to run in a loop.">Persistent</a> value of <a class="el" href="classcrashpad_1_1MachMessageServer.html#a737f51adaf8725883f1158ef2576aae8aa2c8263ef8e0afb54cc5d01c6ac3a735" title="Handle a single request-reply transaction and then return.">kOneShot</a>. </p>
</td></tr>
<tr><td class="fieldname"><a id="ad4e5a9fe58ebd1a86f21d8a2284129eda865451f339d9413541ca25c22d9b2c71"></a>kReceiveLargeResize&#160;</td><td class="fielddoc"><p>Allocate an appropriately-sized buffer upon encountering a large message. The buffer will be used to receive the message. This. </p>
<p>This mimics the behavior of <code>mach_msg_server()</code> when <code>options</code> contains <code>MACH_RCV_LARGE</code>. </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ace981f2e495984f119aa074f7d33bff6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ace981f2e495984f119aa074f7d33bff6">&#9670;&nbsp;</a></span>Run()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">mach_msg_return_t crashpad::MachMessageServer::Run </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classcrashpad_1_1MachMessageServer_1_1Interface.html">Interface</a> *&#160;</td>
          <td class="paramname"><em>interface</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">mach_port_t&#160;</td>
          <td class="paramname"><em>receive_port</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">mach_msg_options_t&#160;</td>
          <td class="paramname"><em>options</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classcrashpad_1_1MachMessageServer.html#a737f51adaf8725883f1158ef2576aae8">Persistent</a>&#160;</td>
          <td class="paramname"><em>persistent</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classcrashpad_1_1MachMessageServer.html#ad4e5a9fe58ebd1a86f21d8a2284129ed">ReceiveLarge</a>&#160;</td>
          <td class="paramname"><em>receive_large</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">mach_msg_timeout_t&#160;</td>
          <td class="paramname"><em>timeout_ms</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Runs a Mach message server to handle a Mach RPC request for MIG servers. </p>
<p>This function listens for a request message and passes it to a callback interface. A reponse is collected from that interface, and is sent back as a reply.</p>
<p>This function is similar to <code>mach_msg_server()</code> and <code>mach_msg_server_once()</code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">interface</td><td>The MachMessageServerInterface that is responsible for handling the message. <a class="el" href="classcrashpad_1_1MachMessageServer_1_1Interface.html#a319dd9279e87b4407cee3c8feca405ab">Interface::MachMessageServerRequestSize()</a> is used as the receive size for the request message, and <a class="el" href="classcrashpad_1_1MachMessageServer_1_1Interface.html#ad4e6169aeb91074d573e77b9a47266c5">Interface::MachMessageServerReplySize()</a> is used as the maximum size of the reply message. If <em>options</em> contains <code>MACH_RCV_LARGE</code>, this function will retry a receive operation that returns <code>MACH_RCV_TOO_LARGE</code> with an appropriately-sized buffer. MachMessageServerInterface::MachMessageServerFunction() is called to handle the request and populate the reply. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">receive_port</td><td>The port on which to receive the request message. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">options</td><td>Options suitable for mach_msg. For the defaults, use <code>MACH_MSG_OPTION_NONE</code>. <code>MACH_RCV_LARGE</code> when specified here is ignored. Set <em>receive_large</em> to <a class="el" href="classcrashpad_1_1MachMessageServer.html#ad4e5a9fe58ebd1a86f21d8a2284129eda865451f339d9413541ca25c22d9b2c71" title="Allocate an appropriately-sized buffer upon encountering a large message. The buffer will be used to ...">kReceiveLargeResize</a> instead. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">persistent</td><td>Chooses between one-shot and persistent operation. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">receive_large</td><td>Determines the behavior upon encountering a message larger than the receive buffer’s size. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">timeout_ms</td><td>The maximum duration that this entire function will run, in milliseconds. This may be <a class="el" href="namespacecrashpad.html#ac805f7bb551683e1da0b156c09259c92a15aaf8991271871ab08493449c00a048" title="When passed to MachMessageDeadlineFromTimeout(), that function will return kMachMessageDeadlineNonblo...">kMachMessageTimeoutNonblocking</a> or <a class="el" href="namespacecrashpad.html#ac805f7bb551683e1da0b156c09259c92aaf4f2c8a649ea6bcfe896e77c312315f" title="When passed to MachMessageDeadlineFromTimeout(), that function will return kMachMessageDeadlineWaitIn...">kMachMessageTimeoutWaitIndefinitely</a>. When <em>persistent</em> is <a class="el" href="classcrashpad_1_1MachMessageServer.html#a737f51adaf8725883f1158ef2576aae8a9f7aa4de8d84bd299a296d7b289c6047" title="Run in a loop, potentially handling multiple request-reply transactions.">kPersistent</a>, the timeout applies to the overall duration of this function, not to any individual <code>mach_msg()</code> call.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>On success, <code>MACH_MSG_SUCCESS</code> (when <em>persistent</em> is <a class="el" href="classcrashpad_1_1MachMessageServer.html#a737f51adaf8725883f1158ef2576aae8aa2c8263ef8e0afb54cc5d01c6ac3a735" title="Handle a single request-reply transaction and then return.">kOneShot</a>) or <code>MACH_RCV_TIMED_OUT</code> (when <em>persistent</em> is <a class="el" href="classcrashpad_1_1MachMessageServer.html#a737f51adaf8725883f1158ef2576aae8aa2c8263ef8e0afb54cc5d01c6ac3a735" title="Handle a single request-reply transaction and then return.">kOneShot</a> and <em>timeout_ms</em> is not <a class="el" href="namespacecrashpad.html#ac805f7bb551683e1da0b156c09259c92aaf4f2c8a649ea6bcfe896e77c312315f" title="When passed to MachMessageDeadlineFromTimeout(), that function will return kMachMessageDeadlineWaitIn...">kMachMessageTimeoutWaitIndefinitely</a>). This function has no successful return value when <em>persistent</em> is <a class="el" href="classcrashpad_1_1MachMessageServer.html#a737f51adaf8725883f1158ef2576aae8a9f7aa4de8d84bd299a296d7b289c6047" title="Run in a loop, potentially handling multiple request-reply transactions.">kPersistent</a> and <em>timeout_ms</em> is <a class="el" href="namespacecrashpad.html#ac805f7bb551683e1da0b156c09259c92aaf4f2c8a649ea6bcfe896e77c312315f" title="When passed to MachMessageDeadlineFromTimeout(), that function will return kMachMessageDeadlineWaitIn...">kMachMessageTimeoutWaitIndefinitely</a>. On failure, returns a value identifying the nature of the error. A request received with a reply port that is (or becomes) a dead name before the reply is sent will result in <code>MACH_SEND_INVALID_DEST</code> as a return value, which may or may not be considered an error from the caller’s perspective. </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>util/mach/mach_message_server.h</li>
<li>util/mach/mach_message_server.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.18
</small></address>
</body>
</html>
