This commit is contained in:
2025-11-24 14:19:51 +05:30
commit f5c1412b28
6734 changed files with 1527575 additions and 0 deletions

View File

@ -0,0 +1,16 @@
var _c_c_rak_net_sliding_window_8h =
[
[ "CCRakNetSlidingWindow", "dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml", "dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window" ],
[ "CC_DEBUG_PRINTF_1", "d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a93bb7ead128b82763226cbdf008ecc58", null ],
[ "CC_DEBUG_PRINTF_2", "d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#ac50dfa4707ffeeaac6b5f0491fd5c407", null ],
[ "CC_DEBUG_PRINTF_3", "d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a3b8207193b81292522c46250dfddb14d", null ],
[ "CC_DEBUG_PRINTF_4", "d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a9007a2f16510743621a0582c6bd68258", null ],
[ "CC_DEBUG_PRINTF_5", "d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a454e284b46b0694c0f62f694c99a9b24", null ],
[ "CC_TIME_TYPE_BYTES", "d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#aefac830b579dd77afb0c525fb51908c5", null ],
[ "UDP_HEADER_SIZE", "d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a8a0fae83e487dc04b3cd774b3d4ee637", null ],
[ "BytesPerMicrosecond", "d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a093707671afbde33de2a3aa1ceaf85c3", null ],
[ "BytesPerSecond", "d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#ab44c45c3b5a4662cb257e0f1ae87fcee", null ],
[ "CCTimeType", "d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#af68854e24d09ea8058bf8b27ce0f24e6", null ],
[ "DatagramSequenceNumberType", "d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#ae16c16e7f0604671c945b768e0532da7", null ],
[ "MicrosecondsPerByte", "d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a6d18b4d64da83b3c41feda046ca49da9", null ]
];

View File

@ -0,0 +1,453 @@
<!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: Source/include/slikenet/CCRakNetSlidingWindow.h File 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
&#160;<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&#160;Page</span></a></li>
<li><a href="../../pages.xhtml"><span>Related&#160;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><a href="../../annotated.xhtml"><span>Classes</span></a></li>
<li class="current"><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="../../files.xhtml"><span>File&#160;List</span></a></li>
<li><a href="../../globals.xhtml"><span>File&#160;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/dfb/_c_c_rak_net_sliding_window_8h.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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark">&#160;</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> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
<div class="title">CCRakNetSlidingWindow.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="../../d8/db0/defines_8h_source.xhtml">defines.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="../../df/df2/_native_types_8h_source.xhtml">NativeTypes.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="../../de/df7/time_8h_source.xhtml">time.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="../../d9/d49/types_8h_source.xhtml">types.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="../../dc/d8d/_d_s___queue_8h_source.xhtml">DS_Queue.h</a>&quot;</code><br/>
</div>
<p><a href="../../d0/dfb/_c_c_rak_net_sliding_window_8h_source.xhtml">Go to the source code of this file.</a></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="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml">SLNet::CCRakNetSlidingWindow</a></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="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:dd/d30/namespace_s_l_net"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d30/namespace_s_l_net.xhtml">SLNet</a></td></tr>
<tr class="memdesc:dd/d30/namespace_s_l_net"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simple class to send changes between directories. In essence, a simple autopatcher that can be used for transmitting levels, skins, etc. <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="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a8a0fae83e487dc04b3cd774b3d4ee637"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a8a0fae83e487dc04b3cd774b3d4ee637">UDP_HEADER_SIZE</a>&#160;&#160;&#160;28</td></tr>
<tr class="memdesc:a8a0fae83e487dc04b3cd774b3d4ee637"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sizeof an UDP header in byte. <a href="#a8a0fae83e487dc04b3cd774b3d4ee637"></a><br/></td></tr>
<tr class="separator:a8a0fae83e487dc04b3cd774b3d4ee637"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93bb7ead128b82763226cbdf008ecc58"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a93bb7ead128b82763226cbdf008ecc58">CC_DEBUG_PRINTF_1</a>(x)</td></tr>
<tr class="separator:a93bb7ead128b82763226cbdf008ecc58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac50dfa4707ffeeaac6b5f0491fd5c407"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#ac50dfa4707ffeeaac6b5f0491fd5c407">CC_DEBUG_PRINTF_2</a>(x, y)</td></tr>
<tr class="separator:ac50dfa4707ffeeaac6b5f0491fd5c407"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b8207193b81292522c46250dfddb14d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a3b8207193b81292522c46250dfddb14d">CC_DEBUG_PRINTF_3</a>(x, y, z)</td></tr>
<tr class="separator:a3b8207193b81292522c46250dfddb14d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9007a2f16510743621a0582c6bd68258"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a9007a2f16510743621a0582c6bd68258">CC_DEBUG_PRINTF_4</a>(x, y, z, a)</td></tr>
<tr class="separator:a9007a2f16510743621a0582c6bd68258"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a454e284b46b0694c0f62f694c99a9b24"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a454e284b46b0694c0f62f694c99a9b24">CC_DEBUG_PRINTF_5</a>(x, y, z, a, b)</td></tr>
<tr class="separator:a454e284b46b0694c0f62f694c99a9b24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefac830b579dd77afb0c525fb51908c5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#aefac830b579dd77afb0c525fb51908c5">CC_TIME_TYPE_BYTES</a>&#160;&#160;&#160;8</td></tr>
<tr class="memdesc:aefac830b579dd77afb0c525fb51908c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to 4 if you are using the iPod Touch TG. See <a href="http://www.jenkinssoftware.com/forum/index.php?topic=2717.0">http://www.jenkinssoftware.com/forum/index.php?topic=2717.0</a>. <a href="#aefac830b579dd77afb0c525fb51908c5"></a><br/></td></tr>
<tr class="separator:aefac830b579dd77afb0c525fb51908c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:af68854e24d09ea8058bf8b27ce0f24e6"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="../../dd/d30/namespace_s_l_net.xhtml#a3d01a3c6dcc3c11f0cc5359fe290edc7">SLNet::TimeUS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#af68854e24d09ea8058bf8b27ce0f24e6">CCTimeType</a></td></tr>
<tr class="separator:af68854e24d09ea8058bf8b27ce0f24e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae16c16e7f0604671c945b768e0532da7"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="../../d9/d6a/struct_s_l_net_1_1uint24__t.xhtml">SLNet::uint24_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#ae16c16e7f0604671c945b768e0532da7">DatagramSequenceNumberType</a></td></tr>
<tr class="separator:ae16c16e7f0604671c945b768e0532da7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a093707671afbde33de2a3aa1ceaf85c3"><td class="memItemLeft" align="right" valign="top">typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a093707671afbde33de2a3aa1ceaf85c3">BytesPerMicrosecond</a></td></tr>
<tr class="separator:a093707671afbde33de2a3aa1ceaf85c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab44c45c3b5a4662cb257e0f1ae87fcee"><td class="memItemLeft" align="right" valign="top">typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#ab44c45c3b5a4662cb257e0f1ae87fcee">BytesPerSecond</a></td></tr>
<tr class="separator:ab44c45c3b5a4662cb257e0f1ae87fcee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d18b4d64da83b3c41feda046ca49da9"><td class="memItemLeft" align="right" valign="top">typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a6d18b4d64da83b3c41feda046ca49da9">MicrosecondsPerByte</a></td></tr>
<tr class="separator:a6d18b4d64da83b3c41feda046ca49da9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a93bb7ead128b82763226cbdf008ecc58"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CC_DEBUG_PRINTF_1</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">x</td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h_source.xhtml#l00058">58</a> of file <a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h_source.xhtml">CCRakNetSlidingWindow.h</a>.</p>
</div>
</div>
<a class="anchor" id="ac50dfa4707ffeeaac6b5f0491fd5c407"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CC_DEBUG_PRINTF_2</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">x, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">y&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h_source.xhtml#l00059">59</a> of file <a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h_source.xhtml">CCRakNetSlidingWindow.h</a>.</p>
<p>Referenced by <a class="el" href="../../d9/d15/_reliability_layer_8cpp_source.xhtml#l01703">SLNet::ReliabilityLayer::Update()</a>.</p>
</div>
</div>
<a class="anchor" id="a3b8207193b81292522c46250dfddb14d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CC_DEBUG_PRINTF_3</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">x, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">y, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">z&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h_source.xhtml#l00060">60</a> of file <a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h_source.xhtml">CCRakNetSlidingWindow.h</a>.</p>
</div>
</div>
<a class="anchor" id="a9007a2f16510743621a0582c6bd68258"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CC_DEBUG_PRINTF_4</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">x, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">y, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">z, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">a&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h_source.xhtml#l00061">61</a> of file <a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h_source.xhtml">CCRakNetSlidingWindow.h</a>.</p>
</div>
</div>
<a class="anchor" id="a454e284b46b0694c0f62f694c99a9b24"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CC_DEBUG_PRINTF_5</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">x, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">y, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">z, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">a, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">b&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h_source.xhtml#l00062">62</a> of file <a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h_source.xhtml">CCRakNetSlidingWindow.h</a>.</p>
</div>
</div>
<a class="anchor" id="aefac830b579dd77afb0c525fb51908c5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CC_TIME_TYPE_BYTES&#160;&#160;&#160;8</td>
</tr>
</table>
</div><div class="memdoc">
<p>Set to 4 if you are using the iPod Touch TG. See <a href="http://www.jenkinssoftware.com/forum/index.php?topic=2717.0">http://www.jenkinssoftware.com/forum/index.php?topic=2717.0</a>. </p>
<p>Definition at line <a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h_source.xhtml#l00070">70</a> of file <a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h_source.xhtml">CCRakNetSlidingWindow.h</a>.</p>
<p>Referenced by <a class="el" href="../../d9/d15/_reliability_layer_8cpp_source.xhtml#l01703">SLNet::ReliabilityLayer::Update()</a>.</p>
</div>
</div>
<a class="anchor" id="a8a0fae83e487dc04b3cd774b3d4ee637"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define UDP_HEADER_SIZE&#160;&#160;&#160;28</td>
</tr>
</table>
</div><div class="memdoc">
<p>Sizeof an UDP header in byte. </p>
<p>Definition at line <a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h_source.xhtml#l00056">56</a> of file <a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h_source.xhtml">CCRakNetSlidingWindow.h</a>.</p>
<p>Referenced by <a class="el" href="../../d5/d55/_rak_peer_8cpp_source.xhtml#l04524">SLNet::ProcessOfflineNetworkPacket()</a>, <a class="el" href="../../d9/d15/_reliability_layer_8cpp_source.xhtml#l00344">SLNet::ReliabilityLayer::Reset()</a>, <a class="el" href="../../d5/d55/_rak_peer_8cpp_source.xhtml#l05540">SLNet::RakPeer::RunUpdateCycle()</a>, and <a class="el" href="../../d9/d15/_reliability_layer_8cpp_source.xhtml#l01703">SLNet::ReliabilityLayer::Update()</a>.</p>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="a093707671afbde33de2a3aa1ceaf85c3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef double <a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a093707671afbde33de2a3aa1ceaf85c3">BytesPerMicrosecond</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h_source.xhtml#l00079">79</a> of file <a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h_source.xhtml">CCRakNetSlidingWindow.h</a>.</p>
</div>
</div>
<a class="anchor" id="ab44c45c3b5a4662cb257e0f1ae87fcee"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef double <a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#ab44c45c3b5a4662cb257e0f1ae87fcee">BytesPerSecond</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h_source.xhtml#l00080">80</a> of file <a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h_source.xhtml">CCRakNetSlidingWindow.h</a>.</p>
</div>
</div>
<a class="anchor" id="af68854e24d09ea8058bf8b27ce0f24e6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="../../dd/d30/namespace_s_l_net.xhtml#a3d01a3c6dcc3c11f0cc5359fe290edc7">SLNet::TimeUS</a> <a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#af68854e24d09ea8058bf8b27ce0f24e6">CCTimeType</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h_source.xhtml#l00073">73</a> of file <a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h_source.xhtml">CCRakNetSlidingWindow.h</a>.</p>
</div>
</div>
<a class="anchor" id="ae16c16e7f0604671c945b768e0532da7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="../../d9/d6a/struct_s_l_net_1_1uint24__t.xhtml">SLNet::uint24_t</a> <a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#ae16c16e7f0604671c945b768e0532da7">DatagramSequenceNumberType</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h_source.xhtml#l00078">78</a> of file <a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h_source.xhtml">CCRakNetSlidingWindow.h</a>.</p>
</div>
</div>
<a class="anchor" id="a6d18b4d64da83b3c41feda046ca49da9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef double <a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a6d18b4d64da83b3c41feda046ca49da9">MicrosecondsPerByte</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h_source.xhtml#l00081">81</a> of file <a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h_source.xhtml">CCRakNetSlidingWindow.h</a>.</p>
</div>
</div>
</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="../../dir_74389ed8173ad57b461b9d623a1f3867.xhtml">Source</a></li><li class="navelem"><a class="el" href="../../dir_bbb90e3ef9167a594ae33323139a2595.xhtml">include</a></li><li class="navelem"><a class="el" href="../../dir_88467e66686deb9d3756fe4fc298e321.xhtml">slikenet</a></li><li class="navelem"><a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml">CCRakNetSlidingWindow.h</a></li>
<li class="footer">Generated on Wed Aug 14 2019 22:09:48 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>

View File

@ -0,0 +1,295 @@
<!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: Source/include/slikenet/CCRakNetSlidingWindow.h Source File</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
&#160;<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&#160;Page</span></a></li>
<li><a href="../../pages.xhtml"><span>Related&#160;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><a href="../../annotated.xhtml"><span>Classes</span></a></li>
<li class="current"><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="../../files.xhtml"><span>File&#160;List</span></a></li>
<li><a href="../../globals.xhtml"><span>File&#160;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/dfb/_c_c_rak_net_sliding_window_8h_source.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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark">&#160;</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="headertitle">
<div class="title">CCRakNetSlidingWindow.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Original work: Copyright (c) 2014, Oculus VR, Inc.</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * All rights reserved.</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * This source code is licensed under the BSD-style license found in the</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * RakNet License.txt file in the licenses directory of this source tree. An additional grant </span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * of patent rights can be found in the RakNet Patents.txt file in the same directory.</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * Modified work: Copyright (c) 2017, SLikeSoft UG (haftungsbeschränkt)</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * This source code was modified by SLikeSoft. Modifications are licensed under the MIT-style</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * license found in the license.txt file in the root directory of this source tree.</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">http://www.ssfnet.org/Exchange/tcp/tcpTutorialNotes.html</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">cwnd=max bytes allowed on wire at once</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">Start:</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">cwnd=mtu</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">ssthresh=unlimited</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">Slow start:</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">On ack cwnd*=2</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment">congestion avoidance:</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment">On ack during new period</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment">cwnd+=mtu*mtu/cwnd</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment">on loss or duplicate ack during period:</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment">sshtresh=cwnd/2</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment">cwnd=MTU</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">This reenters slow start</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">If cwnd &lt; ssthresh, then use slow start</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">else use congestion avoidance</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="../../d8/db0/defines_8h.xhtml">defines.h</a>&quot;</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#if USE_SLIDING_WINDOW_CONGESTION_CONTROL==1</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#ifndef __CONGESTION_CONTROL_SLIDING_WINDOW_H</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define __CONGESTION_CONTROL_SLIDING_WINDOW_H</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="../../df/df2/_native_types_8h.xhtml">NativeTypes.h</a>&quot;</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="../../de/df7/time_8h.xhtml">time.h</a>&quot;</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="../../d9/d49/types_8h.xhtml" title="Types used by RakNet, most of which involve user code.">types.h</a>&quot;</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="../../dc/d8d/_d_s___queue_8h.xhtml">DS_Queue.h</a>&quot;</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a8a0fae83e487dc04b3cd774b3d4ee637"> 56</a></span>&#160;<span class="preprocessor">#define UDP_HEADER_SIZE 28</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00058"></a><span class="lineno"><a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a93bb7ead128b82763226cbdf008ecc58"> 58</a></span>&#160;<span class="preprocessor">#define CC_DEBUG_PRINTF_1(x)</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#ac50dfa4707ffeeaac6b5f0491fd5c407"> 59</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CC_DEBUG_PRINTF_2(x,y)</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a3b8207193b81292522c46250dfddb14d"> 60</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CC_DEBUG_PRINTF_3(x,y,z)</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"><a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a9007a2f16510743621a0582c6bd68258"> 61</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CC_DEBUG_PRINTF_4(x,y,z,a)</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"><a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a454e284b46b0694c0f62f694c99a9b24"> 62</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CC_DEBUG_PRINTF_5(x,y,z,a,b)</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"></span><span class="comment">//#define CC_DEBUG_PRINTF_1(x) printf(x)</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment">//#define CC_DEBUG_PRINTF_2(x,y) printf(x,y)</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment">//#define CC_DEBUG_PRINTF_3(x,y,z) printf(x,y,z)</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment">//#define CC_DEBUG_PRINTF_4(x,y,z,a) printf(x,y,z,a)</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment">//#define CC_DEBUG_PRINTF_5(x,y,z,a,b) printf(x,y,z,a,b)</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
<div class="line"><a name="l00070"></a><span class="lineno"><a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#aefac830b579dd77afb0c525fb51908c5"> 70</a></span>&#160;<span class="preprocessor">#define CC_TIME_TYPE_BYTES 8</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#if CC_TIME_TYPE_BYTES==8</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"><a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#af68854e24d09ea8058bf8b27ce0f24e6"> 73</a></span>&#160;<span class="preprocessor"></span><span class="keyword">typedef</span> <a class="code" href="../../dd/d30/namespace_s_l_net.xhtml#a3d01a3c6dcc3c11f0cc5359fe290edc7">SLNet::TimeUS</a> <a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#af68854e24d09ea8058bf8b27ce0f24e6">CCTimeType</a>;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"></span><span class="keyword">typedef</span> <a class="code" href="../../dd/d30/namespace_s_l_net.xhtml#a26b4eb1be8467562f791e3c5af4a67ae">SLNet::TimeMS</a> <a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#af68854e24d09ea8058bf8b27ce0f24e6">CCTimeType</a>;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#ae16c16e7f0604671c945b768e0532da7"> 78</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="../../d9/d6a/struct_s_l_net_1_1uint24__t.xhtml">SLNet::uint24_t</a> <a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#ae16c16e7f0604671c945b768e0532da7">DatagramSequenceNumberType</a>;</div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a093707671afbde33de2a3aa1ceaf85c3"> 79</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a093707671afbde33de2a3aa1ceaf85c3">BytesPerMicrosecond</a>;</div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#ab44c45c3b5a4662cb257e0f1ae87fcee"> 80</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#ab44c45c3b5a4662cb257e0f1ae87fcee">BytesPerSecond</a>;</div>
<div class="line"><a name="l00081"></a><span class="lineno"><a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a6d18b4d64da83b3c41feda046ca49da9"> 81</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a6d18b4d64da83b3c41feda046ca49da9">MicrosecondsPerByte</a>;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="keyword">namespace </span>SLNet</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;{</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml"> 86</a></span>&#160;<span class="keyword">class </span><a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml">CCRakNetSlidingWindow</a></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;{</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; </div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a1121e95a320412448007afbcfb061fa2">CCRakNetSlidingWindow</a>();</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a5b04152942c61602b16b101e156d9d3a">~CCRakNetSlidingWindow</a>();</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordtype">void</span> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a65ead904b5610bcb7b9d5aedbe2ba092" title="Reset all variables to their initial states, for a new connection.">Init</a>(<a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#af68854e24d09ea8058bf8b27ce0f24e6">CCTimeType</a> curTime, <a class="code" href="../../df/df2/_native_types_8h.xhtml#a6eb1e68cc391dd753bc8ce896dbb8315">uint32_t</a> maxDatagramPayload);</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordtype">void</span> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#af9c5cf2adc3ec317f165d8f3efef9768" title="Update over time.">Update</a>(<a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#af68854e24d09ea8058bf8b27ce0f24e6">CCTimeType</a> curTime, <span class="keywordtype">bool</span> hasDataToSendOrResend);</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordtype">int</span> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a0a570e7f1363a07aa5fc02f47a8fb1af">GetRetransmissionBandwidth</a>(<a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#af68854e24d09ea8058bf8b27ce0f24e6">CCTimeType</a> curTime, <a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#af68854e24d09ea8058bf8b27ce0f24e6">CCTimeType</a> timeSinceLastTick, <a class="code" href="../../df/df2/_native_types_8h.xhtml#a6eb1e68cc391dd753bc8ce896dbb8315">uint32_t</a> unacknowledgedBytes, <span class="keywordtype">bool</span> isContinuousSend);</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordtype">int</span> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a0240d5c3ea1246a1f95073749dfbd287">GetTransmissionBandwidth</a>(<a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#af68854e24d09ea8058bf8b27ce0f24e6">CCTimeType</a> curTime, <a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#af68854e24d09ea8058bf8b27ce0f24e6">CCTimeType</a> timeSinceLastTick, <a class="code" href="../../df/df2/_native_types_8h.xhtml#a6eb1e68cc391dd753bc8ce896dbb8315">uint32_t</a> unacknowledgedBytes, <span class="keywordtype">bool</span> isContinuousSend);</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#ae0bf8d4ef21a7e4a8abf7f4e424e182c">ShouldSendACKs</a>(<a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#af68854e24d09ea8058bf8b27ce0f24e6">CCTimeType</a> curTime, <a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#af68854e24d09ea8058bf8b27ce0f24e6">CCTimeType</a> estimatedTimeToNextTick);</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="../../d9/d6a/struct_s_l_net_1_1uint24__t.xhtml">DatagramSequenceNumberType</a> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a0f67214ccf63488a0e725e438cba8413">GetAndIncrementNextDatagramSequenceNumber</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="../../d9/d6a/struct_s_l_net_1_1uint24__t.xhtml">DatagramSequenceNumberType</a> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a6e5f5dbabedba16b5d531ac5f579b4b1">GetNextDatagramSequenceNumber</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordtype">void</span> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a582e898a54d4dc5f946a511bcb724c78">OnSendBytes</a>(<a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#af68854e24d09ea8058bf8b27ce0f24e6">CCTimeType</a> curTime, <a class="code" href="../../df/df2/_native_types_8h.xhtml#a6eb1e68cc391dd753bc8ce896dbb8315">uint32_t</a> numBytes);</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordtype">void</span> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#afaf69c11fd208e0c549d13079b0d184f" title="Call this when you get a packet pair.">OnGotPacketPair</a>(<a class="code" href="../../d9/d6a/struct_s_l_net_1_1uint24__t.xhtml">DatagramSequenceNumberType</a> datagramSequenceNumber, <a class="code" href="../../df/df2/_native_types_8h.xhtml#a6eb1e68cc391dd753bc8ce896dbb8315">uint32_t</a> sizeInBytes, <a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#af68854e24d09ea8058bf8b27ce0f24e6">CCTimeType</a> curTime);</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a2bfdcc41ab28fe3af677501e64eca96d">OnGotPacket</a>(<a class="code" href="../../d9/d6a/struct_s_l_net_1_1uint24__t.xhtml">DatagramSequenceNumberType</a> datagramSequenceNumber, <span class="keywordtype">bool</span> isContinuousSend, <a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#af68854e24d09ea8058bf8b27ce0f24e6">CCTimeType</a> curTime, <a class="code" href="../../df/df2/_native_types_8h.xhtml#a6eb1e68cc391dd753bc8ce896dbb8315">uint32_t</a> sizeInBytes, <a class="code" href="../../df/df2/_native_types_8h.xhtml#a6eb1e68cc391dd753bc8ce896dbb8315">uint32_t</a> *skippedMessageCount);</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordtype">void</span> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#ac4b95cf1aac0b6da21f56406d91db0a9">OnResend</a>(<a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#af68854e24d09ea8058bf8b27ce0f24e6">CCTimeType</a> curTime, <a class="code" href="../../dd/d30/namespace_s_l_net.xhtml#a3d01a3c6dcc3c11f0cc5359fe290edc7">SLNet::TimeUS</a> nextActionTime);</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordtype">void</span> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a931b1481ae951cecf678ecb0a60e16ab">OnNAK</a>(<a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#af68854e24d09ea8058bf8b27ce0f24e6">CCTimeType</a> curTime, <a class="code" href="../../d9/d6a/struct_s_l_net_1_1uint24__t.xhtml">DatagramSequenceNumberType</a> nakSequenceNumber);</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordtype">void</span> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a09b01f8b5f964fc14846501bbdb825ac">OnAck</a>(<a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#af68854e24d09ea8058bf8b27ce0f24e6">CCTimeType</a> curTime, <a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#af68854e24d09ea8058bf8b27ce0f24e6">CCTimeType</a> rtt, <span class="keywordtype">bool</span> hasBAndAS, <a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a093707671afbde33de2a3aa1ceaf85c3">BytesPerMicrosecond</a> _B, <a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a093707671afbde33de2a3aa1ceaf85c3">BytesPerMicrosecond</a> _AS, <span class="keywordtype">double</span> totalUserDataBytesAcked, <span class="keywordtype">bool</span> isContinuousSend, <a class="code" href="../../d9/d6a/struct_s_l_net_1_1uint24__t.xhtml">DatagramSequenceNumberType</a> sequenceNumber );</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordtype">void</span> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a84f89cd55d6b2e8898794c4280bf58ea">OnDuplicateAck</a>( <a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#af68854e24d09ea8058bf8b27ce0f24e6">CCTimeType</a> curTime, <a class="code" href="../../d9/d6a/struct_s_l_net_1_1uint24__t.xhtml">DatagramSequenceNumberType</a> sequenceNumber );</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; </div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordtype">void</span> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a4a983dc4841dc42558e3660617644796">OnSendAckGetBAndAS</a>(<a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#af68854e24d09ea8058bf8b27ce0f24e6">CCTimeType</a> curTime, <span class="keywordtype">bool</span> *hasBAndAS, <a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a093707671afbde33de2a3aa1ceaf85c3">BytesPerMicrosecond</a> *_B, <a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a093707671afbde33de2a3aa1ceaf85c3">BytesPerMicrosecond</a> *_AS);</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordtype">void</span> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a4adf5daf407c0bf2445f08c4a0af147b">OnSendAck</a>(<a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#af68854e24d09ea8058bf8b27ce0f24e6">CCTimeType</a> curTime, <a class="code" href="../../df/df2/_native_types_8h.xhtml#a6eb1e68cc391dd753bc8ce896dbb8315">uint32_t</a> numBytes);</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordtype">void</span> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#afe1ad7ddf762afc2802508caac50d0d5">OnSendNACK</a>(<a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#af68854e24d09ea8058bf8b27ce0f24e6">CCTimeType</a> curTime, <a class="code" href="../../df/df2/_native_types_8h.xhtml#a6eb1e68cc391dd753bc8ce896dbb8315">uint32_t</a> numBytes);</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; </div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#af68854e24d09ea8058bf8b27ce0f24e6">CCTimeType</a> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a733603474e772242a77a743996c788da">GetRTOForRetransmission</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> timesSent) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">void</span> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a565fbef9782e4ae5d1113036563e3e53">SetMTU</a>(<a class="code" href="../../df/df2/_native_types_8h.xhtml#a6eb1e68cc391dd753bc8ce896dbb8315">uint32_t</a> bytes);</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <a class="code" href="../../df/df2/_native_types_8h.xhtml#a6eb1e68cc391dd753bc8ce896dbb8315">uint32_t</a> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a8e5cb3d407d0d7db1b4e069b6bdd2441" title="Return what was set by SetMTU()">GetMTU</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
<div class="line"><a name="l00170"></a><span class="lineno"><a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a5891f328a4bfc74d67450108b8c52196"> 170</a></span>&#160; <a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a093707671afbde33de2a3aa1ceaf85c3">BytesPerMicrosecond</a> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a5891f328a4bfc74d67450108b8c52196" title="Query for statistics.">GetLocalSendRate</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{<span class="keywordflow">return</span> 0;}</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a093707671afbde33de2a3aa1ceaf85c3">BytesPerMicrosecond</a> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a1783f6e8ca3b9747cb83e2d0644e92d2">GetLocalReceiveRate</a>(<a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#af68854e24d09ea8058bf8b27ce0f24e6">CCTimeType</a> currentTime) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00172"></a><span class="lineno"><a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a5088305a1a0ac88bd9ba93c18b2816b1"> 172</a></span>&#160; <a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a093707671afbde33de2a3aa1ceaf85c3">BytesPerMicrosecond</a> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a5088305a1a0ac88bd9ba93c18b2816b1">GetRemoveReceiveRate</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{<span class="keywordflow">return</span> 0;}</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="comment">//BytesPerMicrosecond GetEstimatedBandwidth(void) const {return B;}</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"><a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a82db94bcf151aad4c98f2bce35cbc22f"> 174</a></span>&#160; <a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#a093707671afbde33de2a3aa1ceaf85c3">BytesPerMicrosecond</a> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a82db94bcf151aad4c98f2bce35cbc22f">GetEstimatedBandwidth</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a7d19fddcc6ddf35711be1553266c4fd3">GetLinkCapacityBytesPerSecond</a>()*1000000.0;}</div>
<div class="line"><a name="l00175"></a><span class="lineno"><a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a7d19fddcc6ddf35711be1553266c4fd3"> 175</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a7d19fddcc6ddf35711be1553266c4fd3">GetLinkCapacityBytesPerSecond</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{<span class="keywordflow">return</span> 0;}</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordtype">double</span> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a9bbf601678f1fa50bd8cd6822bde5c34" title="Query for statistics.">GetRTT</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div>
<div class="line"><a name="l00180"></a><span class="lineno"><a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a41c98801a45a7dfcc2c44048ba3a2baa"> 180</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a41c98801a45a7dfcc2c44048ba3a2baa">GetIsInSlowStart</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a3e08ed316fddc6aa342b6b6b22cf2ed1">IsInSlowStart</a>();}</div>
<div class="line"><a name="l00181"></a><span class="lineno"><a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a155b23fcc6d9b257f138461af236146d"> 181</a></span>&#160; <a class="code" href="../../df/df2/_native_types_8h.xhtml#a6eb1e68cc391dd753bc8ce896dbb8315">uint32_t</a> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a155b23fcc6d9b257f138461af236146d">GetCWNDLimit</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{<span class="keywordflow">return</span> (<a class="code" href="../../df/df2/_native_types_8h.xhtml#a6eb1e68cc391dd753bc8ce896dbb8315">uint32_t</a>) 0;}</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a0dfce620bc2d00dcd87767d5282b969f" title="Is a &gt; b, accounting for variable overflow?">GreaterThan</a>(<a class="code" href="../../d9/d6a/struct_s_l_net_1_1uint24__t.xhtml">DatagramSequenceNumberType</a> a, <a class="code" href="../../d9/d6a/struct_s_l_net_1_1uint24__t.xhtml">DatagramSequenceNumberType</a> b);</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a338c0e94028ac1e271b233ba2366c1ec" title="Is a &lt; b, accounting for variable overflow?">LessThan</a>(<a class="code" href="../../d9/d6a/struct_s_l_net_1_1uint24__t.xhtml">DatagramSequenceNumberType</a> a, <a class="code" href="../../d9/d6a/struct_s_l_net_1_1uint24__t.xhtml">DatagramSequenceNumberType</a> b);</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="comment">// void SetTimeBetweenSendsLimit(unsigned int bitsPerSecond);</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="../../df/df2/_native_types_8h.xhtml#ad27ed092432b64ff558d2254c278720f">uint64_t</a> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a5377c3b1325d57b55434bd7ebd321529">GetBytesPerSecondLimitByCongestionControl</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; </div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="comment">// Maximum amount of bytes that the user can send, e.g. the size of one full datagram</span></div>
<div class="line"><a name="l00194"></a><span class="lineno"><a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#afa36e77d1d60ef91d8ad186cc8166c89"> 194</a></span>&#160; <a class="code" href="../../df/df2/_native_types_8h.xhtml#a6eb1e68cc391dd753bc8ce896dbb8315">uint32_t</a> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#afa36e77d1d60ef91d8ad186cc8166c89">MAXIMUM_MTU_INCLUDING_UDP_HEADER</a>;</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div>
<div class="line"><a name="l00196"></a><span class="lineno"><a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#ac7ec19f4ce6df6b2d5e21f17330f8d6e"> 196</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#ac7ec19f4ce6df6b2d5e21f17330f8d6e">cwnd</a>; <span class="comment">// max bytes on wire</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"><a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a49ae0029e074d8cf7159ec94e512e256"> 197</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a49ae0029e074d8cf7159ec94e512e256">ssThresh</a>; <span class="comment">// Threshhold between slow start and congestion avoidance</span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div>
<div class="line"><a name="l00201"></a><span class="lineno"><a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a6daa3c9ea01cb4da42e7684457a5f736"> 201</a></span>&#160; <a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#af68854e24d09ea8058bf8b27ce0f24e6">CCTimeType</a> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a6daa3c9ea01cb4da42e7684457a5f736">oldestUnsentAck</a>;</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml#af68854e24d09ea8058bf8b27ce0f24e6">CCTimeType</a> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a700e3d07b59bbbb0ca0005e6545d7d71">GetSenderRTOForACK</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div>
<div class="line"><a name="l00206"></a><span class="lineno"><a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#ae19101f7f41f54027830d22d2c2e950d"> 206</a></span>&#160; <a class="code" href="../../d9/d6a/struct_s_l_net_1_1uint24__t.xhtml">DatagramSequenceNumberType</a> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#ae19101f7f41f54027830d22d2c2e950d" title="Every outgoing datagram is assigned a sequence number, which increments by 1 every assignment...">nextDatagramSequenceNumber</a>;</div>
<div class="line"><a name="l00207"></a><span class="lineno"><a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#abdf9a85716394acf4345c03ff944d683"> 207</a></span>&#160; <a class="code" href="../../d9/d6a/struct_s_l_net_1_1uint24__t.xhtml">DatagramSequenceNumberType</a> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#abdf9a85716394acf4345c03ff944d683">nextCongestionControlBlock</a>;</div>
<div class="line"><a name="l00208"></a><span class="lineno"><a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a09ae3fbc0d4d0675096a2f21635be7c5"> 208</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#ac17ef69900aeefc7c290e3f9b1a836fb">backoffThisBlock</a>, <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a09ae3fbc0d4d0675096a2f21635be7c5">speedUpThisBlock</a>;</div>
<div class="line"><a name="l00211"></a><span class="lineno"><a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a9bf408527629f8a98e9cf6ebf6d70d84"> 211</a></span>&#160; <a class="code" href="../../d9/d6a/struct_s_l_net_1_1uint24__t.xhtml">DatagramSequenceNumberType</a> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a9bf408527629f8a98e9cf6ebf6d70d84">expectedNextSequenceNumber</a>;</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div>
<div class="line"><a name="l00213"></a><span class="lineno"><a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a18b35cd38cf16c3b7860e297353f155e"> 213</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a18b35cd38cf16c3b7860e297353f155e">_isContinuousSend</a>;</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a3e08ed316fddc6aa342b6b6b22cf2ed1">IsInSlowStart</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div>
<div class="line"><a name="l00217"></a><span class="lineno"><a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#ad5ed60de06715a4a2455f563ce479a3c"> 217</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#ad5ed60de06715a4a2455f563ce479a3c">lastRtt</a>, <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#a31d66c05668f3d05f08d2d405e5b41eb">estimatedRTT</a>, <a class="code" href="../../dd/d68/class_s_l_net_1_1_c_c_rak_net_sliding_window.xhtml#ac8d552b986fe04d789909b377ade2a0f">deviationRtt</a>;</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;};</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;}</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="preprocessor">#endif</span></div>
</div><!-- fragment --></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="../../dir_74389ed8173ad57b461b9d623a1f3867.xhtml">Source</a></li><li class="navelem"><a class="el" href="../../dir_bbb90e3ef9167a594ae33323139a2595.xhtml">include</a></li><li class="navelem"><a class="el" href="../../dir_88467e66686deb9d3756fe4fc298e321.xhtml">slikenet</a></li><li class="navelem"><a class="el" href="../../d0/dfb/_c_c_rak_net_sliding_window_8h.xhtml">CCRakNetSlidingWindow.h</a></li>
<li class="footer">Generated on Wed Aug 14 2019 22:09:46 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>