Init
This commit is contained in:
@ -0,0 +1,15 @@
|
||||
var class_data_structures_1_1_single_producer_consumer =
|
||||
[
|
||||
[ "SingleProducerConsumer", "d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#a8578428cea9d8a665dc56dcbde1c6d54", null ],
|
||||
[ "~SingleProducerConsumer", "d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#a5d2dc9fd783c1c162555631f559cdf41", null ],
|
||||
[ "CancelReadLock", "d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#aa08c579304d9a91f96a4e285324864eb", null ],
|
||||
[ "CancelWriteLock", "d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#adde3995822744b048b9e1df7a8bb02ff", null ],
|
||||
[ "CheckReadUnlockOrder", "d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#ab2d92e6bb0d68b8a1974cfd9eac90ed8", null ],
|
||||
[ "Clear", "d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#a78853698d03871f26074d1b13a2772a8", null ],
|
||||
[ "ReadIsLocked", "d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#ad96259b75b794e8451ec29a40018f19d", null ],
|
||||
[ "ReadLock", "d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#a114026663fff4b0b5dac65f7b6b742c8", null ],
|
||||
[ "ReadUnlock", "d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#ab0440d6f877601c03b75deb1edbc94f6", null ],
|
||||
[ "Size", "d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#a4109a63f86171ccd3461082108f6febf", null ],
|
||||
[ "WriteLock", "d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#a875f6c2177c1ab29106472162b75c038", null ],
|
||||
[ "WriteUnlock", "d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#a2c5554a0297476b8f69e39b2721e1e23", null ]
|
||||
];
|
||||
@ -0,0 +1,464 @@
|
||||
<!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"/>
|
||||
<title>SLikeNet: DataStructures::SingleProducerConsumer< SingleProducerConsumerType > Class Template 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="../../navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="../../resize.js"></script>
|
||||
<script type="text/javascript" src="../../navtree.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(initResizable);
|
||||
</script>
|
||||
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="../../search/search.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() { searchBox.OnSelectItem(0); });
|
||||
</script>
|
||||
<link href="../../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 style="padding-left: 0.5em;">
|
||||
<div id="projectname">SLikeNet
|
||||
 <span id="projectnumber">0.1.3</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.8.2 -->
|
||||
<script type="text/javascript">
|
||||
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
|
||||
</script>
|
||||
<div id="navrow1" class="tabs">
|
||||
<ul class="tablist">
|
||||
<li><a href="../../index.xhtml"><span>Main Page</span></a></li>
|
||||
<li><a href="../../pages.xhtml"><span>Related Pages</span></a></li>
|
||||
<li><a href="../../modules.xhtml"><span>Modules</span></a></li>
|
||||
<li><a href="../../namespaces.xhtml"><span>Namespaces</span></a></li>
|
||||
<li class="current"><a href="../../annotated.xhtml"><span>Classes</span></a></li>
|
||||
<li><a href="../../files.xhtml"><span>Files</span></a></li>
|
||||
<li>
|
||||
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||
<span class="left">
|
||||
<img id="MSearchSelect" src="../../search/mag_sel.png"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
alt=""/>
|
||||
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||
</span><span class="right">
|
||||
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="../../search/close.png" alt=""/></a>
|
||||
</span>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="navrow2" class="tabs2">
|
||||
<ul class="tablist">
|
||||
<li><a href="../../annotated.xhtml"><span>Class List</span></a></li>
|
||||
<li><a href="../../classes.xhtml"><span>Class Index</span></a></li>
|
||||
<li><a href="../../inherits.xhtml"><span>Class Hierarchy</span></a></li>
|
||||
<li><a href="../../functions.xhtml"><span>Class Members</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){initNavTree('d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml','../../');});
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></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 class="header">
|
||||
<div class="summary">
|
||||
<a href="#nested-classes">Classes</a> |
|
||||
<a href="#pub-methods">Public Member Functions</a> |
|
||||
<a href="../../d2/def/class_data_structures_1_1_single_producer_consumer-members.xhtml">List of all members</a> </div>
|
||||
<div class="headertitle">
|
||||
<div class="title">DataStructures::SingleProducerConsumer< SingleProducerConsumerType > Class Template Reference</div> </div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>A single producer consumer implementation without critical sections.
|
||||
<a href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#details">More...</a></p>
|
||||
|
||||
<p><code>#include <<a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml">slikenet/SingleProducerConsumer.h</a>></code></p>
|
||||
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
|
||||
<img id="dynsection-0-trigger" src="../../closed.png" alt="+"/> Inheritance diagram for DataStructures::SingleProducerConsumer< SingleProducerConsumerType >:</div>
|
||||
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
|
||||
</div>
|
||||
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
|
||||
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d5/dc3/class_data_structures_1_1_single_producer_consumer__inherit__graph.svg" width="251" height="595"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
||||
</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:a8578428cea9d8a665dc56dcbde1c6d54"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#a8578428cea9d8a665dc56dcbde1c6d54">SingleProducerConsumer</a> ()</td></tr>
|
||||
<tr class="separator:a8578428cea9d8a665dc56dcbde1c6d54"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a5d2dc9fd783c1c162555631f559cdf41"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#a5d2dc9fd783c1c162555631f559cdf41">~SingleProducerConsumer</a> ()</td></tr>
|
||||
<tr class="separator:a5d2dc9fd783c1c162555631f559cdf41"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a875f6c2177c1ab29106472162b75c038"><td class="memItemLeft" align="right" valign="top">SingleProducerConsumerType * </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#a875f6c2177c1ab29106472162b75c038">WriteLock</a> (void)</td></tr>
|
||||
<tr class="separator:a875f6c2177c1ab29106472162b75c038"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:adde3995822744b048b9e1df7a8bb02ff"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#adde3995822744b048b9e1df7a8bb02ff">CancelWriteLock</a> (SingleProducerConsumerType *cancelToLocation)</td></tr>
|
||||
<tr class="separator:adde3995822744b048b9e1df7a8bb02ff"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a2c5554a0297476b8f69e39b2721e1e23"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#a2c5554a0297476b8f69e39b2721e1e23">WriteUnlock</a> (void)</td></tr>
|
||||
<tr class="memdesc:a2c5554a0297476b8f69e39b2721e1e23"><td class="mdescLeft"> </td><td class="mdescRight">Call when you are done writing to a block of memory returned by <a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#a875f6c2177c1ab29106472162b75c038">WriteLock()</a> <a href="#a2c5554a0297476b8f69e39b2721e1e23"></a><br/></td></tr>
|
||||
<tr class="separator:a2c5554a0297476b8f69e39b2721e1e23"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a114026663fff4b0b5dac65f7b6b742c8"><td class="memItemLeft" align="right" valign="top">SingleProducerConsumerType * </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#a114026663fff4b0b5dac65f7b6b742c8">ReadLock</a> (void)</td></tr>
|
||||
<tr class="separator:a114026663fff4b0b5dac65f7b6b742c8"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:aa08c579304d9a91f96a4e285324864eb"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#aa08c579304d9a91f96a4e285324864eb">CancelReadLock</a> (SingleProducerConsumerType *cancelToLocation)</td></tr>
|
||||
<tr class="memdesc:aa08c579304d9a91f96a4e285324864eb"><td class="mdescLeft"> </td><td class="mdescRight">param[in] Which <a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#a114026663fff4b0b5dac65f7b6b742c8">ReadLock()</a> to cancel. <a href="#aa08c579304d9a91f96a4e285324864eb"></a><br/></td></tr>
|
||||
<tr class="separator:aa08c579304d9a91f96a4e285324864eb"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab0440d6f877601c03b75deb1edbc94f6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#ab0440d6f877601c03b75deb1edbc94f6">ReadUnlock</a> (void)</td></tr>
|
||||
<tr class="separator:ab0440d6f877601c03b75deb1edbc94f6"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a78853698d03871f26074d1b13a2772a8"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#a78853698d03871f26074d1b13a2772a8">Clear</a> (void)</td></tr>
|
||||
<tr class="memdesc:a78853698d03871f26074d1b13a2772a8"><td class="mdescLeft"> </td><td class="mdescRight">Clear is not thread-safe and none of the lock or unlock functions should be called while it is running. <a href="#a78853698d03871f26074d1b13a2772a8"></a><br/></td></tr>
|
||||
<tr class="separator:a78853698d03871f26074d1b13a2772a8"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a4109a63f86171ccd3461082108f6febf"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#a4109a63f86171ccd3461082108f6febf">Size</a> (void) const </td></tr>
|
||||
<tr class="separator:a4109a63f86171ccd3461082108f6febf"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ab2d92e6bb0d68b8a1974cfd9eac90ed8"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#ab2d92e6bb0d68b8a1974cfd9eac90ed8">CheckReadUnlockOrder</a> (const SingleProducerConsumerType *data) const </td></tr>
|
||||
<tr class="separator:ab2d92e6bb0d68b8a1974cfd9eac90ed8"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ad96259b75b794e8451ec29a40018f19d"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#ad96259b75b794e8451ec29a40018f19d">ReadIsLocked</a> (void) const </td></tr>
|
||||
<tr class="separator:ad96259b75b794e8451ec29a40018f19d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><h3>template<class SingleProducerConsumerType><br/>
|
||||
class DataStructures::SingleProducerConsumer< SingleProducerConsumerType ></h3>
|
||||
|
||||
<p>A single producer consumer implementation without critical sections. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml#l00038">38</a> of file <a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml">SingleProducerConsumer.h</a>.</p>
|
||||
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
||||
<a class="anchor" id="a8578428cea9d8a665dc56dcbde1c6d54"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class SingleProducerConsumerType > </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml">DataStructures::SingleProducerConsumer</a>< SingleProducerConsumerType >::<a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml">SingleProducerConsumer</a> </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Definition at line <a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml#l00105">105</a> of file <a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml">SingleProducerConsumer.h</a>.</p>
|
||||
|
||||
<p>References <a class="el" href="../../d8/db0/defines_8h_source.xhtml#l00047">_FILE_AND_LINE_</a>, <a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml#l00027">MINIMUM_LIST_SIZE</a>, and <a class="el" href="../../d8/db0/defines_8h_source.xhtml#l00120">RakAssert</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a5d2dc9fd783c1c162555631f559cdf41"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class SingleProducerConsumerType > </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname"><a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml">DataStructures::SingleProducerConsumer</a>< SingleProducerConsumerType >::~<a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml">SingleProducerConsumer</a> </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Definition at line <a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml#l00128">128</a> of file <a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml">SingleProducerConsumer.h</a>.</p>
|
||||
|
||||
<p>References <a class="el" href="../../d8/db0/defines_8h_source.xhtml#l00047">_FILE_AND_LINE_</a>, and <a class="el" href="../../dd/dc5/memoryoverride_8h_source.xhtml#l00182">SLNet::OP_DELETE()</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2 class="groupheader">Member Function Documentation</h2>
|
||||
<a class="anchor" id="aa08c579304d9a91f96a4e285324864eb"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class SingleProducerConsumerType> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void <a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml">DataStructures::SingleProducerConsumer</a>< SingleProducerConsumerType >::CancelReadLock </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">SingleProducerConsumerType * </td>
|
||||
<td class="paramname"><em>cancelToLocation</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>param[in] Which <a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#a114026663fff4b0b5dac65f7b6b742c8">ReadLock()</a> to cancel. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml#l00198">198</a> of file <a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml">SingleProducerConsumer.h</a>.</p>
|
||||
|
||||
<p>References <a class="el" href="../../d8/db0/defines_8h_source.xhtml#l00120">RakAssert</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="adde3995822744b048b9e1df7a8bb02ff"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class SingleProducerConsumerType> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void <a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml">DataStructures::SingleProducerConsumer</a>< SingleProducerConsumerType >::CancelWriteLock </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">SingleProducerConsumerType * </td>
|
||||
<td class="paramname"><em>cancelToLocation</em></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Call if you don't want to write to a block of data from <a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#a875f6c2177c1ab29106472162b75c038">WriteLock()</a> after all. Cancelling locks cancels all locks back up to the data passed. So if you lock twice and cancel using the first lock, the second lock is ignored </p>
|
||||
<dl class="params"><dt>Parameters</dt><dd>
|
||||
<table class="params">
|
||||
<tr><td class="paramdir">[in]</td><td class="paramname">cancelToLocation</td><td>Which <a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#a875f6c2177c1ab29106472162b75c038">WriteLock()</a> to cancel. </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml#l00161">161</a> of file <a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml">SingleProducerConsumer.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ab2d92e6bb0d68b8a1974cfd9eac90ed8"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class SingleProducerConsumerType> </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">bool <a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml">DataStructures::SingleProducerConsumer</a>< SingleProducerConsumerType >::CheckReadUnlockOrder </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">const SingleProducerConsumerType * </td>
|
||||
<td class="paramname"><em>data</em></td><td>)</td>
|
||||
<td> const</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Make sure that the pointer we done reading for the call to ReadUnlock is the right pointer. param[in] A previous pointer returned by <a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#a114026663fff4b0b5dac65f7b6b742c8">ReadLock()</a> </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml#l00259">259</a> of file <a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml">SingleProducerConsumer.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a78853698d03871f26074d1b13a2772a8"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class SingleProducerConsumerType > </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void <a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml">DataStructures::SingleProducerConsumer</a>< SingleProducerConsumerType >::Clear </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">void </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Clear is not thread-safe and none of the lock or unlock functions should be called while it is running. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml#l00221">221</a> of file <a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml">SingleProducerConsumer.h</a>.</p>
|
||||
|
||||
<p>References <a class="el" href="../../d8/db0/defines_8h_source.xhtml#l00047">_FILE_AND_LINE_</a>, <a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml#l00027">MINIMUM_LIST_SIZE</a>, <a class="el" href="../../dd/dc5/memoryoverride_8h_source.xhtml#l00182">SLNet::OP_DELETE()</a>, and <a class="el" href="../../d8/db0/defines_8h_source.xhtml#l00120">RakAssert</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ad96259b75b794e8451ec29a40018f19d"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class SingleProducerConsumerType > </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">bool <a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml">DataStructures::SingleProducerConsumer</a>< SingleProducerConsumerType >::ReadIsLocked </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">void </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td> const</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Returns if ReadUnlock was called before ReadLock </p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>If the read is locked </dd></dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml#l00266">266</a> of file <a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml">SingleProducerConsumer.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a114026663fff4b0b5dac65f7b6b742c8"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class SingleProducerConsumerType > </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">SingleProducerConsumerType * <a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml">DataStructures::SingleProducerConsumer</a>< SingleProducerConsumerType >::ReadLock </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">void </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>ReadLock must be immediately followed by ReadUnlock. These two functions must be called in the same thread. </p>
|
||||
<dl class="retval"><dt>Return values</dt><dd>
|
||||
<table class="retval">
|
||||
<tr><td class="paramname">0</td><td>No data is availble to read </td></tr>
|
||||
<tr><td class="paramname">Non-zero</td><td>The data previously written to, in another thread, by WriteLock followed by WriteUnlock. </td></tr>
|
||||
</table>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml#l00183">183</a> of file <a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml">SingleProducerConsumer.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="ab0440d6f877601c03b75deb1edbc94f6"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class SingleProducerConsumerType > </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void <a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml">DataStructures::SingleProducerConsumer</a>< SingleProducerConsumerType >::ReadUnlock </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">void </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>Signals that we are done reading the the data from the least recent call of ReadLock. At this point that pointer is no longer valid, and should no longer be read. </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml#l00207">207</a> of file <a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml">SingleProducerConsumer.h</a>.</p>
|
||||
|
||||
<p>References <a class="el" href="../../d8/db0/defines_8h_source.xhtml#l00120">RakAssert</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a4109a63f86171ccd3461082108f6febf"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class SingleProducerConsumerType > </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int <a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml">DataStructures::SingleProducerConsumer</a>< SingleProducerConsumerType >::Size </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">void </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td> const</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>This function will estimate how many elements are waiting to be read. It's threadsafe enough that the value returned is stable, but not threadsafe enough to give accurate results. </p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>An ESTIMATE of how many data elements are waiting to be read </dd></dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml#l00253">253</a> of file <a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml">SingleProducerConsumer.h</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a875f6c2177c1ab29106472162b75c038"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class SingleProducerConsumerType > </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">SingleProducerConsumerType * <a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml">DataStructures::SingleProducerConsumer</a>< SingleProducerConsumerType >::WriteLock </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">void </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
<p>WriteLock must be immediately followed by WriteUnlock. These two functions must be called in the same thread. </p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>A pointer to a block of data you can write to. </dd></dl>
|
||||
|
||||
<p>Definition at line <a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml#l00142">142</a> of file <a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml">SingleProducerConsumer.h</a>.</p>
|
||||
|
||||
<p>References <a class="el" href="../../d8/db0/defines_8h_source.xhtml#l00047">_FILE_AND_LINE_</a>, and <a class="el" href="../../d8/db0/defines_8h_source.xhtml#l00120">RakAssert</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<a class="anchor" id="a2c5554a0297476b8f69e39b2721e1e23"></a>
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<div class="memtemplate">
|
||||
template<class SingleProducerConsumerType > </div>
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void <a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml">DataStructures::SingleProducerConsumer</a>< SingleProducerConsumerType >::WriteUnlock </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">void </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Call when you are done writing to a block of memory returned by <a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml#a875f6c2177c1ab29106472162b75c038">WriteLock()</a> </p>
|
||||
|
||||
<p>Definition at line <a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml#l00167">167</a> of file <a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml">SingleProducerConsumer.h</a>.</p>
|
||||
|
||||
<p>References <a class="el" href="../../d8/db0/defines_8h_source.xhtml#l00120">RakAssert</a>.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||
<li>Source/include/slikenet/<a class="el" href="../../d0/dcf/_single_producer_consumer_8h_source.xhtml">SingleProducerConsumer.h</a></li>
|
||||
</ul>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="../../da/d80/namespace_data_structures.xhtml">DataStructures</a></li><li class="navelem"><a class="el" href="../../d0/d72/class_data_structures_1_1_single_producer_consumer.xhtml">SingleProducerConsumer</a></li>
|
||||
<li class="footer">Generated on Wed Aug 14 2019 22:09:49 for SLikeNet by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.2 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user