mirror of
https://github.com/mcneel/opennurbs.git
synced 2026-03-31 08:06:54 +08:00
348 lines
20 KiB
HTML
348 lines
20 KiB
HTML
<!-- HTML header for doxygen 1.8.13-->
|
|
<!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.13"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>openNURBS SDK Help: ON_Terminator 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="https://code.jquery.com/jquery-2.1.1.min.js"></script>
|
|
<script type="text/javascript" src="../../dynsections.js"></script>
|
|
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
|
|
<link href="../../customdoxygen.css" rel="stylesheet" type="text/css"/>
|
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
|
|
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
|
|
<!-- smartmenus -->
|
|
<link href="../../jquery.smartmenus.bootstrap.css" rel="stylesheet">
|
|
<script type="text/javascript" src="../../jquery.smartmenus.js"></script>
|
|
<script type="text/javascript" src="../../jquery.smartmenus.bootstrap.js"></script>
|
|
</head>
|
|
<body>
|
|
<!-- navbar -->
|
|
<div class="navbar navbar-default navbar-static top" role="navigation">
|
|
<div class="navbar-header">
|
|
<a class="navbar-brand">openNURBS SDK Help 6.0</a>
|
|
</div>
|
|
</div>
|
|
<div class="container">
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div class="page-content">
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.8.13 -->
|
|
<script type="text/javascript" src="../../menudata.js"></script>
|
|
<script type="text/javascript" src="../../menu.js"></script>
|
|
<script type="text/javascript">
|
|
$(function() {
|
|
initMenu('../../',false,false,'search.php','Search');
|
|
});
|
|
</script>
|
|
<div id="main-nav"></div>
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#pub-methods">Public Member Functions</a> |
|
|
<a href="#pub-static-methods">Static Public Member Functions</a> |
|
|
<a href="../../d7/d1d/class_o_n___terminator-members.html">List of all members</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">ON_Terminator Class Reference</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p><code>#include <<a class="el" href="../../d1/dbf/opennurbs__terminator_8h_source.html">opennurbs_terminator.h</a>></code></p>
|
|
<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:af747120bc6042550e073aaeaa62c792f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/da9/class_o_n___terminator.html#af747120bc6042550e073aaeaa62c792f">ON_Terminator</a> ()</td></tr>
|
|
<tr class="separator:af747120bc6042550e073aaeaa62c792f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aa5c393cf03f61f81c7425032d08a83e2"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/da9/class_o_n___terminator.html#aa5c393cf03f61f81c7425032d08a83e2">~ON_Terminator</a> ()</td></tr>
|
|
<tr class="separator:aa5c393cf03f61f81c7425032d08a83e2"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a4e05e2d0600c001d828c10de0991d22c"><td class="memItemLeft" align="right" valign="top">ON__UINT_PTR </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/da9/class_o_n___terminator.html#a4e05e2d0600c001d828c10de0991d22c">CallbackContext</a> () const</td></tr>
|
|
<tr class="separator:a4e05e2d0600c001d828c10de0991d22c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a25fbf15125ebdcf385ad6b5b7440f584"><td class="memItemLeft" align="right" valign="top">ON__UINT_PTR </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/da9/class_o_n___terminator.html#a25fbf15125ebdcf385ad6b5b7440f584">CallbackFunction</a> () const</td></tr>
|
|
<tr class="separator:a25fbf15125ebdcf385ad6b5b7440f584"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a665a583aeb9c5f152e48d2e6aef533e5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/da9/class_o_n___terminator.html#a665a583aeb9c5f152e48d2e6aef533e5">RequestTermination</a> ()</td></tr>
|
|
<tr class="separator:a665a583aeb9c5f152e48d2e6aef533e5"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab2070e70db7ccc68a3af8769472c41a7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/da9/class_o_n___terminator.html#ab2070e70db7ccc68a3af8769472c41a7">SetTerminationQueryCallbackFunction</a> (bool(*callback_function)(ON__UINT_PTR context), ON__UINT_PTR callback_context)</td></tr>
|
|
<tr class="separator:ab2070e70db7ccc68a3af8769472c41a7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab0d4beb109848233be52494fc5804cd3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/da9/class_o_n___terminator.html#ab0d4beb109848233be52494fc5804cd3">SetThreadId</a> (ON__UINT_PTR thread_id)</td></tr>
|
|
<tr class="separator:ab0d4beb109848233be52494fc5804cd3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ae746dfbc4b0ad60ab85bab3f1c975d5f"><td class="memItemLeft" align="right" valign="top">ON__UINT_PTR </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/da9/class_o_n___terminator.html#ae746dfbc4b0ad60ab85bab3f1c975d5f">ThreadId</a> () const</td></tr>
|
|
<tr class="separator:ae746dfbc4b0ad60ab85bab3f1c975d5f"><td class="memSeparator" colspan="2"> </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:a0a279621a45a5b3b5a1b4baa076e2a08"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/da9/class_o_n___terminator.html#a0a279621a45a5b3b5a1b4baa076e2a08">RequestTermination</a> (<a class="el" href="../../d9/da9/class_o_n___terminator.html">ON_Terminator</a> *terminator)</td></tr>
|
|
<tr class="separator:a0a279621a45a5b3b5a1b4baa076e2a08"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ae8da087534f4a36db658a09343375554"><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/da9/class_o_n___terminator.html#ae8da087534f4a36db658a09343375554">TerminationRequested</a> (<a class="el" href="../../d9/da9/class_o_n___terminator.html">ON_Terminator</a> *terminator)</td></tr>
|
|
<tr class="separator:ae8da087534f4a36db658a09343375554"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ad2ad4ca8f0f6c0fe5e3f67f782a67dce"><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/da9/class_o_n___terminator.html#ad2ad4ca8f0f6c0fe5e3f67f782a67dce">TerminationRequestedExpert</a> (<a class="el" href="../../d9/da9/class_o_n___terminator.html">ON_Terminator</a> *terminator, ON__UINT64 callback_delta)</td></tr>
|
|
<tr class="separator:ad2ad4ca8f0f6c0fe5e3f67f782a67dce"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<div class="textblock"><dl class="section rcs"><dt>NoKeywords</dt><dd></dd></dl>
|
|
<p>/ / Copyright (c) 1993-2013 Robert McNeel & Associates. All rights reserved. / OpenNURBS, Rhinoceros, and Rhino3D are registered trademarks of Robert / McNeel & Associates. / / THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. / ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF / MERCHANTABILITY ARE HEREBY DISCLAIMED. / / For complete openNURBS copyright information see <a href="http://www.opennurbs.org">http://www.opennurbs.org</a>. / ////////////////////////////////////////////////////////////// </p>
|
|
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
|
<a id="af747120bc6042550e073aaeaa62c792f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#af747120bc6042550e073aaeaa62c792f">◆ </a></span>ON_Terminator()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">ON_Terminator::ON_Terminator </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aa5c393cf03f61f81c7425032d08a83e2"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aa5c393cf03f61f81c7425032d08a83e2">◆ </a></span>~ON_Terminator()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">ON_Terminator::~ON_Terminator </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Member Function Documentation</h2>
|
|
<a id="a4e05e2d0600c001d828c10de0991d22c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a4e05e2d0600c001d828c10de0991d22c">◆ </a></span>CallbackContext()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">ON__UINT_PTR ON_Terminator::CallbackContext </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a25fbf15125ebdcf385ad6b5b7440f584"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a25fbf15125ebdcf385ad6b5b7440f584">◆ </a></span>CallbackFunction()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">ON__UINT_PTR ON_Terminator::CallbackFunction </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a665a583aeb9c5f152e48d2e6aef533e5"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a665a583aeb9c5f152e48d2e6aef533e5">◆ </a></span>RequestTermination() <span class="overload">[1/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void ON_Terminator::RequestTermination </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Description: Sets m_bTerminationRequested = true. All future calls to TerminationRequested(this) will return true. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a0a279621a45a5b3b5a1b4baa076e2a08"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a0a279621a45a5b3b5a1b4baa076e2a08">◆ </a></span>RequestTermination() <span class="overload">[2/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static void ON_Terminator::RequestTermination </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="../../d9/da9/class_o_n___terminator.html">ON_Terminator</a> * </td>
|
|
<td class="paramname"><em>terminator</em></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>Description: If terminator is not nullptr, sets terminator->m_bTerminationRequested = true. If terminator is not nullptr, all future calls to TerminationRequested(terminator) will return true. Parameters: terminator - [in] (can be nullptr) Remarks: This is convenience function and is identical to the code</p>
|
|
<p>if (nullptr != terminator) terminator-><a class="el" href="../../d9/da9/class_o_n___terminator.html#a665a583aeb9c5f152e48d2e6aef533e5">RequestTermination()</a>; </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ab2070e70db7ccc68a3af8769472c41a7"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab2070e70db7ccc68a3af8769472c41a7">◆ </a></span>SetTerminationQueryCallbackFunction()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void ON_Terminator::SetTerminationQueryCallbackFunction </td>
|
|
<td>(</td>
|
|
<td class="paramtype">bool(*)(ON__UINT_PTR context) </td>
|
|
<td class="paramname"><em>callback_function</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">ON__UINT_PTR </td>
|
|
<td class="paramname"><em>callback_context</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Description: Set the function that is called when a calculation wants to determine if the calculation should stop or continue. Parameters: callback_function - [in] The function that is called when a calculation wants to determine if the calculation should stop or continue. If this callback function returns true, the calculation will terminate as soon as possible. If this callback function returns false, the calculation will continue. The calculation thread calls in this callback function. The callback function should do something that is fast and simple. Parameters passed to the callback function: context - [in] the value of callback_context. Example: bool bStopCalculation = false;</p>
|
|
<p>bool StopCalculation( ON__UINT_PTR context ) { if ( 0 != context ) { const bool* p = (const bool*)context; if ( *p ) return true; ///< terminate calculation as soon as possible } return false; ///< continue calculation }</p>
|
|
<p>...</p>
|
|
<p><a class="el" href="../../d9/da9/class_o_n___terminator.html">ON_Terminator</a> terminator; terminator.SetTerminationQueryCallbackFunction(StopCalculation,(ON__UINT_PTR)(&bStopCalculation)); ... Pass &terminator to a calculation and then set bStopCalculation = true to terminate it. The calculation will generally be running in another thread, but can be in the same thread if it is structured to pump windows messages or something similar. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ab0d4beb109848233be52494fc5804cd3"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab0d4beb109848233be52494fc5804cd3">◆ </a></span>SetThreadId()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void ON_Terminator::SetThreadId </td>
|
|
<td>(</td>
|
|
<td class="paramtype">ON__UINT_PTR </td>
|
|
<td class="paramname"><em>thread_id</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ae8da087534f4a36db658a09343375554"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ae8da087534f4a36db658a09343375554">◆ </a></span>TerminationRequested()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static bool ON_Terminator::TerminationRequested </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="../../d9/da9/class_o_n___terminator.html">ON_Terminator</a> * </td>
|
|
<td class="paramname"><em>terminator</em></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>Description: A calculation calls ON_Terminator::TerminationRequested(terminator) to determine if it should continue or quit. Parameters: terminator - [in] A pointer to an <a class="el" href="../../d9/da9/class_o_n___terminator.html">ON_Terminator</a> or null pointer. Returns: True if the calculation should terminate as soon as possible. False if the calculation should continue. Example: void MyLongCalculation( ..., ON_Terminator* terminator, ...) { for ( i = 0; i < count; i++ ) { if ( ON_Terminator::TerminationRequested(terminator) ) break; ... } } </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ad2ad4ca8f0f6c0fe5e3f67f782a67dce"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ad2ad4ca8f0f6c0fe5e3f67f782a67dce">◆ </a></span>TerminationRequestedExpert()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static bool ON_Terminator::TerminationRequestedExpert </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="../../d9/da9/class_o_n___terminator.html">ON_Terminator</a> * </td>
|
|
<td class="paramname"><em>terminator</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">ON__UINT64 </td>
|
|
<td class="paramname"><em>callback_delta</em> </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>Description: An expert user function to determine if a calculation should continue. Parameters: terminator - [in] A pointer to an <a class="el" href="../../d9/da9/class_o_n___terminator.html">ON_Terminator</a> or null pointer. callback_delta - [in] Minimum amount of time to delay between calls to the registered callback function in clock() time units. 0 will omit making any call to the registered function. ON_Terminator::TerminationRequested( terminator ) uses a value of callback_delta = CLOCKS_PER_SEC/10 meaning a maximum of 10 callbacks per second. Returns: True if the calculation should terminate as soon as possible. False if the calculation should continue. Remarks: In general, call the ON_Terminator::TerminationRequested( terminator ). </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ae746dfbc4b0ad60ab85bab3f1c975d5f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ae746dfbc4b0ad60ab85bab3f1c975d5f">◆ </a></span>ThreadId()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">ON__UINT_PTR ON_Terminator::ThreadId </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
</div><!-- contents -->
|
|
<!-- HTML footer for doxygen 1.8.13-->
|
|
<!-- start footer part -->
|
|
</div> <!-- page-content -->
|
|
</div> <!-- container -->
|
|
<hr class="footer"/><address class="footer"><small>
|
|
Generated on Wed Jan 31 2018 14:45:42 for openNURBS SDK Help by <a href="http://www.doxygen.org/index.html">
|
|
<!-- <img class="footer" src="../../doxygen.png" alt="doxygen"/> -->
|
|
Doxygen
|
|
</a> 1.8.13
|
|
</small></address>
|
|
<script type="text/javascript" src="../../doxy-boot.js"></script>
|
|
</body>
|
|
</html>
|