<trclass="memdesc:a98dba7a5b210d88d5133cae5a615086d"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Constructs an <aclass="el"href="classcrashpad_1_1ExceptionHandlerServer.html"title="Runs the main exception-handling server in Crashpad’s handler process. ">ExceptionHandlerServer</a> object. <ahref="#a98dba7a5b210d88d5133cae5a615086d">More...</a><br/></td></tr>
<trclass="memdesc:a348789edd93bcd388ddd38c77230583d"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Runs the exception-handling server. <ahref="#a348789edd93bcd388ddd38c77230583d">More...</a><br/></td></tr>
<trclass="memdesc:ab7a18e94b43bbe192e37a28638e25a51"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Sets the pipe name to listen for client registrations on. <ahref="#ab7a18e94b43bbe192e37a28638e25a51">More...</a><br/></td></tr>
<trclass="memdesc:a3093cf1cbe8a36428c6333841c0c7e86"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Sets the pipe to listen for client registrations on, providing the first precreated instance. <ahref="#a3093cf1cbe8a36428c6333841c0c7e86">More...</a><br/></td></tr>
<trclass="memdesc:a8ddcf9cff0364e46378ef575ded9a773"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Runs the exception-handling server. <ahref="#a8ddcf9cff0364e46378ef575ded9a773">More...</a><br/></td></tr>
<trclass="memdesc:a75dd814798b8f8224f53d84cea8368be"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Stops the exception-handling server. Returns immediately. The object must not be destroyed until <aclass="el"href="classcrashpad_1_1ExceptionHandlerServer.html#a348789edd93bcd388ddd38c77230583d"title="Runs the exception-handling server. ">Run()</a> returns. <br/></td></tr>
<trclass="memdesc:aa0182e8bb9a9931d96acf84f93eb81cd"><tdclass="mdescLeft"> </td><tdclass="mdescRight">The number of server-side pipe instances that the exception handler server creates to listen for connections from clients. <br/></td></tr>
<p>Constructs an <aclass="el"href="classcrashpad_1_1ExceptionHandlerServer.html"title="Runs the main exception-handling server in Crashpad’s handler process. ">ExceptionHandlerServer</a> object. </p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">receive_port</td><td>The port that exception messages and no-senders notifications will be received on. </td></tr>
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">launchd</td><td>If <code>true</code>, the exception handler is being run from launchd. <em>receive_port</em> is not monitored for no-senders notifications, and instead, <aclass="el"href="classcrashpad_1_1ExceptionHandlerServer.html#a75dd814798b8f8224f53d84cea8368be"title="Stops a running exception-handling server. ">Stop()</a> must be called to provide a “quit” signal. </td></tr>
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">persistent</td><td><code>true</code> if <aclass="el"href="classcrashpad_1_1ExceptionHandlerServer.html#a348789edd93bcd388ddd38c77230583d"title="Runs the exception-handling server. ">Run()</a> should not return until <aclass="el"href="classcrashpad_1_1ExceptionHandlerServer.html#a75dd814798b8f8224f53d84cea8368be"title="Stops a running exception-handling server. ">Stop()</a> is called. If <code>false</code>, <aclass="el"href="classcrashpad_1_1ExceptionHandlerServer.html#a348789edd93bcd388ddd38c77230583d"title="Runs the exception-handling server. ">Run()</a> will return when all clients have exited, although <aclass="el"href="classcrashpad_1_1ExceptionHandlerServer.html#a348789edd93bcd388ddd38c77230583d"title="Runs the exception-handling server. ">Run()</a> will always wait for the first client to connect. </td></tr>
<p>Sets the pipe to listen for client registrations on, providing the first precreated instance. </p>
<p>This method, or <aclass="el"href="classcrashpad_1_1ExceptionHandlerServer.html#ab7a18e94b43bbe192e37a28638e25a51"title="Sets the pipe name to listen for client registrations on. ">SetPipeName()</a>, must be called before <aclass="el"href="classcrashpad_1_1ExceptionHandlerServer.html#a348789edd93bcd388ddd38c77230583d"title="Runs the exception-handling server. ">Run()</a>. All of these parameters are generally created in a parent process that launches the handler. For more details see the Windows implementation of <aclass="el"href="classcrashpad_1_1CrashpadClient.html"title="The primary interface for an application to have Crashpad monitor it for crashes. ...">CrashpadClient</a>.</p>
<dlclass="section see"><dt>See also</dt><dd><aclass="el"href="classcrashpad_1_1CrashpadClient.html"title="The primary interface for an application to have Crashpad monitor it for crashes. ...">CrashpadClient</a></dd>
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">initial_client_data</td><td>The handles and addresses of data inherited from a parent process needed to initialize and register the first client. Ownership of these handles is taken. </td></tr>
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">delegate</td><td>The interface to which the exceptions are delegated when they are caught in <aclass="el"href="classcrashpad_1_1ExceptionHandlerServer.html#a348789edd93bcd388ddd38c77230583d"title="Runs the exception-handling server. ">Run()</a>. Ownership is not transferred. </td></tr>
<p>This method monitors the receive port for exception messages and, if not being run by launchd, no-senders notifications. It continues running until it has no more clients, indicated by the receipt of a no-senders notification, or until <aclass="el"href="classcrashpad_1_1ExceptionHandlerServer.html#a75dd814798b8f8224f53d84cea8368be"title="Stops a running exception-handling server. ">Stop()</a> is called. When not being run by launchd, it is important to assure that a send right exists in a client (or has been queued by <code>mach_msg()</code> to be sent to a client) prior to calling this method, or it will detect that it is sender-less and return immediately.</p>
<p>All exception messages will be passed to <em>exception_interface</em>.</p>
<p>This method must only be called once on an <aclass="el"href="classcrashpad_1_1ExceptionHandlerServer.html"title="Runs the main exception-handling server in Crashpad’s handler process. ">ExceptionHandlerServer</a> object.</p>
<p>If an unexpected condition that prevents this method from functioning is encountered, it will log a message and terminate execution. Receipt of an invalid message on the receive port will cause a message to be logged, but this method will continue running normally. </p>
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">delegate</td><td>The interface to which the exceptions are delegated when they are caught in <aclass="el"href="classcrashpad_1_1ExceptionHandlerServer.html#a348789edd93bcd388ddd38c77230583d"title="Runs the exception-handling server. ">Run()</a>. Ownership is not transferred. </td></tr>
<p>This method, or <aclass="el"href="classcrashpad_1_1ExceptionHandlerServer.html#a3093cf1cbe8a36428c6333841c0c7e86"title="Sets the pipe to listen for client registrations on, providing the first precreated instance...">InitializeWithInheritedDataForInitialClient()</a>, must be called before <aclass="el"href="classcrashpad_1_1ExceptionHandlerServer.html#a348789edd93bcd388ddd38c77230583d"title="Runs the exception-handling server. ">Run()</a>.</p>
<tr><tdclass="paramdir">[in]</td><tdclass="paramname">pipe_name</td><td>The name of the pipe to listen on. Must be of the form "\\.\pipe\<some_name>". </td></tr>
<p>Stops a running exception-handling server. </p>
<p>The normal mode of operation is to call <aclass="el"href="classcrashpad_1_1ExceptionHandlerServer.html#a75dd814798b8f8224f53d84cea8368be"title="Stops a running exception-handling server. ">Stop()</a> while <aclass="el"href="classcrashpad_1_1ExceptionHandlerServer.html#a348789edd93bcd388ddd38c77230583d"title="Runs the exception-handling server. ">Run()</a> is running. It is expected that <aclass="el"href="classcrashpad_1_1ExceptionHandlerServer.html#a75dd814798b8f8224f53d84cea8368be"title="Stops a running exception-handling server. ">Stop()</a> would be called from a signal handler.</p>
<p>If <aclass="el"href="classcrashpad_1_1ExceptionHandlerServer.html#a75dd814798b8f8224f53d84cea8368be"title="Stops a running exception-handling server. ">Stop()</a> is called before <aclass="el"href="classcrashpad_1_1ExceptionHandlerServer.html#a348789edd93bcd388ddd38c77230583d"title="Runs the exception-handling server. ">Run()</a> it will cause <aclass="el"href="classcrashpad_1_1ExceptionHandlerServer.html#a348789edd93bcd388ddd38c77230583d"title="Runs the exception-handling server. ">Run()</a> to return as soon as it is called. It is harmless to call <aclass="el"href="classcrashpad_1_1ExceptionHandlerServer.html#a75dd814798b8f8224f53d84cea8368be"title="Stops a running exception-handling server. ">Stop()</a> after <aclass="el"href="classcrashpad_1_1ExceptionHandlerServer.html#a348789edd93bcd388ddd38c77230583d"title="Runs the exception-handling server. ">Run()</a> has already returned, or to call <aclass="el"href="classcrashpad_1_1ExceptionHandlerServer.html#a75dd814798b8f8224f53d84cea8368be"title="Stops a running exception-handling server. ">Stop()</a> after it has already been called. </p>