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,24 @@
var class_s_l_net_1_1_log_command_parser =
[
[ "SystemAddressAndChannel", "d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#da/da8/struct_s_l_net_1_1_log_command_parser_1_1_system_address_and_channel", [
[ "channels", "d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#a1445f502c9ec490f0cd5d7913962e1e8", null ],
[ "systemAddress", "d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#a42f2e1a165aedfa5a1751647da85d869", null ]
] ],
[ "LogCommandParser", "d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#ab4c6da7e29bdad095d1ae970fd39e20f", null ],
[ "~LogCommandParser", "d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#a2f0c8967049bbc629318c145b6a4b67a", null ],
[ "AddChannel", "d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#a35f7782ea9a03e452755142f8f9aa4ba", null ],
[ "GetChannelIndexFromName", "d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#ab6c715b79deb90c6a2a9a3e74c693782", null ],
[ "GetName", "d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#a6f5c3ee5e99697a09aa4df82f568a6a3", null ],
[ "OnCommand", "d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#ae2bd5f41fef87a9708e4cbd9eb5e909e", null ],
[ "OnConnectionLost", "d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#a69711e87288adfbeea4a48a4140a1275", null ],
[ "OnNewIncomingConnection", "d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#ae786c2d5be14376983a10c20468addc5", null ],
[ "OnTransportChange", "d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#a2223dae174d0f814521eb9f8f855d2f8", null ],
[ "PrintChannels", "d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#ab87fb0f2e0f8a890a3c7d1d7244eba1e", null ],
[ "SendHelp", "d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#a394c92ba82a5f933216819a4b0f67961", null ],
[ "Subscribe", "d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#a37adb011144c500ec6f82d8a013c7063", null ],
[ "Unsubscribe", "d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#a869788dc99e167aac218a117d9cab705", null ],
[ "WriteLog", "d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#aab79a411bea635b4241afcea57056b72", null ],
[ "channelNames", "d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#a1447cd2d0199eb8fbaa31451e4a416f4", null ],
[ "remoteUsers", "d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#a56792fea44e30074e9a8bb920a3c8966", null ],
[ "trans", "d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#a399229f0bb45835e24c6be7444ff13d0", null ]
];

View File

@ -0,0 +1,864 @@
<!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: SLNet::LogCommandParser Class Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../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 class="current"><a href="../../annotated.xhtml"><span>Classes</span></a></li>
<li><a href="../../files.xhtml"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="../../search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="../../search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="../../annotated.xhtml"><span>Class&#160;List</span></a></li>
<li><a href="../../classes.xhtml"><span>Class&#160;Index</span></a></li>
<li><a href="../../inherits.xhtml"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="../../functions.xhtml"><span>Class&#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('d5/da2/class_s_l_net_1_1_log_command_parser.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="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="../../dc/d15/class_s_l_net_1_1_log_command_parser-members.xhtml">List of all members</a> </div>
<div class="headertitle">
<div class="title">SLNet::LogCommandParser Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Adds the ability to send logging output to a remote console.
<a href="../../d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="../../df/d9f/_log_command_parser_8h_source.xhtml">slikenet/LogCommandParser.h</a>&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="../../closed.png" alt="+"/> Inheritance diagram for SLNet::LogCommandParser:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="../../dd/d1e/class_s_l_net_1_1_log_command_parser__inherit__graph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:da/da8/struct_s_l_net_1_1_log_command_parser_1_1_system_address_and_channel"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#da/da8/struct_s_l_net_1_1_log_command_parser_1_1_system_address_and_channel">SystemAddressAndChannel</a></td></tr>
<tr class="memdesc:da/da8/struct_s_l_net_1_1_log_command_parser_1_1_system_address_and_channel"><td class="mdescLeft">&#160;</td><td class="mdescRight">One of these structures is created per player. <a href="../../d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#da/da8/struct_s_l_net_1_1_log_command_parser_1_1_system_address_and_channel">More...</a><br/></td></tr>
<tr class="separator:da/da8/struct_s_l_net_1_1_log_command_parser_1_1_system_address_and_channel"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ab4c6da7e29bdad095d1ae970fd39e20f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#ab4c6da7e29bdad095d1ae970fd39e20f">LogCommandParser</a> ()</td></tr>
<tr class="separator:ab4c6da7e29bdad095d1ae970fd39e20f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f0c8967049bbc629318c145b6a4b67a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#a2f0c8967049bbc629318c145b6a4b67a">~LogCommandParser</a> ()</td></tr>
<tr class="separator:a2f0c8967049bbc629318c145b6a4b67a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2bd5f41fef87a9708e4cbd9eb5e909e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#ae2bd5f41fef87a9708e4cbd9eb5e909e">OnCommand</a> (const char *command, unsigned numParameters, char **parameterList, <a class="el" href="../../d0/d4e/class_s_l_net_1_1_transport_interface.xhtml">TransportInterface</a> *transport, const <a class="el" href="../../d8/dbe/struct_s_l_net_1_1_system_address.xhtml">SystemAddress</a> &amp;systemAddress, const char *originalString)</td></tr>
<tr class="separator:ae2bd5f41fef87a9708e4cbd9eb5e909e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f5c3ee5e99697a09aa4df82f568a6a3"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#a6f5c3ee5e99697a09aa4df82f568a6a3">GetName</a> (void) const </td></tr>
<tr class="separator:a6f5c3ee5e99697a09aa4df82f568a6a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a394c92ba82a5f933216819a4b0f67961"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#a394c92ba82a5f933216819a4b0f67961">SendHelp</a> (<a class="el" href="../../d0/d4e/class_s_l_net_1_1_transport_interface.xhtml">TransportInterface</a> *transport, const <a class="el" href="../../d8/dbe/struct_s_l_net_1_1_system_address.xhtml">SystemAddress</a> &amp;systemAddress)</td></tr>
<tr class="separator:a394c92ba82a5f933216819a4b0f67961"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35f7782ea9a03e452755142f8f9aa4ba"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#a35f7782ea9a03e452755142f8f9aa4ba">AddChannel</a> (const char *channelName)</td></tr>
<tr class="memdesc:a35f7782ea9a03e452755142f8f9aa4ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">All logs must be associated with a channel. This is a filter so that remote clients only get logs for a system they care about. <a href="#a35f7782ea9a03e452755142f8f9aa4ba"></a><br/></td></tr>
<tr class="separator:a35f7782ea9a03e452755142f8f9aa4ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab79a411bea635b4241afcea57056b72"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#aab79a411bea635b4241afcea57056b72">WriteLog</a> (const char *channelName, const char *format,...)</td></tr>
<tr class="separator:aab79a411bea635b4241afcea57056b72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae786c2d5be14376983a10c20468addc5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#ae786c2d5be14376983a10c20468addc5">OnNewIncomingConnection</a> (const <a class="el" href="../../d8/dbe/struct_s_l_net_1_1_system_address.xhtml">SystemAddress</a> &amp;systemAddress, <a class="el" href="../../d0/d4e/class_s_l_net_1_1_transport_interface.xhtml">TransportInterface</a> *transport)</td></tr>
<tr class="separator:ae786c2d5be14376983a10c20468addc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69711e87288adfbeea4a48a4140a1275"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#a69711e87288adfbeea4a48a4140a1275">OnConnectionLost</a> (const <a class="el" href="../../d8/dbe/struct_s_l_net_1_1_system_address.xhtml">SystemAddress</a> &amp;systemAddress, <a class="el" href="../../d0/d4e/class_s_l_net_1_1_transport_interface.xhtml">TransportInterface</a> *transport)</td></tr>
<tr class="separator:a69711e87288adfbeea4a48a4140a1275"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2223dae174d0f814521eb9f8f855d2f8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#a2223dae174d0f814521eb9f8f855d2f8">OnTransportChange</a> (<a class="el" href="../../d0/d4e/class_s_l_net_1_1_transport_interface.xhtml">TransportInterface</a> *transport)</td></tr>
<tr class="separator:a2223dae174d0f814521eb9f8f855d2f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_s_l_net_1_1_command_parser_interface"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_s_l_net_1_1_command_parser_interface')"><img src="../../closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="../../d5/d9a/class_s_l_net_1_1_command_parser_interface.xhtml">SLNet::CommandParserInterface</a></td></tr>
<tr class="memitem:a7ba9f06e187e9ddab5ae7c029ea79622 inherit pub_methods_class_s_l_net_1_1_command_parser_interface"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d9a/class_s_l_net_1_1_command_parser_interface.xhtml#a7ba9f06e187e9ddab5ae7c029ea79622">CommandParserInterface</a> ()</td></tr>
<tr class="separator:a7ba9f06e187e9ddab5ae7c029ea79622 inherit pub_methods_class_s_l_net_1_1_command_parser_interface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ed8b0c6f394233b23c09ab24af22475 inherit pub_methods_class_s_l_net_1_1_command_parser_interface"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d9a/class_s_l_net_1_1_command_parser_interface.xhtml#a9ed8b0c6f394233b23c09ab24af22475">~CommandParserInterface</a> ()</td></tr>
<tr class="separator:a9ed8b0c6f394233b23c09ab24af22475 inherit pub_methods_class_s_l_net_1_1_command_parser_interface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af207b9dd2bd9dd57ae6263f26ae4736b inherit pub_methods_class_s_l_net_1_1_command_parser_interface"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d9a/class_s_l_net_1_1_command_parser_interface.xhtml#af207b9dd2bd9dd57ae6263f26ae4736b">GetRegisteredCommand</a> (const char *command, <a class="el" href="../../dd/d30/namespace_s_l_net.xhtml#db/db7/struct_s_l_net_1_1_registered_command">RegisteredCommand</a> *rc)</td></tr>
<tr class="separator:af207b9dd2bd9dd57ae6263f26ae4736b inherit pub_methods_class_s_l_net_1_1_command_parser_interface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e03d50221b92ab98b41d1f66b8001cb inherit pub_methods_class_s_l_net_1_1_command_parser_interface"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d9a/class_s_l_net_1_1_command_parser_interface.xhtml#a2e03d50221b92ab98b41d1f66b8001cb">SendCommandList</a> (<a class="el" href="../../d0/d4e/class_s_l_net_1_1_transport_interface.xhtml">TransportInterface</a> *transport, const <a class="el" href="../../d8/dbe/struct_s_l_net_1_1_system_address.xhtml">SystemAddress</a> &amp;systemAddress)</td></tr>
<tr class="separator:a2e03d50221b92ab98b41d1f66b8001cb inherit pub_methods_class_s_l_net_1_1_command_parser_interface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af567f77880a28f0662de71d2b115ee40 inherit pub_methods_class_s_l_net_1_1_command_parser_interface"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d9a/class_s_l_net_1_1_command_parser_interface.xhtml#af567f77880a28f0662de71d2b115ee40">RegisterCommand</a> (unsigned char parameterCount, const char *command, const char *commandHelp)</td></tr>
<tr class="separator:af567f77880a28f0662de71d2b115ee40 inherit pub_methods_class_s_l_net_1_1_command_parser_interface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa19fe99cd9223c972ff11369cd9179c inherit pub_methods_class_s_l_net_1_1_command_parser_interface"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d9a/class_s_l_net_1_1_command_parser_interface.xhtml#aaa19fe99cd9223c972ff11369cd9179c">ReturnResult</a> (bool res, const char *command, <a class="el" href="../../d0/d4e/class_s_l_net_1_1_transport_interface.xhtml">TransportInterface</a> *transport, const <a class="el" href="../../d8/dbe/struct_s_l_net_1_1_system_address.xhtml">SystemAddress</a> &amp;systemAddress)</td></tr>
<tr class="memdesc:aaa19fe99cd9223c972ff11369cd9179c inherit pub_methods_class_s_l_net_1_1_command_parser_interface"><td class="mdescLeft">&#160;</td><td class="mdescRight">Just writes a string to the remote system based on the result ( <em>res</em> ) of your operation. <a href="#aaa19fe99cd9223c972ff11369cd9179c"></a><br/></td></tr>
<tr class="separator:aaa19fe99cd9223c972ff11369cd9179c inherit pub_methods_class_s_l_net_1_1_command_parser_interface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb34c1b3b505bc602fa7ecc0af8bad1a inherit pub_methods_class_s_l_net_1_1_command_parser_interface"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d9a/class_s_l_net_1_1_command_parser_interface.xhtml#acb34c1b3b505bc602fa7ecc0af8bad1a">ReturnResult</a> (char *res, const char *command, <a class="el" href="../../d0/d4e/class_s_l_net_1_1_transport_interface.xhtml">TransportInterface</a> *transport, const <a class="el" href="../../d8/dbe/struct_s_l_net_1_1_system_address.xhtml">SystemAddress</a> &amp;systemAddress)</td></tr>
<tr class="separator:acb34c1b3b505bc602fa7ecc0af8bad1a inherit pub_methods_class_s_l_net_1_1_command_parser_interface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7409a39e68431493d7194720cbae91f9 inherit pub_methods_class_s_l_net_1_1_command_parser_interface"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d9a/class_s_l_net_1_1_command_parser_interface.xhtml#a7409a39e68431493d7194720cbae91f9">ReturnResult</a> (<a class="el" href="../../d8/dbe/struct_s_l_net_1_1_system_address.xhtml">SystemAddress</a> res, const char *command, <a class="el" href="../../d0/d4e/class_s_l_net_1_1_transport_interface.xhtml">TransportInterface</a> *transport, const <a class="el" href="../../d8/dbe/struct_s_l_net_1_1_system_address.xhtml">SystemAddress</a> &amp;systemAddress)</td></tr>
<tr class="separator:a7409a39e68431493d7194720cbae91f9 inherit pub_methods_class_s_l_net_1_1_command_parser_interface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86419b3c8042227f0ad30335f4e35666 inherit pub_methods_class_s_l_net_1_1_command_parser_interface"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d9a/class_s_l_net_1_1_command_parser_interface.xhtml#a86419b3c8042227f0ad30335f4e35666">ReturnResult</a> (int res, const char *command, <a class="el" href="../../d0/d4e/class_s_l_net_1_1_transport_interface.xhtml">TransportInterface</a> *transport, const <a class="el" href="../../d8/dbe/struct_s_l_net_1_1_system_address.xhtml">SystemAddress</a> &amp;systemAddress)</td></tr>
<tr class="separator:a86419b3c8042227f0ad30335f4e35666 inherit pub_methods_class_s_l_net_1_1_command_parser_interface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a722b48ee2b088b3d471e978980babac6 inherit pub_methods_class_s_l_net_1_1_command_parser_interface"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d9a/class_s_l_net_1_1_command_parser_interface.xhtml#a722b48ee2b088b3d471e978980babac6">ReturnResult</a> (const char *command, <a class="el" href="../../d0/d4e/class_s_l_net_1_1_transport_interface.xhtml">TransportInterface</a> *transport, const <a class="el" href="../../d8/dbe/struct_s_l_net_1_1_system_address.xhtml">SystemAddress</a> &amp;systemAddress)</td></tr>
<tr class="memdesc:a722b48ee2b088b3d471e978980babac6 inherit pub_methods_class_s_l_net_1_1_command_parser_interface"><td class="mdescLeft">&#160;</td><td class="mdescRight">Just writes a string to the remote system when you are calling a function that has no return value. <a href="#a722b48ee2b088b3d471e978980babac6"></a><br/></td></tr>
<tr class="separator:a722b48ee2b088b3d471e978980babac6 inherit pub_methods_class_s_l_net_1_1_command_parser_interface"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:ab87fb0f2e0f8a890a3c7d1d7244eba1e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#ab87fb0f2e0f8a890a3c7d1d7244eba1e">PrintChannels</a> (const <a class="el" href="../../d8/dbe/struct_s_l_net_1_1_system_address.xhtml">SystemAddress</a> &amp;systemAddress, <a class="el" href="../../d0/d4e/class_s_l_net_1_1_transport_interface.xhtml">TransportInterface</a> *transport) const </td></tr>
<tr class="separator:ab87fb0f2e0f8a890a3c7d1d7244eba1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a869788dc99e167aac218a117d9cab705"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#a869788dc99e167aac218a117d9cab705">Unsubscribe</a> (const <a class="el" href="../../d8/dbe/struct_s_l_net_1_1_system_address.xhtml">SystemAddress</a> &amp;systemAddress, const char *channelName)</td></tr>
<tr class="separator:a869788dc99e167aac218a117d9cab705"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37adb011144c500ec6f82d8a013c7063"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#a37adb011144c500ec6f82d8a013c7063">Subscribe</a> (const <a class="el" href="../../d8/dbe/struct_s_l_net_1_1_system_address.xhtml">SystemAddress</a> &amp;systemAddress, const char *channelName)</td></tr>
<tr class="separator:a37adb011144c500ec6f82d8a013c7063"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6c715b79deb90c6a2a9a3e74c693782"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#ab6c715b79deb90c6a2a9a3e74c693782">GetChannelIndexFromName</a> (const char *channelName)</td></tr>
<tr class="separator:ab6c715b79deb90c6a2a9a3e74c693782"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a56792fea44e30074e9a8bb920a3c8966"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d4/d78/class_data_structures_1_1_list.xhtml">DataStructures::List</a><br class="typebreak"/>
&lt; <a class="el" href="../../d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#da/da8/struct_s_l_net_1_1_log_command_parser_1_1_system_address_and_channel">SystemAddressAndChannel</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#a56792fea44e30074e9a8bb920a3c8966">remoteUsers</a></td></tr>
<tr class="memdesc:a56792fea44e30074e9a8bb920a3c8966"><td class="mdescLeft">&#160;</td><td class="mdescRight">The list of remote users. Added to when users subscribe, removed when they disconnect or unsubscribe. <a href="#a56792fea44e30074e9a8bb920a3c8966"></a><br/></td></tr>
<tr class="separator:a56792fea44e30074e9a8bb920a3c8966"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1447cd2d0199eb8fbaa31451e4a416f4"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#a1447cd2d0199eb8fbaa31451e4a416f4">channelNames</a> [32]</td></tr>
<tr class="memdesc:a1447cd2d0199eb8fbaa31451e4a416f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Names of the channels at each bit, or 0 for an unused channel. <a href="#a1447cd2d0199eb8fbaa31451e4a416f4"></a><br/></td></tr>
<tr class="separator:a1447cd2d0199eb8fbaa31451e4a416f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a399229f0bb45835e24c6be7444ff13d0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d0/d4e/class_s_l_net_1_1_transport_interface.xhtml">TransportInterface</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#a399229f0bb45835e24c6be7444ff13d0">trans</a></td></tr>
<tr class="memdesc:a399229f0bb45835e24c6be7444ff13d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is so I can save the current transport provider, solely so I can use it without having the user pass it to Log. <a href="#a399229f0bb45835e24c6be7444ff13d0"></a><br/></td></tr>
<tr class="separator:a399229f0bb45835e24c6be7444ff13d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_class_s_l_net_1_1_command_parser_interface"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_class_s_l_net_1_1_command_parser_interface')"><img src="../../closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="../../d5/d9a/class_s_l_net_1_1_command_parser_interface.xhtml">SLNet::CommandParserInterface</a></td></tr>
<tr class="memitem:a9ebee7da1aed4260a4935e2954969239 inherit pro_attribs_class_s_l_net_1_1_command_parser_interface"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../da/dfc/class_data_structures_1_1_ordered_list.xhtml">DataStructures::OrderedList</a><br class="typebreak"/>
&lt; const char <br class="typebreak"/>
*, <a class="el" href="../../dd/d30/namespace_s_l_net.xhtml#db/db7/struct_s_l_net_1_1_registered_command">RegisteredCommand</a>, <br class="typebreak"/>
<a class="el" href="../../dd/d30/namespace_s_l_net.xhtml#a809564daeb0384197f70247776af8f9f">RegisteredCommandComp</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d9a/class_s_l_net_1_1_command_parser_interface.xhtml#a9ebee7da1aed4260a4935e2954969239">commandList</a></td></tr>
<tr class="separator:a9ebee7da1aed4260a4935e2954969239 inherit pro_attribs_class_s_l_net_1_1_command_parser_interface"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_static_methods_class_s_l_net_1_1_command_parser_interface"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_class_s_l_net_1_1_command_parser_interface')"><img src="../../closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="../../d5/d9a/class_s_l_net_1_1_command_parser_interface.xhtml">SLNet::CommandParserInterface</a></td></tr>
<tr class="memitem:a5f24234afcc66d0591109ef74b4d1239 inherit pub_static_methods_class_s_l_net_1_1_command_parser_interface"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d9a/class_s_l_net_1_1_command_parser_interface.xhtml#a5f24234afcc66d0591109ef74b4d1239">ParseConsoleString</a> (char *str, const char delineator, unsigned char delineatorToggle, unsigned *numParameters, char **parameterList, unsigned parameterListLength)</td></tr>
<tr class="separator:a5f24234afcc66d0591109ef74b4d1239 inherit pub_static_methods_class_s_l_net_1_1_command_parser_interface"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_static_attribs_class_s_l_net_1_1_command_parser_interface"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_class_s_l_net_1_1_command_parser_interface')"><img src="../../closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="../../d5/d9a/class_s_l_net_1_1_command_parser_interface.xhtml">SLNet::CommandParserInterface</a></td></tr>
<tr class="memitem:af22a712a9db931075f8ea8f6a6c5e930 inherit pub_static_attribs_class_s_l_net_1_1_command_parser_interface"><td class="memItemLeft" align="right" valign="top">static const unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d9a/class_s_l_net_1_1_command_parser_interface.xhtml#af22a712a9db931075f8ea8f6a6c5e930">VARIABLE_NUMBER_OF_PARAMETERS</a> =255</td></tr>
<tr class="separator:af22a712a9db931075f8ea8f6a6c5e930 inherit pub_static_attribs_class_s_l_net_1_1_command_parser_interface"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Adds the ability to send logging output to a remote console. </p>
<p>Definition at line <a class="el" href="../../df/d9f/_log_command_parser_8h_source.xhtml#l00035">35</a> of file <a class="el" href="../../df/d9f/_log_command_parser_8h_source.xhtml">LogCommandParser.h</a>.</p>
</div><hr/><h2 class="groupheader">Class Documentation</h2>
<a name="da/da8/struct_s_l_net_1_1_log_command_parser_1_1_system_address_and_channel" id="da/da8/struct_s_l_net_1_1_log_command_parser_1_1_system_address_and_channel"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct SLNet::LogCommandParser::SystemAddressAndChannel</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"><p>One of these structures is created per player. </p>
<p>Definition at line <a class="el" href="../../df/d9f/_log_command_parser_8h_source.xhtml#l00109">109</a> of file <a class="el" href="../../df/d9f/_log_command_parser_8h_source.xhtml">LogCommandParser.h</a>.</p>
</div><table class="fieldtable">
<tr><th colspan="3">Class Members</th></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a1445f502c9ec490f0cd5d7913962e1e8"></a>unsigned</td>
<td class="fieldname">
channels</td>
<td class="fielddoc">
Bitwise representations of the channels subscribed to. If bit 0 is set, then we subscribe to channelNames[0] and so on. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a42f2e1a165aedfa5a1751647da85d869"></a><a class="el" href="../../d8/dbe/struct_s_l_net_1_1_system_address.xhtml">SystemAddress</a></td>
<td class="fieldname">
systemAddress</td>
<td class="fielddoc">
The ID of the player. </td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ab4c6da7e29bdad095d1ae970fd39e20f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">SLNet::LogCommandParser::LogCommandParser </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a2f0c8967049bbc629318c145b6a4b67a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">SLNet::LogCommandParser::~LogCommandParser </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a35f7782ea9a03e452755142f8f9aa4ba"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SLNet::LogCommandParser::AddChannel </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>channelName</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>All logs must be associated with a channel. This is a filter so that remote clients only get logs for a system they care about. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">channelName</td><td>A persistent string naming the channel. Don't deallocate this string. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ab6c715b79deb90c6a2a9a3e74c693782"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">unsigned SLNet::LogCommandParser::GetChannelIndexFromName </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>channelName</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Given the name of a channel, return the index into channelNames where it is located </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">channelName</td><td>The name of the channel </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a6f5c3ee5e99697a09aa4df82f568a6a3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char* SLNet::LogCommandParser::GetName </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>You are responsible for overriding this function and returning a static string, which will identifier your parser. This should return a static string </p>
<dl class="section return"><dt>Returns</dt><dd>The name that you return. </dd></dl>
<p>Implements <a class="el" href="../../d5/d9a/class_s_l_net_1_1_command_parser_interface.xhtml#a87574372b06eec8b442070ba105d9cdf">SLNet::CommandParserInterface</a>.</p>
</div>
</div>
<a class="anchor" id="ae2bd5f41fef87a9708e4cbd9eb5e909e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool SLNet::LogCommandParser::OnCommand </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>command</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned&#160;</td>
<td class="paramname"><em>numParameters</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char **&#160;</td>
<td class="paramname"><em>parameterList</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../d0/d4e/class_s_l_net_1_1_transport_interface.xhtml">TransportInterface</a> *&#160;</td>
<td class="paramname"><em>transport</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="../../d8/dbe/struct_s_l_net_1_1_system_address.xhtml">SystemAddress</a> &amp;&#160;</td>
<td class="paramname"><em>systemAddress</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>originalString</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Given <em>command</em> with parameters <em>parameterList</em> , do whatever processing you wish. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">command</td><td>The command to process </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">numParameters</td><td>How many parameters were passed along with the command </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">parameterList</td><td>The list of parameters. parameterList[0] is the first parameter and so on. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>The transport interface we can use to write to </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">systemAddress</td><td>The player that sent this command. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">originalString</td><td>The string that was actually sent over the network, in case you want to do your own parsing </td></tr>
</table>
</dd>
</dl>
<p>Implements <a class="el" href="../../d5/d9a/class_s_l_net_1_1_command_parser_interface.xhtml#ac6ddab07566765f7baadbfa5013e5228">SLNet::CommandParserInterface</a>.</p>
</div>
</div>
<a class="anchor" id="a69711e87288adfbeea4a48a4140a1275"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void SLNet::LogCommandParser::OnConnectionLost </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../d8/dbe/struct_s_l_net_1_1_system_address.xhtml">SystemAddress</a> &amp;&#160;</td>
<td class="paramname"><em>systemAddress</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../d0/d4e/class_s_l_net_1_1_transport_interface.xhtml">TransportInterface</a> *&#160;</td>
<td class="paramname"><em>transport</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>A callback for when <em>systemAddress</em> has disconnected, either gracefully or forcefully </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">systemAddress</td><td>The player that has disconnected. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>The transport interface that sent us this information. </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented from <a class="el" href="../../d5/d9a/class_s_l_net_1_1_command_parser_interface.xhtml#aff1ffd9c6fed37db3b9e06f5cdda776c">SLNet::CommandParserInterface</a>.</p>
</div>
</div>
<a class="anchor" id="ae786c2d5be14376983a10c20468addc5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void SLNet::LogCommandParser::OnNewIncomingConnection </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../d8/dbe/struct_s_l_net_1_1_system_address.xhtml">SystemAddress</a> &amp;&#160;</td>
<td class="paramname"><em>systemAddress</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../d0/d4e/class_s_l_net_1_1_transport_interface.xhtml">TransportInterface</a> *&#160;</td>
<td class="paramname"><em>transport</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>A callback for when <em>systemAddress</em> has connected to us. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">systemAddress</td><td>The player that has connected. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>The transport interface that sent us this information. Can be used to send messages to this or other players. </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented from <a class="el" href="../../d5/d9a/class_s_l_net_1_1_command_parser_interface.xhtml#a9a7dcfe0cc123bfd8df26ba1bd8ab4f8">SLNet::CommandParserInterface</a>.</p>
</div>
</div>
<a class="anchor" id="a2223dae174d0f814521eb9f8f855d2f8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void SLNet::LogCommandParser::OnTransportChange </td>
<td>(</td>
<td class="paramtype"><a class="el" href="../../d0/d4e/class_s_l_net_1_1_transport_interface.xhtml">TransportInterface</a> *&#160;</td>
<td class="paramname"><em>transport</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This is called every time transport interface is registered. If you want to save a copy of the <a class="el" href="../../d0/d4e/class_s_l_net_1_1_transport_interface.xhtml" title="Defines an interface that is used to send and receive null-terminated strings.">TransportInterface</a> pointer This is the place to do it </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>The new <a class="el" href="../../d0/d4e/class_s_l_net_1_1_transport_interface.xhtml" title="Defines an interface that is used to send and receive null-terminated strings.">TransportInterface</a> </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented from <a class="el" href="../../d5/d9a/class_s_l_net_1_1_command_parser_interface.xhtml#a4910fac51a4b7c1180dd36251289def7">SLNet::CommandParserInterface</a>.</p>
</div>
</div>
<a class="anchor" id="ab87fb0f2e0f8a890a3c7d1d7244eba1e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void SLNet::LogCommandParser::PrintChannels </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../d8/dbe/struct_s_l_net_1_1_system_address.xhtml">SystemAddress</a> &amp;&#160;</td>
<td class="paramname"><em>systemAddress</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="../../d0/d4e/class_s_l_net_1_1_transport_interface.xhtml">TransportInterface</a> *&#160;</td>
<td class="paramname"><em>transport</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sends the currently active channels to the user </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">systemAddress</td><td>The player to send to </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>The transport interface to use to send the channels </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a394c92ba82a5f933216819a4b0f67961"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void SLNet::LogCommandParser::SendHelp </td>
<td>(</td>
<td class="paramtype"><a class="el" href="../../d0/d4e/class_s_l_net_1_1_transport_interface.xhtml">TransportInterface</a> *&#160;</td>
<td class="paramname"><em>transport</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="../../d8/dbe/struct_s_l_net_1_1_system_address.xhtml">SystemAddress</a> &amp;&#160;</td>
<td class="paramname"><em>systemAddress</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>A callback for when you are expected to send a brief description of your parser to <em>systemAddress</em> </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">transport</td><td>The transport interface we can use to write to </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">systemAddress</td><td>The player that requested help. </td></tr>
</table>
</dd>
</dl>
<p>Implements <a class="el" href="../../d5/d9a/class_s_l_net_1_1_command_parser_interface.xhtml#a7c76b3671cd43b506017568319dcc512">SLNet::CommandParserInterface</a>.</p>
</div>
</div>
<a class="anchor" id="a37adb011144c500ec6f82d8a013c7063"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">unsigned SLNet::LogCommandParser::Subscribe </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../d8/dbe/struct_s_l_net_1_1_system_address.xhtml">SystemAddress</a> &amp;&#160;</td>
<td class="paramname"><em>systemAddress</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>channelName</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Subscribe a user to a channel (or to all channels) </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">systemAddress</td><td>The player to subscribe to </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">channelName</td><td>If 0, then subscribe from all channels. Otherwise subscribe to the named channel </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a869788dc99e167aac218a117d9cab705"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">unsigned SLNet::LogCommandParser::Unsubscribe </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../d8/dbe/struct_s_l_net_1_1_system_address.xhtml">SystemAddress</a> &amp;&#160;</td>
<td class="paramname"><em>systemAddress</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>channelName</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Unsubscribe a user from a channel (or from all channels) </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">systemAddress</td><td>The player to unsubscribe to </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">channelName</td><td>If 0, then unsubscribe from all channels. Otherwise unsubscribe from the named channel </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="aab79a411bea635b4241afcea57056b72"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SLNet::LogCommandParser::WriteLog </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>channelName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>format</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>...</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Write a log to a channel. Logs are not buffered, so only remote consoles connected and subscribing at the time you write will get the output. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">format</td><td>Same as <a class="el" href="../../d8/db0/defines_8h.xhtml#a2a5d867f7ae6521f217847a78f17ab4a">RAKNET_DEBUG_PRINTF()</a> </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">...</td><td>Same as <a class="el" href="../../d8/db0/defines_8h.xhtml#a2a5d867f7ae6521f217847a78f17ab4a">RAKNET_DEBUG_PRINTF()</a> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a1447cd2d0199eb8fbaa31451e4a416f4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char* SLNet::LogCommandParser::channelNames[32]</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Names of the channels at each bit, or 0 for an unused channel. </p>
<p>Definition at line <a class="el" href="../../df/d9f/_log_command_parser_8h_source.xhtml#l00122">122</a> of file <a class="el" href="../../df/d9f/_log_command_parser_8h_source.xhtml">LogCommandParser.h</a>.</p>
</div>
</div>
<a class="anchor" id="a56792fea44e30074e9a8bb920a3c8966"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="../../d4/d78/class_data_structures_1_1_list.xhtml">DataStructures::List</a>&lt;<a class="el" href="../../d5/da2/class_s_l_net_1_1_log_command_parser.xhtml#da/da8/struct_s_l_net_1_1_log_command_parser_1_1_system_address_and_channel">SystemAddressAndChannel</a>&gt; SLNet::LogCommandParser::remoteUsers</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The list of remote users. Added to when users subscribe, removed when they disconnect or unsubscribe. </p>
<p>Definition at line <a class="el" href="../../df/d9f/_log_command_parser_8h_source.xhtml#l00119">119</a> of file <a class="el" href="../../df/d9f/_log_command_parser_8h_source.xhtml">LogCommandParser.h</a>.</p>
</div>
</div>
<a class="anchor" id="a399229f0bb45835e24c6be7444ff13d0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="../../d0/d4e/class_s_l_net_1_1_transport_interface.xhtml">TransportInterface</a>* SLNet::LogCommandParser::trans</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This is so I can save the current transport provider, solely so I can use it without having the user pass it to Log. </p>
<p>Definition at line <a class="el" href="../../df/d9f/_log_command_parser_8h_source.xhtml#l00125">125</a> of file <a class="el" href="../../df/d9f/_log_command_parser_8h_source.xhtml">LogCommandParser.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>Source/include/slikenet/<a class="el" href="../../df/d9f/_log_command_parser_8h_source.xhtml">LogCommandParser.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dd/d30/namespace_s_l_net.xhtml">SLNet</a></li><li class="navelem"><a class="el" href="../../d5/da2/class_s_l_net_1_1_log_command_parser.xhtml">LogCommandParser</a></li>
<li class="footer">Generated on Wed Aug 14 2019 22:09:49 for SLikeNet by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.2 </li>
</ul>
</div>
</body>
</html>