<!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::NotifyServer::DefaultInterface 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_1NotifyServer.html">NotifyServer</a></li><li class="navelem"><a class="el" href="classcrashpad_1_1NotifyServer_1_1DefaultInterface.html">DefaultInterface</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classcrashpad_1_1NotifyServer_1_1DefaultInterface-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">crashpad::NotifyServer::DefaultInterface Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>A concrete implementation of <a class="el" href="classcrashpad_1_1NotifyServer_1_1Interface.html" title="An interface that the different request messages that are a part of the notify Mach subsystem can be ...">Interface</a> that provides a default behavior for all <code>notify</code> routines.  
 <a href="classcrashpad_1_1NotifyServer_1_1DefaultInterface.html#details">More...</a></p>

<p><code>#include &quot;util/mach/notify_server.h&quot;</code></p>
<div class="dynheader">
Inheritance diagram for crashpad::NotifyServer::DefaultInterface:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classcrashpad_1_1NotifyServer_1_1DefaultInterface.png" usemap="#crashpad::NotifyServer::DefaultInterface_map" alt=""/>
  <map id="crashpad::NotifyServer::DefaultInterface_map" name="crashpad::NotifyServer::DefaultInterface_map">
<area href="classcrashpad_1_1NotifyServer_1_1Interface.html" title="An interface that the different request messages that are a part of the notify Mach subsystem can be ..." alt="crashpad::NotifyServer::Interface" shape="rect" coords="0,0,239,24"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a462b8fbfe77693bc77e4dc394d89398f"><td class="memItemLeft" align="right" valign="top">kern_return_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1NotifyServer_1_1DefaultInterface.html#a462b8fbfe77693bc77e4dc394d89398f">DoMachNotifyPortDeleted</a> (notify_port_t notify, mach_port_name_t name, const mach_msg_trailer_t *trailer) override</td></tr>
<tr class="memdesc:a462b8fbfe77693bc77e4dc394d89398f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles port-deleted notifications sent by <code>mach_notify_port_deleted()</code>.  <a href="classcrashpad_1_1NotifyServer_1_1DefaultInterface.html#a462b8fbfe77693bc77e4dc394d89398f">More...</a><br /></td></tr>
<tr class="separator:a462b8fbfe77693bc77e4dc394d89398f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26e577092f3d7289a950545319e29d7f"><td class="memItemLeft" align="right" valign="top">kern_return_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1NotifyServer_1_1DefaultInterface.html#a26e577092f3d7289a950545319e29d7f">DoMachNotifyPortDestroyed</a> (notify_port_t notify, mach_port_t rights, const mach_msg_trailer_t *trailer, bool *destroy_request) override</td></tr>
<tr class="memdesc:a26e577092f3d7289a950545319e29d7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles port-destroyed notifications sent by <code>mach_notify_port_destroyed()</code>.  <a href="classcrashpad_1_1NotifyServer_1_1DefaultInterface.html#a26e577092f3d7289a950545319e29d7f">More...</a><br /></td></tr>
<tr class="separator:a26e577092f3d7289a950545319e29d7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed9cb9e85f275edd5ee72eca34888188"><td class="memItemLeft" align="right" valign="top">kern_return_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1NotifyServer_1_1DefaultInterface.html#aed9cb9e85f275edd5ee72eca34888188">DoMachNotifyNoSenders</a> (notify_port_t notify, mach_port_mscount_t mscount, const mach_msg_trailer_t *trailer) override</td></tr>
<tr class="memdesc:aed9cb9e85f275edd5ee72eca34888188"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles no-senders notifications sent by <code>mach_notify_no_senders()</code>.  <a href="classcrashpad_1_1NotifyServer_1_1DefaultInterface.html#aed9cb9e85f275edd5ee72eca34888188">More...</a><br /></td></tr>
<tr class="separator:aed9cb9e85f275edd5ee72eca34888188"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a5e82e6bd51eac1dbff7aac2c7b6bf4"><td class="memItemLeft" align="right" valign="top">kern_return_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1NotifyServer_1_1DefaultInterface.html#a3a5e82e6bd51eac1dbff7aac2c7b6bf4">DoMachNotifySendOnce</a> (notify_port_t notify, const mach_msg_trailer_t *trailer) override</td></tr>
<tr class="memdesc:a3a5e82e6bd51eac1dbff7aac2c7b6bf4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles send-once notifications sent by <code>mach_notify_send_once()</code>.  <a href="classcrashpad_1_1NotifyServer_1_1DefaultInterface.html#a3a5e82e6bd51eac1dbff7aac2c7b6bf4">More...</a><br /></td></tr>
<tr class="separator:a3a5e82e6bd51eac1dbff7aac2c7b6bf4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0373d989a72ee8c37ab4977f8ffb836a"><td class="memItemLeft" align="right" valign="top">kern_return_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcrashpad_1_1NotifyServer_1_1DefaultInterface.html#a0373d989a72ee8c37ab4977f8ffb836a">DoMachNotifyDeadName</a> (notify_port_t notify, mach_port_name_t name, const mach_msg_trailer_t *trailer) override</td></tr>
<tr class="memdesc:a0373d989a72ee8c37ab4977f8ffb836a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles dead-name notifications sent by <code>mach_notify_dead_name()</code>.  <a href="classcrashpad_1_1NotifyServer_1_1DefaultInterface.html#a0373d989a72ee8c37ab4977f8ffb836a">More...</a><br /></td></tr>
<tr class="separator:a0373d989a72ee8c37ab4977f8ffb836a"><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>A concrete implementation of <a class="el" href="classcrashpad_1_1NotifyServer_1_1Interface.html" title="An interface that the different request messages that are a part of the notify Mach subsystem can be ...">Interface</a> that provides a default behavior for all <code>notify</code> routines. </p>
<p>The Mach <code>notify</code> subsystem contains a collection of unrelated routines, and a single server would rarely need to implement all of them. To make it easier to use <a class="el" href="classcrashpad_1_1NotifyServer.html" title="A server interface for the notify Mach subsystem.">NotifyServer</a>, a server can inherit from <a class="el" href="classcrashpad_1_1NotifyServer_1_1DefaultInterface.html" title="A concrete implementation of Interface that provides a default behavior for all notify routines.">DefaultInterface</a> instead of <a class="el" href="classcrashpad_1_1NotifyServer_1_1Interface.html" title="An interface that the different request messages that are a part of the notify Mach subsystem can be ...">Interface</a>. Unless overridden, each routine in <a class="el" href="classcrashpad_1_1NotifyServer_1_1DefaultInterface.html" title="A concrete implementation of Interface that provides a default behavior for all notify routines.">DefaultInterface</a> returns <code>MIG_BAD_ID</code> to indicate to the caller that the <code>notify</code> message was unexpected and not processed. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a0373d989a72ee8c37ab4977f8ffb836a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0373d989a72ee8c37ab4977f8ffb836a">&#9670;&nbsp;</a></span>DoMachNotifyDeadName()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">kern_return_t crashpad::NotifyServer::DefaultInterface::DoMachNotifyDeadName </td>
          <td>(</td>
          <td class="paramtype">notify_port_t&#160;</td>
          <td class="paramname"><em>notify</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">mach_port_name_t&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const mach_msg_trailer_t *&#160;</td>
          <td class="paramname"><em>trailer</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">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Handles dead-name notifications sent by <code>mach_notify_dead_name()</code>. </p>
<p>A dead-name notification is generated when a port with a dead-name notification request is destroyed and the right becomes a dead name.</p>
<p>This behaves equivalently to a <code>do_mach_notify_dead_name()</code> function used with <code>notify_server()</code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">notify</td><td>The Mach port that the notification was sent to. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>The dead name. Although this is transferred as a <code>mach_port_name_t</code> and not a <code>mach_port_t</code>, the callee assumes an additional reference to this port when this method is called. See the note below. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">trailer</td><td>The trailer received with the notification message.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>When a dead-name notification is generated, the user reference count of the dead name is incremented. A send right with one reference that becomes a dead name will have one dead-name reference, and the dead-name notification will add another dead-name reference, for a total of 2. <a class="el" href="classcrashpad_1_1NotifyServer_1_1DefaultInterface.html#a0373d989a72ee8c37ab4977f8ffb836a" title="Handles dead-name notifications sent by mach_notify_dead_name().">DoMachNotifyDeadName()</a> implementations must take care to deallocate this extra reference. There is no <em>destroy_request</em> parameter to simplify this operation because dead-name notifications carry a port name only (<em>name</em> is of type <code>mach_port_name_t</code>) without transferring port rights, and are thus not complex Mach messages. </dd></dl>

<p>Implements <a class="el" href="classcrashpad_1_1NotifyServer_1_1Interface.html#a14dd1d58279338be03f2d8bcb4cec552">crashpad::NotifyServer::Interface</a>.</p>

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

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">kern_return_t crashpad::NotifyServer::DefaultInterface::DoMachNotifyNoSenders </td>
          <td>(</td>
          <td class="paramtype">notify_port_t&#160;</td>
          <td class="paramname"><em>notify</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">mach_port_mscount_t&#160;</td>
          <td class="paramname"><em>mscount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const mach_msg_trailer_t *&#160;</td>
          <td class="paramname"><em>trailer</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">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Handles no-senders notifications sent by <code>mach_notify_no_senders()</code>. </p>
<p>A no-senders notification is generated when a receive right with a no-senders notification request loses its last corresponding send right.</p>
<p>This behaves equivalently to a <code>do_mach_notify_no_senders()</code> function used with <code>notify_server()</code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">notify</td><td>The Mach port that the notification was sent to. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">mscount</td><td>The value of the sender-less port’s make-send count at the time the notification was generated. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">trailer</td><td>The trailer received with the notification message. </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="classcrashpad_1_1NotifyServer_1_1Interface.html#a9818bb1f746ab470b06daffa53f4a3f6">crashpad::NotifyServer::Interface</a>.</p>

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

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">kern_return_t crashpad::NotifyServer::DefaultInterface::DoMachNotifyPortDeleted </td>
          <td>(</td>
          <td class="paramtype">notify_port_t&#160;</td>
          <td class="paramname"><em>notify</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">mach_port_name_t&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const mach_msg_trailer_t *&#160;</td>
          <td class="paramname"><em>trailer</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">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Handles port-deleted notifications sent by <code>mach_notify_port_deleted()</code>. </p>
<p>A port-deleted notification is generated when a port with a dead-name notification request is destroyed and the port name becomes available for reuse.</p>
<p>This behaves equivalently to a <code>do_mach_notify_port_deleted()</code> function used with <code>notify_server()</code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">notify</td><td>The Mach port that the notification was sent to. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>The name that formerly referenced the deleted port. When this method is called, <em>name</em> no longer corresponds to the port that has been deleted, and may be reused for another purpose. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">trailer</td><td>The trailer received with the notification message. </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="classcrashpad_1_1NotifyServer_1_1Interface.html#afb31bdbba0f94be2efa0caff19a89fa4">crashpad::NotifyServer::Interface</a>.</p>

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

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">kern_return_t crashpad::NotifyServer::DefaultInterface::DoMachNotifyPortDestroyed </td>
          <td>(</td>
          <td class="paramtype">notify_port_t&#160;</td>
          <td class="paramname"><em>notify</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">mach_port_t&#160;</td>
          <td class="paramname"><em>rights</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const mach_msg_trailer_t *&#160;</td>
          <td class="paramname"><em>trailer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool *&#160;</td>
          <td class="paramname"><em>destroy_request</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">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Handles port-destroyed notifications sent by <code>mach_notify_port_destroyed()</code>. </p>
<p>A port-destroyed notification is generated when a receive right with a port-destroyed notification request is destroyed. Rather than destroying the receive right, it is transferred via this notification’s <em>rights</em> parameter.</p>
<p>This behaves equivalently to a <code>do_mach_notify_port_destroyed()</code> function used with <code>notify_server()</code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">notify</td><td>The Mach port that the notification was sent to. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">rights</td><td>A receive right for the port that would have been destroyed. The callee takes ownership of this port, however, if the callee does not wish to take ownership, it may set <em>destroy_request</em> to <code>true</code>. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">trailer</td><td>The trailer received with the notification message. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">destroy_request</td><td><code>true</code> if the request message is to be destroyed even when this method returns success. See <a class="el" href="classcrashpad_1_1MachMessageServer_1_1Interface.html" title="A Mach RPC callback interface, called by Run().">MachMessageServer::Interface</a>. </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="classcrashpad_1_1NotifyServer_1_1Interface.html#afd3f056edee7243e1b388aed2dcd6505">crashpad::NotifyServer::Interface</a>.</p>

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

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">kern_return_t crashpad::NotifyServer::DefaultInterface::DoMachNotifySendOnce </td>
          <td>(</td>
          <td class="paramtype">notify_port_t&#160;</td>
          <td class="paramname"><em>notify</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const mach_msg_trailer_t *&#160;</td>
          <td class="paramname"><em>trailer</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">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Handles send-once notifications sent by <code>mach_notify_send_once()</code>. </p>
<p>A send-once notification is generated when a send-once right is destroyed without being used.</p>
<p>This behaves equivalently to a <code>do_mach_notify_send_once()</code> function used with <code>notify_server()</code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">notify</td><td>The Mach port that the notification was sent to. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">trailer</td><td>The trailer received with the notification message.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>Unlike the other notifications in the <code>notify</code> subsystem, send-once notifications are not generated as a result of a notification request, but are generated any time a send-once right is destroyed rather than being used. The notification is sent via the send-once right to its receiver. These notifications are more useful for clients, not servers. Send-once notifications are normally handled by MIG-generated client routines, which make send-once rights for their reply ports and interpret send-once notifications as a signal that there will be no reply. Although not expected to be primarily useful for servers, this method is provided because send-once notifications are defined as a part of the <code>notify</code> subsystem. </dd></dl>

<p>Implements <a class="el" href="classcrashpad_1_1NotifyServer_1_1Interface.html#a39d4166913a905e3354cc2f689869b0e">crashpad::NotifyServer::Interface</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>util/mach/notify_server.h</li>
<li>util/mach/notify_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>
