classRakNet_1_1AutopatcherServer.html 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=9"/>
  6. <title>RakNet: RakNet::AutopatcherServer Class Reference</title>
  7. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  8. <script type="text/javascript" src="jquery.js"></script>
  9. <script type="text/javascript" src="dynsections.js"></script>
  10. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  11. </head>
  12. <body>
  13. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  14. <div id="titlearea">
  15. <table cellspacing="0" cellpadding="0">
  16. <tbody>
  17. <tr style="height: 56px;">
  18. <td style="padding-left: 0.5em;">
  19. <div id="projectname">RakNet
  20. &#160;<span id="projectnumber">4.0</span>
  21. </div>
  22. </td>
  23. </tr>
  24. </tbody>
  25. </table>
  26. </div>
  27. <!-- end header part -->
  28. <!-- Generated by Doxygen 1.8.2 -->
  29. <div id="navrow1" class="tabs">
  30. <ul class="tablist">
  31. <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  32. <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
  33. <li><a href="modules.html"><span>Modules</span></a></li>
  34. <li><a href="namespaces.html"><span>Namespaces</span></a></li>
  35. <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
  36. <li><a href="files.html"><span>Files</span></a></li>
  37. </ul>
  38. </div>
  39. <div id="navrow2" class="tabs2">
  40. <ul class="tablist">
  41. <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
  42. <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
  43. <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
  44. <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
  45. </ul>
  46. </div>
  47. <div id="nav-path" class="navpath">
  48. <ul>
  49. <li class="navelem"><a class="el" href="namespaceRakNet.html">RakNet</a></li><li class="navelem"><a class="el" href="classRakNet_1_1AutopatcherServer.html">AutopatcherServer</a></li> </ul>
  50. </div>
  51. </div><!-- top -->
  52. <div class="header">
  53. <div class="summary">
  54. <a href="#nested-classes">Classes</a> &#124;
  55. <a href="#pub-methods">Public Member Functions</a> &#124;
  56. <a href="#pro-methods">Protected Member Functions</a> &#124;
  57. <a href="classRakNet_1_1AutopatcherServer-members.html">List of all members</a> </div>
  58. <div class="headertitle">
  59. <div class="title">RakNet::AutopatcherServer Class Reference</div> </div>
  60. </div><!--header-->
  61. <div class="contents">
  62. <p>The server plugin for the autopatcher. Must be running for the client to get patches.
  63. <a href="classRakNet_1_1AutopatcherServer.html#details">More...</a></p>
  64. <p><code>#include &lt;AutopatcherServer.h&gt;</code></p>
  65. <div class="dynheader">
  66. Inheritance diagram for RakNet::AutopatcherServer:</div>
  67. <div class="dyncontent">
  68. <div class="center">
  69. <img src="classRakNet_1_1AutopatcherServer.png" usemap="#RakNet::AutopatcherServer_map" alt=""/>
  70. <map id="RakNet::AutopatcherServer_map" name="RakNet::AutopatcherServer_map">
  71. <area href="classRakNet_1_1PluginInterface2.html" alt="RakNet::PluginInterface2" shape="rect" coords="0,0,166,24"/>
  72. <area href="classRakNet_1_1FileListProgress.html" title="Callback interface set with FileList::SetCallback() in case you want progress notifications when File..." alt="RakNet::FileListProgress" shape="rect" coords="176,0,342,24"/>
  73. </map>
  74. </div></div>
  75. <table class="memberdecls">
  76. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
  77. Classes</h2></td></tr>
  78. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRakNet_1_1AutopatcherServer_1_1ResultTypeAndBitstream.html">ResultTypeAndBitstream</a></td></tr>
  79. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  80. </table><table class="memberdecls">
  81. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
  82. Public Member Functions</h2></td></tr>
  83. <tr class="memitem:a075b43cf2cf1f4cbb7b693c2366ca920"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1AutopatcherServer.html#a075b43cf2cf1f4cbb7b693c2366ca920">StartThreads</a> (int numThreads, int numSQLConnections, <a class="el" href="classRakNet_1_1AutopatcherRepositoryInterface.html">AutopatcherRepositoryInterface</a> **sqlConnectionPtrArray)</td></tr>
  84. <tr class="separator:a075b43cf2cf1f4cbb7b693c2366ca920"><td class="memSeparator" colspan="2">&#160;</td></tr>
  85. <tr class="memitem:aecfcbf7f0054b29890b5a3477c7874af"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1AutopatcherServer.html#aecfcbf7f0054b29890b5a3477c7874af">CacheMostRecentPatch</a> (const char *applicationName)</td></tr>
  86. <tr class="separator:aecfcbf7f0054b29890b5a3477c7874af"><td class="memSeparator" colspan="2">&#160;</td></tr>
  87. <tr class="memitem:a4a384c501c90377afd60e3424dd2633c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1AutopatcherServer.html#a4a384c501c90377afd60e3424dd2633c">SetUploadSendParameters</a> (<a class="el" href="PacketPriority_8h.html#a659378374e516180f93640c79f59705c">PacketPriority</a> _priority, char _orderingChannel)</td></tr>
  88. <tr class="separator:a4a384c501c90377afd60e3424dd2633c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  89. <tr class="memitem:ac39d86dcda2c9566310335cf36eb1ed1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1AutopatcherServer.html#ac39d86dcda2c9566310335cf36eb1ed1">SetFileListTransferPlugin</a> (<a class="el" href="classRakNet_1_1FileListTransfer.html">FileListTransfer</a> *flt)</td></tr>
  90. <tr class="separator:ac39d86dcda2c9566310335cf36eb1ed1"><td class="memSeparator" colspan="2">&#160;</td></tr>
  91. <tr class="memitem:ab23dced0b7e1c29e8cf02561a6b6ef2e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1AutopatcherServer.html#ab23dced0b7e1c29e8cf02561a6b6ef2e">SetMaxConurrentUsers</a> (unsigned int _maxConcurrentUsers)</td></tr>
  92. <tr class="separator:ab23dced0b7e1c29e8cf02561a6b6ef2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  93. <tr class="memitem:ab85215dbb1168e709234d1427d726c78"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1AutopatcherServer.html#ab85215dbb1168e709234d1427d726c78">GetMaxConurrentUsers</a> (void) const </td></tr>
  94. <tr class="separator:ab85215dbb1168e709234d1427d726c78"><td class="memSeparator" colspan="2">&#160;</td></tr>
  95. <tr class="memitem:add10b676cc7641eac267cf69e9ab43c2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1AutopatcherServer.html#add10b676cc7641eac267cf69e9ab43c2">SetLoadManagementCallback</a> (AutopatcherServerLoadNotifier *asumc)</td></tr>
  96. <tr class="separator:add10b676cc7641eac267cf69e9ab43c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  97. <tr class="memitem:a656a5b2929391d0e2f7b9bd6caddb0bb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1AutopatcherServer.html#a656a5b2929391d0e2f7b9bd6caddb0bb">SetAllowDownloadOfOriginalUnmodifiedFiles</a> (bool allow)</td></tr>
  98. <tr class="separator:a656a5b2929391d0e2f7b9bd6caddb0bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
  99. <tr class="memitem:a52e9ec17aab14603f6e763b5e9cd90d0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a52e9ec17aab14603f6e763b5e9cd90d0"></a>
  100. void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1AutopatcherServer.html#a52e9ec17aab14603f6e763b5e9cd90d0">Clear</a> (void)</td></tr>
  101. <tr class="memdesc:a52e9ec17aab14603f6e763b5e9cd90d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear buffered input and output. <br/></td></tr>
  102. <tr class="separator:a52e9ec17aab14603f6e763b5e9cd90d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  103. <tr class="memitem:aa296ea3a2b8f5965e9b389f18f8fa52e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa296ea3a2b8f5965e9b389f18f8fa52e"></a>
  104. virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1AutopatcherServer.html#aa296ea3a2b8f5965e9b389f18f8fa52e">OnAttach</a> (void)</td></tr>
  105. <tr class="memdesc:aa296ea3a2b8f5965e9b389f18f8fa52e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when the interface is attached. <br/></td></tr>
  106. <tr class="separator:aa296ea3a2b8f5965e9b389f18f8fa52e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  107. <tr class="memitem:a1c4f03310eb410dd6002f90c2126f7c2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1c4f03310eb410dd6002f90c2126f7c2"></a>
  108. virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1AutopatcherServer.html#a1c4f03310eb410dd6002f90c2126f7c2">OnDetach</a> (void)</td></tr>
  109. <tr class="memdesc:a1c4f03310eb410dd6002f90c2126f7c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when the interface is detached. <br/></td></tr>
  110. <tr class="separator:a1c4f03310eb410dd6002f90c2126f7c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  111. <tr class="memitem:a6f97c301d0d0fd46d6865a81ea8bec5e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6f97c301d0d0fd46d6865a81ea8bec5e"></a>
  112. virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1AutopatcherServer.html#a6f97c301d0d0fd46d6865a81ea8bec5e">Update</a> (void)</td></tr>
  113. <tr class="memdesc:a6f97c301d0d0fd46d6865a81ea8bec5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update is called every time a packet is checked for . <br/></td></tr>
  114. <tr class="separator:a6f97c301d0d0fd46d6865a81ea8bec5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  115. <tr class="memitem:a1382dcb0946c9473dbad8416b2a59e2e"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__PLUGIN__INTERFACE__GROUP.html#ga89998adaafb29e5d879113b992161085">PluginReceiveResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1AutopatcherServer.html#a1382dcb0946c9473dbad8416b2a59e2e">OnReceive</a> (<a class="el" href="structRakNet_1_1Packet.html">Packet</a> *packet)</td></tr>
  116. <tr class="separator:a1382dcb0946c9473dbad8416b2a59e2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  117. <tr class="memitem:a76414a1d46ea3bd2d3401c4f64b70146"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1AutopatcherServer.html#a76414a1d46ea3bd2d3401c4f64b70146">OnClosedConnection</a> (const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> &amp;systemAddress, <a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> rakNetGUID, <a class="el" href="group__PLUGIN__INTERFACE__GROUP.html#ga376cc546fd6892c2ead48cd51796c8b8">PI2_LostConnectionReason</a> lostConnectionReason)</td></tr>
  118. <tr class="separator:a76414a1d46ea3bd2d3401c4f64b70146"><td class="memSeparator" colspan="2">&#160;</td></tr>
  119. <tr class="inherit_header pub_methods_classRakNet_1_1PluginInterface2"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classRakNet_1_1PluginInterface2')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classRakNet_1_1PluginInterface2.html">RakNet::PluginInterface2</a></td></tr>
  120. <tr class="memitem:a14825e69f0560996327e4dd351842c06 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a14825e69f0560996327e4dd351842c06"></a>
  121. virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#a14825e69f0560996327e4dd351842c06">OnRakPeerStartup</a> (void)</td></tr>
  122. <tr class="memdesc:a14825e69f0560996327e4dd351842c06 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when <a class="el" href="classRakNet_1_1RakPeer.html" title="Main interface for network communications.">RakPeer</a> is initialized. <br/></td></tr>
  123. <tr class="separator:a14825e69f0560996327e4dd351842c06 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  124. <tr class="memitem:a37c873a1879871722e06acfc45923883 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a37c873a1879871722e06acfc45923883"></a>
  125. virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#a37c873a1879871722e06acfc45923883">OnRakPeerShutdown</a> (void)</td></tr>
  126. <tr class="memdesc:a37c873a1879871722e06acfc45923883 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when <a class="el" href="classRakNet_1_1RakPeer.html" title="Main interface for network communications.">RakPeer</a> is shutdown. <br/></td></tr>
  127. <tr class="separator:a37c873a1879871722e06acfc45923883 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  128. <tr class="memitem:abf13327cc10f772ba06dff8f2687f8ae inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#abf13327cc10f772ba06dff8f2687f8ae">OnNewConnection</a> (const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> &amp;systemAddress, <a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a> rakNetGUID, bool isIncoming)</td></tr>
  129. <tr class="separator:abf13327cc10f772ba06dff8f2687f8ae inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  130. <tr class="memitem:a9504489498df14b6efa5ca9bd39aede4 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#a9504489498df14b6efa5ca9bd39aede4">OnFailedConnectionAttempt</a> (<a class="el" href="structRakNet_1_1Packet.html">Packet</a> *packet, <a class="el" href="group__PLUGIN__INTERFACE__GROUP.html#ga3e92f686bace869b78c10508c58e0825">PI2_FailedConnectionAttemptReason</a> failedConnectionAttemptReason)</td></tr>
  131. <tr class="separator:a9504489498df14b6efa5ca9bd39aede4 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  132. <tr class="memitem:accfca7d25262c48a87a30114383284aa inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#accfca7d25262c48a87a30114383284aa">UsesReliabilityLayer</a> (void) const </td></tr>
  133. <tr class="separator:accfca7d25262c48a87a30114383284aa inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  134. <tr class="memitem:a7a6f69c6fc3a121e3676298a63a9ef78 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#a7a6f69c6fc3a121e3676298a63a9ef78">OnDirectSocketSend</a> (const char *data, const BitSize_t bitsUsed, <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> remoteSystemAddress)</td></tr>
  135. <tr class="separator:a7a6f69c6fc3a121e3676298a63a9ef78 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  136. <tr class="memitem:a9aac1101ad58e8443516588e96e066ec inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#a9aac1101ad58e8443516588e96e066ec">OnDirectSocketReceive</a> (const char *data, const BitSize_t bitsUsed, <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> remoteSystemAddress)</td></tr>
  137. <tr class="separator:a9aac1101ad58e8443516588e96e066ec inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  138. <tr class="memitem:abf51e60546bd74d21c91dc0d6f9f3a4b inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#abf51e60546bd74d21c91dc0d6f9f3a4b">OnReliabilityLayerNotification</a> (const char *errorMessage, const BitSize_t bitsUsed, <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> remoteSystemAddress, bool isError)</td></tr>
  139. <tr class="separator:abf51e60546bd74d21c91dc0d6f9f3a4b inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  140. <tr class="memitem:a399b8c93daa0236599961e754742e2f7 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#a399b8c93daa0236599961e754742e2f7">OnInternalPacket</a> (<a class="el" href="structRakNet_1_1InternalPacket.html">InternalPacket</a> *internalPacket, unsigned frameNumber, <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> remoteSystemAddress, RakNet::TimeMS time, int isSend)</td></tr>
  141. <tr class="separator:a399b8c93daa0236599961e754742e2f7 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  142. <tr class="memitem:ae0b0cad31cfc209c48197c77d6b46345 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#ae0b0cad31cfc209c48197c77d6b46345">OnAck</a> (unsigned int messageNumber, <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> remoteSystemAddress, RakNet::TimeMS time)</td></tr>
  143. <tr class="separator:ae0b0cad31cfc209c48197c77d6b46345 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  144. <tr class="memitem:a5c976aea56ed85055a17c19d91b90727 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1PluginInterface2.html#a5c976aea56ed85055a17c19d91b90727">OnPushBackPacket</a> (const char *data, const BitSize_t bitsUsed, <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> remoteSystemAddress)</td></tr>
  145. <tr class="separator:a5c976aea56ed85055a17c19d91b90727 inherit pub_methods_classRakNet_1_1PluginInterface2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  146. </table><table class="memberdecls">
  147. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
  148. Protected Member Functions</h2></td></tr>
  149. <tr class="memitem:ac38673279ffbe8c3cfb1ca6b84bd6490"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac38673279ffbe8c3cfb1ca6b84bd6490"></a>
  150. virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1AutopatcherServer.html#ac38673279ffbe8c3cfb1ca6b84bd6490">OnFilePushesComplete</a> (<a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> systemAddress, unsigned short setID)</td></tr>
  151. <tr class="memdesc:ac38673279ffbe8c3cfb1ca6b84bd6490"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is called when all files have been read and are being transferred to a remote system. <br/></td></tr>
  152. <tr class="separator:ac38673279ffbe8c3cfb1ca6b84bd6490"><td class="memSeparator" colspan="2">&#160;</td></tr>
  153. <tr class="memitem:a56b19dc1c42566159109bd473a749d45"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a56b19dc1c42566159109bd473a749d45"></a>
  154. virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1AutopatcherServer.html#a56b19dc1c42566159109bd473a749d45">OnSendAborted</a> (<a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> systemAddress)</td></tr>
  155. <tr class="memdesc:a56b19dc1c42566159109bd473a749d45"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is called when a send to a system was aborted (probably due to disconnection) <br/></td></tr>
  156. <tr class="separator:a56b19dc1c42566159109bd473a749d45"><td class="memSeparator" colspan="2">&#160;</td></tr>
  157. </table><table class="memberdecls">
  158. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
  159. Additional Inherited Members</h2></td></tr>
  160. <tr class="inherit_header pub_methods_classRakNet_1_1FileListProgress"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classRakNet_1_1FileListProgress')"><img src="closed.png" alt="-"/>&#160;Private Member Functions inherited from <a class="el" href="classRakNet_1_1FileListProgress.html">RakNet::FileListProgress</a></td></tr>
  161. <tr class="memitem:a32e9ee5b00bc4518202cd0dcf36d0ba7 inherit pub_methods_classRakNet_1_1FileListProgress"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a32e9ee5b00bc4518202cd0dcf36d0ba7"></a>
  162. virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1FileListProgress.html#a32e9ee5b00bc4518202cd0dcf36d0ba7">OnAddFilesFromDirectoryStarted</a> (FileList *fileList, char *dir)</td></tr>
  163. <tr class="memdesc:a32e9ee5b00bc4518202cd0dcf36d0ba7 inherit pub_methods_classRakNet_1_1FileListProgress"><td class="mdescLeft">&#160;</td><td class="mdescRight">First callback called when FileList::AddFilesFromDirectory() starts. <br/></td></tr>
  164. <tr class="separator:a32e9ee5b00bc4518202cd0dcf36d0ba7 inherit pub_methods_classRakNet_1_1FileListProgress"><td class="memSeparator" colspan="2">&#160;</td></tr>
  165. <tr class="memitem:ad3919d586c578255ecd543fde45eaf5c inherit pub_methods_classRakNet_1_1FileListProgress"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad3919d586c578255ecd543fde45eaf5c"></a>
  166. virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1FileListProgress.html#ad3919d586c578255ecd543fde45eaf5c">OnDirectory</a> (FileList *fileList, char *dir, unsigned int directoriesRemaining)</td></tr>
  167. <tr class="memdesc:ad3919d586c578255ecd543fde45eaf5c inherit pub_methods_classRakNet_1_1FileListProgress"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called for each directory, when that directory begins processing. <br/></td></tr>
  168. <tr class="separator:ad3919d586c578255ecd543fde45eaf5c inherit pub_methods_classRakNet_1_1FileListProgress"><td class="memSeparator" colspan="2">&#160;</td></tr>
  169. <tr class="memitem:af8ee3a3b95dc9eb4851af6055fb4f82b inherit pub_methods_classRakNet_1_1FileListProgress"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af8ee3a3b95dc9eb4851af6055fb4f82b"></a>
  170. virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1FileListProgress.html#af8ee3a3b95dc9eb4851af6055fb4f82b">OnFile</a> (FileList *fileList, char *dir, char *fileName, unsigned int fileSize)</td></tr>
  171. <tr class="memdesc:af8ee3a3b95dc9eb4851af6055fb4f82b inherit pub_methods_classRakNet_1_1FileListProgress"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called for each file, when that file begins processing. <br/></td></tr>
  172. <tr class="separator:af8ee3a3b95dc9eb4851af6055fb4f82b inherit pub_methods_classRakNet_1_1FileListProgress"><td class="memSeparator" colspan="2">&#160;</td></tr>
  173. <tr class="memitem:a095e3b79e163c22c0b1ccc7e1e71c8b9 inherit pub_methods_classRakNet_1_1FileListProgress"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRakNet_1_1FileListProgress.html#a095e3b79e163c22c0b1ccc7e1e71c8b9">OnFilePush</a> (const char *fileName, unsigned int fileLengthBytes, unsigned int offset, unsigned int bytesBeingSent, bool done, <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> targetSystem, unsigned short setId)</td></tr>
  174. <tr class="memdesc:a095e3b79e163c22c0b1ccc7e1e71c8b9 inherit pub_methods_classRakNet_1_1FileListProgress"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is called when we are sending a file to a remote system. <a href="#a095e3b79e163c22c0b1ccc7e1e71c8b9"></a><br/></td></tr>
  175. <tr class="separator:a095e3b79e163c22c0b1ccc7e1e71c8b9 inherit pub_methods_classRakNet_1_1FileListProgress"><td class="memSeparator" colspan="2">&#160;</td></tr>
  176. <tr class="inherit_header pub_methods_classRakNet_1_1IncrementalReadInterface"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classRakNet_1_1IncrementalReadInterface')"><img src="closed.png" alt="-"/>&#160;Private Member Functions inherited from <a class="el" href="classRakNet_1_1IncrementalReadInterface.html">RakNet::IncrementalReadInterface</a></td></tr>
  177. <tr class="memitem:a5b27c63c358c8934aac4f6a8ce830622 inherit pub_methods_classRakNet_1_1IncrementalReadInterface"><td class="memItemLeft" align="right" valign="top">virtual unsigned int&#160;</td><td class="memItemRight" valign="bottom"><b>GetFilePart</b> (const char *filename, unsigned int startReadBytes, unsigned int numBytesToRead, void *preallocatedDestination, FileListNodeContext context)</td></tr>
  178. <tr class="separator:a5b27c63c358c8934aac4f6a8ce830622 inherit pub_methods_classRakNet_1_1IncrementalReadInterface"><td class="memSeparator" colspan="2">&#160;</td></tr>
  179. </table>
  180. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  181. <div class="textblock"><p>The server plugin for the autopatcher. Must be running for the client to get patches. </p>
  182. </div><h2 class="groupheader">Member Function Documentation</h2>
  183. <a class="anchor" id="aecfcbf7f0054b29890b5a3477c7874af"></a>
  184. <div class="memitem">
  185. <div class="memproto">
  186. <table class="memname">
  187. <tr>
  188. <td class="memname">void RakNet::AutopatcherServer::CacheMostRecentPatch </td>
  189. <td>(</td>
  190. <td class="paramtype">const char *&#160;</td>
  191. <td class="paramname"><em>applicationName</em></td><td>)</td>
  192. <td></td>
  193. </tr>
  194. </table>
  195. </div><div class="memdoc">
  196. <p>Load the most recent patch in memory and keep it there This can take a lot of memory, but greatly speeds up serving patches, since disk access is not incurred </p>
  197. <dl class="params"><dt>Parameters</dt><dd>
  198. <table class="params">
  199. <tr><td class="paramdir">[in]</td><td class="paramname">applicationName</td><td>0 means all, otherwise the name of the application to cache </td></tr>
  200. </table>
  201. </dd>
  202. </dl>
  203. </div>
  204. </div>
  205. <a class="anchor" id="ab85215dbb1168e709234d1427d726c78"></a>
  206. <div class="memitem">
  207. <div class="memproto">
  208. <table class="memname">
  209. <tr>
  210. <td class="memname">unsigned int RakNet::AutopatcherServer::GetMaxConurrentUsers </td>
  211. <td>(</td>
  212. <td class="paramtype">void&#160;</td>
  213. <td class="paramname"></td><td>)</td>
  214. <td> const</td>
  215. </tr>
  216. </table>
  217. </div><div class="memdoc">
  218. <dl class="section return"><dt>Returns</dt><dd>Returns what was passed to <a class="el" href="classRakNet_1_1AutopatcherServer.html#ab23dced0b7e1c29e8cf02561a6b6ef2e">SetMaxConurrentUsers()</a>; </dd></dl>
  219. </div>
  220. </div>
  221. <a class="anchor" id="a76414a1d46ea3bd2d3401c4f64b70146"></a>
  222. <div class="memitem">
  223. <div class="memproto">
  224. <table class="mlabels">
  225. <tr>
  226. <td class="mlabels-left">
  227. <table class="memname">
  228. <tr>
  229. <td class="memname">virtual void RakNet::AutopatcherServer::OnClosedConnection </td>
  230. <td>(</td>
  231. <td class="paramtype">const <a class="el" href="structRakNet_1_1SystemAddress.html">SystemAddress</a> &amp;&#160;</td>
  232. <td class="paramname"><em>systemAddress</em>, </td>
  233. </tr>
  234. <tr>
  235. <td class="paramkey"></td>
  236. <td></td>
  237. <td class="paramtype"><a class="el" href="structRakNet_1_1RakNetGUID.html">RakNetGUID</a>&#160;</td>
  238. <td class="paramname"><em>rakNetGUID</em>, </td>
  239. </tr>
  240. <tr>
  241. <td class="paramkey"></td>
  242. <td></td>
  243. <td class="paramtype"><a class="el" href="group__PLUGIN__INTERFACE__GROUP.html#ga376cc546fd6892c2ead48cd51796c8b8">PI2_LostConnectionReason</a>&#160;</td>
  244. <td class="paramname"><em>lostConnectionReason</em>&#160;</td>
  245. </tr>
  246. <tr>
  247. <td></td>
  248. <td>)</td>
  249. <td></td><td></td>
  250. </tr>
  251. </table>
  252. </td>
  253. <td class="mlabels-right">
  254. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  255. </tr>
  256. </table>
  257. </div><div class="memdoc">
  258. <p>Called when a connection is dropped because the user called <a class="el" href="classRakNet_1_1RakPeer.html#a95e3806fce8552e322236abcf105cbf9" title="Close the connection to another host (if we initiated the connection it will disconnect, if they did it will kick them out).">RakPeer::CloseConnection()</a> for a particular system </p>
  259. <dl class="params"><dt>Parameters</dt><dd>
  260. <table class="params">
  261. <tr><td class="paramdir">[in]</td><td class="paramname">systemAddress</td><td>The system whose connection was closed </td></tr>
  262. <tr><td class="paramdir">[in]</td><td class="paramname">rakNetGuid</td><td>The guid of the specified system </td></tr>
  263. <tr><td class="paramdir">[in]</td><td class="paramname">lostConnectionReason</td><td>How the connection was closed: manually, connection lost, or notification of disconnection </td></tr>
  264. </table>
  265. </dd>
  266. </dl>
  267. <p>Reimplemented from <a class="el" href="classRakNet_1_1PluginInterface2.html#a80c7612ca1a5dcfeec0b52d8049a71ea">RakNet::PluginInterface2</a>.</p>
  268. </div>
  269. </div>
  270. <a class="anchor" id="a1382dcb0946c9473dbad8416b2a59e2e"></a>
  271. <div class="memitem">
  272. <div class="memproto">
  273. <table class="mlabels">
  274. <tr>
  275. <td class="mlabels-left">
  276. <table class="memname">
  277. <tr>
  278. <td class="memname">virtual <a class="el" href="group__PLUGIN__INTERFACE__GROUP.html#ga89998adaafb29e5d879113b992161085">PluginReceiveResult</a> RakNet::AutopatcherServer::OnReceive </td>
  279. <td>(</td>
  280. <td class="paramtype"><a class="el" href="structRakNet_1_1Packet.html">Packet</a> *&#160;</td>
  281. <td class="paramname"><em>packet</em></td><td>)</td>
  282. <td></td>
  283. </tr>
  284. </table>
  285. </td>
  286. <td class="mlabels-right">
  287. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  288. </tr>
  289. </table>
  290. </div><div class="memdoc">
  291. <p>OnReceive is called for every packet. </p>
  292. <dl class="params"><dt>Parameters</dt><dd>
  293. <table class="params">
  294. <tr><td class="paramdir">[in]</td><td class="paramname">packet</td><td>the packet that is being returned to the user </td></tr>
  295. </table>
  296. </dd>
  297. </dl>
  298. <dl class="section return"><dt>Returns</dt><dd>True to allow the game and other plugins to get this message, false to absorb it </dd></dl>
  299. <p>Reimplemented from <a class="el" href="classRakNet_1_1PluginInterface2.html#aa86f33263c1648f11b8a006469272639">RakNet::PluginInterface2</a>.</p>
  300. </div>
  301. </div>
  302. <a class="anchor" id="a656a5b2929391d0e2f7b9bd6caddb0bb"></a>
  303. <div class="memitem">
  304. <div class="memproto">
  305. <table class="memname">
  306. <tr>
  307. <td class="memname">void RakNet::AutopatcherServer::SetAllowDownloadOfOriginalUnmodifiedFiles </td>
  308. <td>(</td>
  309. <td class="paramtype">bool&#160;</td>
  310. <td class="paramname"><em>allow</em></td><td>)</td>
  311. <td></td>
  312. </tr>
  313. </table>
  314. </div><div class="memdoc">
  315. <p>Set whether or not the client can download files that were never modified, that they do not have Defaults to true Set to false to disallow downloading the entire game through the autopatcher. In this case, the user must have a copy of the game through other means (such as a CD install) </p>
  316. <dl class="params"><dt>Parameters</dt><dd>
  317. <table class="params">
  318. <tr><td class="paramdir">[in]</td><td class="paramname">allow</td><td>True to allow downloading original game files, false to disallow </td></tr>
  319. </table>
  320. </dd>
  321. </dl>
  322. </div>
  323. </div>
  324. <a class="anchor" id="ac39d86dcda2c9566310335cf36eb1ed1"></a>
  325. <div class="memitem">
  326. <div class="memproto">
  327. <table class="memname">
  328. <tr>
  329. <td class="memname">void RakNet::AutopatcherServer::SetFileListTransferPlugin </td>
  330. <td>(</td>
  331. <td class="paramtype"><a class="el" href="classRakNet_1_1FileListTransfer.html">FileListTransfer</a> *&#160;</td>
  332. <td class="paramname"><em>flt</em></td><td>)</td>
  333. <td></td>
  334. </tr>
  335. </table>
  336. </div><div class="memdoc">
  337. <p>This plugin has a dependency on the <a class="el" href="classRakNet_1_1FileListTransfer.html" title="A plugin to provide a simple way to compress and incrementally send the files in the FileList structu...">FileListTransfer</a> plugin, which it uses to actually send the files. So you need an instance of that plugin registered with <a class="el" href="classRakNet_1_1RakPeerInterface.html" title="The main interface for network communications.">RakPeerInterface</a>, and a pointer to that interface should be passed here. </p>
  338. <dl class="params"><dt>Parameters</dt><dd>
  339. <table class="params">
  340. <tr><td class="paramdir">[in]</td><td class="paramname">flt</td><td>A pointer to a registered instance of <a class="el" href="classRakNet_1_1FileListTransfer.html" title="A plugin to provide a simple way to compress and incrementally send the files in the FileList structu...">FileListTransfer</a> </td></tr>
  341. </table>
  342. </dd>
  343. </dl>
  344. </div>
  345. </div>
  346. <a class="anchor" id="add10b676cc7641eac267cf69e9ab43c2"></a>
  347. <div class="memitem">
  348. <div class="memproto">
  349. <table class="memname">
  350. <tr>
  351. <td class="memname">void RakNet::AutopatcherServer::SetLoadManagementCallback </td>
  352. <td>(</td>
  353. <td class="paramtype">AutopatcherServerLoadNotifier *&#160;</td>
  354. <td class="paramname"><em>asumc</em></td><td>)</td>
  355. <td></td>
  356. </tr>
  357. </table>
  358. </div><div class="memdoc">
  359. <p>Set a callback to get notifications of when user requests are queued and processed This is primarily of use to load balance the server </p>
  360. <dl class="params"><dt>Parameters</dt><dd>
  361. <table class="params">
  362. <tr><td class="paramdir">[in]</td><td class="paramname">asumc</td><td>An externally allocated instance of AutopatcherServerLoadNotifier. Pass 0 to disable. </td></tr>
  363. </table>
  364. </dd>
  365. </dl>
  366. </div>
  367. </div>
  368. <a class="anchor" id="ab23dced0b7e1c29e8cf02561a6b6ef2e"></a>
  369. <div class="memitem">
  370. <div class="memproto">
  371. <table class="memname">
  372. <tr>
  373. <td class="memname">void RakNet::AutopatcherServer::SetMaxConurrentUsers </td>
  374. <td>(</td>
  375. <td class="paramtype">unsigned int&#160;</td>
  376. <td class="paramname"><em>_maxConcurrentUsers</em></td><td>)</td>
  377. <td></td>
  378. </tr>
  379. </table>
  380. </div><div class="memdoc">
  381. <p>This is the maximum number of users the patcher will service at one time (generally about equal to the number of downloads at once) If this limit is exceeded, the request packet will be put into a queue and serviced when slots are available Defaults to 0 (unlimited) </p>
  382. <dl class="params"><dt>Parameters</dt><dd>
  383. <table class="params">
  384. <tr><td class="paramdir">[in]</td><td class="paramname">maxConcurrentUsers</td><td>Pass 0 for unlimited, otherwise the max users to serve at once </td></tr>
  385. </table>
  386. </dd>
  387. </dl>
  388. </div>
  389. </div>
  390. <a class="anchor" id="a4a384c501c90377afd60e3424dd2633c"></a>
  391. <div class="memitem">
  392. <div class="memproto">
  393. <table class="memname">
  394. <tr>
  395. <td class="memname">void RakNet::AutopatcherServer::SetUploadSendParameters </td>
  396. <td>(</td>
  397. <td class="paramtype"><a class="el" href="PacketPriority_8h.html#a659378374e516180f93640c79f59705c">PacketPriority</a>&#160;</td>
  398. <td class="paramname"><em>_priority</em>, </td>
  399. </tr>
  400. <tr>
  401. <td class="paramkey"></td>
  402. <td></td>
  403. <td class="paramtype">char&#160;</td>
  404. <td class="paramname"><em>_orderingChannel</em>&#160;</td>
  405. </tr>
  406. <tr>
  407. <td></td>
  408. <td>)</td>
  409. <td></td><td></td>
  410. </tr>
  411. </table>
  412. </div><div class="memdoc">
  413. <p>What parameters to use for the <a class="el" href="classRakNet_1_1RakPeerInterface.html#a543ec5be9cf5f73f5c8733d1829789f9">RakPeerInterface::Send()</a> call when uploading files. </p>
  414. <dl class="params"><dt>Parameters</dt><dd>
  415. <table class="params">
  416. <tr><td class="paramdir">[in]</td><td class="paramname">_priority</td><td>See <a class="el" href="classRakNet_1_1RakPeerInterface.html#a543ec5be9cf5f73f5c8733d1829789f9">RakPeerInterface::Send()</a> </td></tr>
  417. <tr><td class="paramdir">[in]</td><td class="paramname">_orderingChannel</td><td>See <a class="el" href="classRakNet_1_1RakPeerInterface.html#a543ec5be9cf5f73f5c8733d1829789f9">RakPeerInterface::Send()</a> </td></tr>
  418. </table>
  419. </dd>
  420. </dl>
  421. </div>
  422. </div>
  423. <a class="anchor" id="a075b43cf2cf1f4cbb7b693c2366ca920"></a>
  424. <div class="memitem">
  425. <div class="memproto">
  426. <table class="memname">
  427. <tr>
  428. <td class="memname">void RakNet::AutopatcherServer::StartThreads </td>
  429. <td>(</td>
  430. <td class="paramtype">int&#160;</td>
  431. <td class="paramname"><em>numThreads</em>, </td>
  432. </tr>
  433. <tr>
  434. <td class="paramkey"></td>
  435. <td></td>
  436. <td class="paramtype">int&#160;</td>
  437. <td class="paramname"><em>numSQLConnections</em>, </td>
  438. </tr>
  439. <tr>
  440. <td class="paramkey"></td>
  441. <td></td>
  442. <td class="paramtype"><a class="el" href="classRakNet_1_1AutopatcherRepositoryInterface.html">AutopatcherRepositoryInterface</a> **&#160;</td>
  443. <td class="paramname"><em>sqlConnectionPtrArray</em>&#160;</td>
  444. </tr>
  445. <tr>
  446. <td></td>
  447. <td>)</td>
  448. <td></td><td></td>
  449. </tr>
  450. </table>
  451. </div><div class="memdoc">
  452. <p>DO THIS FIRST Implement to start the worker threads. Before this is called, no queries will be performed When this is called, AllocAutopatcherRepositoryInterface will be called with <em>repositoryAllocationParameters</em> The system works in three phases.</p>
  453. <ol type="1">
  454. <li>Get change list since a given date. This uses one of the worker threads.</li>
  455. <li>If either running a full scan, or files have changed since a given date, get the list of patches. This uses one of the worker threads and does an intensive comparison of the hashes the client has vs. the files in the database</li>
  456. <li>If the total amount of data to be sent exceeds DATABASE_READ_CHUNK_SIZE, defined in the cpp file, then the database will be read from incrementally during this download phase. This uses an sql connection object, which may or may not be also in use by one of the threads. If you have more sql connections than threads, this tends to prevent the same connection from being used to incrementally read files for a downloader, and to be used in a worker thread. <dl class="params"><dt>Parameters</dt><dd>
  457. <table class="params">
  458. <tr><td class="paramdir">[in]</td><td class="paramname">numThreads</td><td>Number of processing threads, which handles the CPU intensive tasks of generating a patch list and comparing files </td></tr>
  459. <tr><td class="paramdir">[in]</td><td class="paramname">numSQLConnections</td><td>Number of SQL connection objects passed to <em>sqlConnectionPtrArray</em>. Must be greater than or equal to numThreads </td></tr>
  460. <tr><td class="paramdir">[in]</td><td class="paramname">sqlConnectionPtrArray</td><td>List of pointers to <a class="el" href="classRakNet_1_1AutopatcherRepositoryInterface.html" title="An interface used by AutopatcherServer to get the data necessary to run an autopatcher. This is up to you to implement for custom repository solutions.">AutopatcherRepositoryInterface</a>. C++ note: Don't just cast a derived class array, you need to take the pointer address of each item </td></tr>
  461. </table>
  462. </dd>
  463. </dl>
  464. </li>
  465. </ol>
  466. </div>
  467. </div>
  468. <hr/>The documentation for this class was generated from the following file:<ul>
  469. <li>D:/temp/RakNet_PC/DependentExtensions/Autopatcher/<a class="el" href="AutopatcherServer_8h.html">AutopatcherServer.h</a></li>
  470. </ul>
  471. </div><!-- contents -->
  472. <!-- start footer part -->
  473. <hr class="footer"/><address class="footer"><small>
  474. Generated on Mon Jun 2 2014 20:10:29 for RakNet by &#160;<a href="http://www.doxygen.org/index.html">
  475. <img class="footer" src="doxygen.png" alt="doxygen"/>
  476. </a> 1.8.2
  477. </small></address>
  478. </body>
  479. </html>
粤ICP备19079148号