ServerCore/html/classcore_1_1TCPServer.html
2023-03-10 12:55:46 -08:00

608 lines
44 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>My Project: core::TCPServer 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="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></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 id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">My Project
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><b>core</b></li><li class="navelem"><a class="el" href="classcore_1_1TCPServer.html">TCPServer</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classcore_1_1TCPServer-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">core::TCPServer Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="TCPServer_8h_source.html">TCPServer.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for core::TCPServer:</div>
<div class="dyncontent">
<div class="center"><img src="classcore_1_1TCPServer__inherit__graph.png" border="0" usemap="#acore_1_1TCPServer_inherit__map" alt="Inheritance graph"/></div>
<map name="acore_1_1TCPServer_inherit__map" id="acore_1_1TCPServer_inherit__map">
<area shape="rect" title=" " alt="" coords="99,155,224,181"/>
<area shape="rect" href="classcore_1_1ConsoleServer.html" title=" " alt="" coords="5,229,157,256"/>
<area shape="rect" href="classcore_1_1TLSServer.html" title=" " alt="" coords="181,229,304,256"/>
<area shape="rect" href="classcore_1_1TCPSocket.html" title=" " alt="" coords="23,80,150,107"/>
<area shape="rect" href="classcore_1_1Socket.html" title=" " alt="" coords="36,5,137,32"/>
<area shape="rect" href="classcore_1_1Command.html" title=" " alt="" coords="175,80,300,107"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for core::TCPServer:</div>
<div class="dyncontent">
<div class="center"><img src="classcore_1_1TCPServer__coll__graph.png" border="0" usemap="#acore_1_1TCPServer_coll__map" alt="Collaboration graph"/></div>
<map name="acore_1_1TCPServer_coll__map" id="acore_1_1TCPServer_coll__map">
<area shape="rect" title=" " alt="" coords="1097,93,1223,120"/>
<area shape="rect" href="classcore_1_1TCPSocket.html" title=" " alt="" coords="851,93,977,120"/>
<area shape="rect" href="classcore_1_1Socket.html" title=" " alt="" coords="487,93,588,120"/>
<area shape="rect" href="classcore_1_1EPoll.html" title=" " alt="" coords="185,93,275,120"/>
<area shape="rect" href="classcore_1_1Command.html" title=" " alt="" coords="5,60,131,87"/>
<area shape="rect" href="classcore_1_1CommandList.html" title=" " alt="" coords="304,43,452,69"/>
<area shape="rect" href="classcore_1_1SubscriptionManager.html" title=" " alt="" coords="623,188,817,215"/>
<area shape="rect" href="classcore_1_1IPAddress.html" title=" " alt="" coords="476,144,599,171"/>
<area shape="rect" href="classcore_1_1Object.html" title=" " alt="" coords="180,144,280,171"/>
<area shape="rect" href="classcore_1_1IPAddressList.html" title=" " alt="" coords="841,207,987,233"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:abaecb97c336b757d1029d45277f9fc5b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcore_1_1TCPServer.html#abaecb97c336b757d1029d45277f9fc5b">TCPServer</a> (<a class="el" href="classcore_1_1EPoll.html">EPoll</a> &amp;ePoll, <a class="el" href="classcore_1_1IPAddress.html">IPAddress</a> address, std::string delimiter=&quot; &quot;, int depth=10, std::string text=&quot;&quot;)</td></tr>
<tr class="separator:abaecb97c336b757d1029d45277f9fc5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ccdc057c9eee8504fce796301f82088"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcore_1_1TCPServer.html#a7ccdc057c9eee8504fce796301f82088">~TCPServer</a> ()</td></tr>
<tr class="separator:a7ccdc057c9eee8504fce796301f82088"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a554ec6e67d368e7bb545d95635c0a0df"><td class="memItemLeft" align="right" valign="top"><a id="a554ec6e67d368e7bb545d95635c0a0df"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>sessionErrorHandler</b> (std::string errorString, std::stringstream &amp;out)</td></tr>
<tr class="separator:a554ec6e67d368e7bb545d95635c0a0df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a841f02799ad8529aad7cea132f4de8a9"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classcore_1_1TCPSession.html">TCPSession</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcore_1_1TCPServer.html#a841f02799ad8529aad7cea132f4de8a9">getSocketAccept</a> (<a class="el" href="classcore_1_1EPoll.html">EPoll</a> &amp;epoll)</td></tr>
<tr class="separator:a841f02799ad8529aad7cea132f4de8a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88c603cd5df9dbc1632fd4b5e164d75b"><td class="memItemLeft" align="right" valign="top"><a id="a88c603cd5df9dbc1632fd4b5e164d75b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>removeFromSessionList</b> (<a class="el" href="classcore_1_1TCPSession.html">TCPSession</a> *session)</td></tr>
<tr class="separator:a88c603cd5df9dbc1632fd4b5e164d75b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49e3ead1bf4e7830685780e73c4db5db"><td class="memItemLeft" align="right" valign="top"><a id="a49e3ead1bf4e7830685780e73c4db5db"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcore_1_1TCPServer.html#a49e3ead1bf4e7830685780e73c4db5db">output</a> (std::stringstream &amp;out)</td></tr>
<tr class="memdesc:a49e3ead1bf4e7830685780e73c4db5db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Output the consoles array to the console. <br /></td></tr>
<tr class="separator:a49e3ead1bf4e7830685780e73c4db5db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9cfcf2984ddc7e1d8f157c9f07ad03e1"><td class="memItemLeft" align="right" valign="top"><a id="a9cfcf2984ddc7e1d8f157c9f07ad03e1"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>sendToAll</b> (std::stringstream &amp;out)</td></tr>
<tr class="separator:a9cfcf2984ddc7e1d8f157c9f07ad03e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7080f7d45e734087e81b83c5e1f8e676"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcore_1_1TCPServer.html#a7080f7d45e734087e81b83c5e1f8e676">sendToAll</a> (std::stringstream &amp;out, <a class="el" href="classcore_1_1TCPSession.html">TCPSession</a> &amp;sender, <a class="el" href="classcore_1_1SessionFilter.html">SessionFilter</a> filter)</td></tr>
<tr class="separator:a7080f7d45e734087e81b83c5e1f8e676"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af708df59e1bc60077c16db97f9cc8ff0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcore_1_1TCPServer.html#af708df59e1bc60077c16db97f9cc8ff0">sendToAll</a> (std::stringstream &amp;out, <a class="el" href="classcore_1_1TCPSession.html">TCPSession</a> &amp;sender)</td></tr>
<tr class="separator:af708df59e1bc60077c16db97f9cc8ff0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9042281193e227a6cd8dab3ff8b46a40"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcore_1_1TCPSession.html">TCPSession</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcore_1_1TCPServer.html#a9042281193e227a6cd8dab3ff8b46a40">getSessionByAlias</a> (void *alias)</td></tr>
<tr class="separator:a9042281193e227a6cd8dab3ff8b46a40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classcore_1_1TCPSocket"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classcore_1_1TCPSocket')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classcore_1_1TCPSocket.html">core::TCPSocket</a></td></tr>
<tr class="memitem:a09089f0bc701edcf6c148958fd29d374 inherit pub_methods_classcore_1_1TCPSocket"><td class="memItemLeft" align="right" valign="top"><a id="a09089f0bc701edcf6c148958fd29d374"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>TCPSocket</b> (<a class="el" href="classcore_1_1EPoll.html">EPoll</a> &amp;ePoll)</td></tr>
<tr class="separator:a09089f0bc701edcf6c148958fd29d374 inherit pub_methods_classcore_1_1TCPSocket"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7ffbbd17827ffe769684fa8345862d6 inherit pub_methods_classcore_1_1TCPSocket"><td class="memItemLeft" align="right" valign="top"><a id="aa7ffbbd17827ffe769684fa8345862d6"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>TCPSocket</b> (<a class="el" href="classcore_1_1EPoll.html">EPoll</a> &amp;ePoll, std::string text)</td></tr>
<tr class="separator:aa7ffbbd17827ffe769684fa8345862d6 inherit pub_methods_classcore_1_1TCPSocket"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22dae8f5b7989d206fab918297e0df94 inherit pub_methods_classcore_1_1TCPSocket"><td class="memItemLeft" align="right" valign="top"><a id="a22dae8f5b7989d206fab918297e0df94"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>connect</b> (<a class="el" href="classcore_1_1IPAddress.html">IPAddress</a> &amp;address)</td></tr>
<tr class="separator:a22dae8f5b7989d206fab918297e0df94 inherit pub_methods_classcore_1_1TCPSocket"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classcore_1_1Socket"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classcore_1_1Socket')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classcore_1_1Socket.html">core::Socket</a></td></tr>
<tr class="memitem:a4c3f87fd1de3c9eab4bf5efbb30ce87d inherit pub_methods_classcore_1_1Socket"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcore_1_1Socket.html#a4c3f87fd1de3c9eab4bf5efbb30ce87d">Socket</a> (<a class="el" href="classcore_1_1EPoll.html">EPoll</a> &amp;ePoll, std::string text=&quot;&quot;)</td></tr>
<tr class="separator:a4c3f87fd1de3c9eab4bf5efbb30ce87d inherit pub_methods_classcore_1_1Socket"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5003845f8ae464ad2fa206176381be0 inherit pub_methods_classcore_1_1Socket"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcore_1_1Socket.html#aa5003845f8ae464ad2fa206176381be0">~Socket</a> ()</td></tr>
<tr class="separator:aa5003845f8ae464ad2fa206176381be0 inherit pub_methods_classcore_1_1Socket"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2d1b6de7a64a9d446b0305b6ec47b31 inherit pub_methods_classcore_1_1Socket"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcore_1_1Socket.html#af2d1b6de7a64a9d446b0305b6ec47b31">shutdown</a> (std::string text=&quot;unknown&quot;)</td></tr>
<tr class="separator:af2d1b6de7a64a9d446b0305b6ec47b31 inherit pub_methods_classcore_1_1Socket"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac44f6ae3196a8a3e09a6a85fcf495762 inherit pub_methods_classcore_1_1Socket"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcore_1_1Socket.html#ac44f6ae3196a8a3e09a6a85fcf495762">setDescriptor</a> (int descriptor)</td></tr>
<tr class="memdesc:ac44f6ae3196a8a3e09a6a85fcf495762 inherit pub_methods_classcore_1_1Socket"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the descriptor for the socket. <a href="classcore_1_1Socket.html#ac44f6ae3196a8a3e09a6a85fcf495762">More...</a><br /></td></tr>
<tr class="separator:ac44f6ae3196a8a3e09a6a85fcf495762 inherit pub_methods_classcore_1_1Socket"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06ba54744530439d4131e6aba4623d08 inherit pub_methods_classcore_1_1Socket"><td class="memItemLeft" align="right" valign="top"><a id="a06ba54744530439d4131e6aba4623d08"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcore_1_1Socket.html#a06ba54744530439d4131e6aba4623d08">getDescriptor</a> ()</td></tr>
<tr class="memdesc:a06ba54744530439d4131e6aba4623d08 inherit pub_methods_classcore_1_1Socket"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the descriptor for the socket. <br /></td></tr>
<tr class="separator:a06ba54744530439d4131e6aba4623d08 inherit pub_methods_classcore_1_1Socket"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a045e15fb5851d666a21be05ac4c5d7 inherit pub_methods_classcore_1_1Socket"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcore_1_1Socket.html#a1a045e15fb5851d666a21be05ac4c5d7">eventReceived</a> (struct epoll_event event, long long eventId)</td></tr>
<tr class="memdesc:a1a045e15fb5851d666a21be05ac4c5d7 inherit pub_methods_classcore_1_1Socket"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse epoll event and call specified callbacks. <a href="classcore_1_1Socket.html#a1a045e15fb5851d666a21be05ac4c5d7">More...</a><br /></td></tr>
<tr class="separator:a1a045e15fb5851d666a21be05ac4c5d7 inherit pub_methods_classcore_1_1Socket"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1413c826307ef0f29d7457770af675e3 inherit pub_methods_classcore_1_1Socket"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcore_1_1Socket.html#a1413c826307ef0f29d7457770af675e3">write</a> (std::string data)</td></tr>
<tr class="separator:a1413c826307ef0f29d7457770af675e3 inherit pub_methods_classcore_1_1Socket"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4855594af113428eacdaa7448d661121 inherit pub_methods_classcore_1_1Socket"><td class="memItemLeft" align="right" valign="top"><a id="a4855594af113428eacdaa7448d661121"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>write</b> (char *buffer, int length)</td></tr>
<tr class="separator:a4855594af113428eacdaa7448d661121 inherit pub_methods_classcore_1_1Socket"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad67b0f95127bd987b98323120f40f6ed inherit pub_methods_classcore_1_1Socket"><td class="memItemLeft" align="right" valign="top"><a id="ad67b0f95127bd987b98323120f40f6ed"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>output</b> (std::stringstream &amp;out)</td></tr>
<tr class="separator:ad67b0f95127bd987b98323120f40f6ed inherit pub_methods_classcore_1_1Socket"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81e5ee3e17834166d97c6e8b7dfe0da0 inherit pub_methods_classcore_1_1Socket"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcore_1_1Socket.html#a81e5ee3e17834166d97c6e8b7dfe0da0">onRegister</a> ()</td></tr>
<tr class="memdesc:a81e5ee3e17834166d97c6e8b7dfe0da0 inherit pub_methods_classcore_1_1Socket"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called before the socket has registered with the epoll processing. <a href="classcore_1_1Socket.html#a81e5ee3e17834166d97c6e8b7dfe0da0">More...</a><br /></td></tr>
<tr class="separator:a81e5ee3e17834166d97c6e8b7dfe0da0 inherit pub_methods_classcore_1_1Socket"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23b9824653bbe4652a716acb828665b1 inherit pub_methods_classcore_1_1Socket"><td class="memItemLeft" align="right" valign="top"><a id="a23b9824653bbe4652a716acb828665b1"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcore_1_1Socket.html#a23b9824653bbe4652a716acb828665b1">onRegistered</a> ()</td></tr>
<tr class="memdesc:a23b9824653bbe4652a716acb828665b1 inherit pub_methods_classcore_1_1Socket"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called after the socket has been registered with epoll processing. <br /></td></tr>
<tr class="separator:a23b9824653bbe4652a716acb828665b1 inherit pub_methods_classcore_1_1Socket"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1d380db54a5b2efbc859e3744bd898b inherit pub_methods_classcore_1_1Socket"><td class="memItemLeft" align="right" valign="top"><a id="aa1d380db54a5b2efbc859e3744bd898b"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>onUnregister</b> ()</td></tr>
<tr class="separator:aa1d380db54a5b2efbc859e3744bd898b inherit pub_methods_classcore_1_1Socket"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9be59697c2b2e5efb19aaae3ba943d2 inherit pub_methods_classcore_1_1Socket"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcore_1_1Socket.html#ae9be59697c2b2e5efb19aaae3ba943d2">onUnregistered</a> ()</td></tr>
<tr class="memdesc:ae9be59697c2b2e5efb19aaae3ba943d2 inherit pub_methods_classcore_1_1Socket"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when the socket has finished unregistering for the epoll processing. <a href="classcore_1_1Socket.html#ae9be59697c2b2e5efb19aaae3ba943d2">More...</a><br /></td></tr>
<tr class="separator:ae9be59697c2b2e5efb19aaae3ba943d2 inherit pub_methods_classcore_1_1Socket"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43247bfe43c2be5ab3863d9057d46b7c inherit pub_methods_classcore_1_1Socket"><td class="memItemLeft" align="right" valign="top"><a id="a43247bfe43c2be5ab3863d9057d46b7c"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>needsToWrite</b> ()</td></tr>
<tr class="separator:a43247bfe43c2be5ab3863d9057d46b7c inherit pub_methods_classcore_1_1Socket"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:aeed1bc55d099667ccda51cd682bfc633"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classcore_1_1TCPSession.html">TCPSession</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcore_1_1TCPServer.html#aeed1bc55d099667ccda51cd682bfc633">sessions</a></td></tr>
<tr class="separator:aeed1bc55d099667ccda51cd682bfc633"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afcc44802b988e2f4292504e804dccf8b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcore_1_1CommandList.html">CommandList</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcore_1_1TCPServer.html#afcc44802b988e2f4292504e804dccf8b">commands</a></td></tr>
<tr class="separator:afcc44802b988e2f4292504e804dccf8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82f6bf16e4ab20d8b30da09e034fffff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcore_1_1IPAddressList.html">IPAddressList</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcore_1_1TCPServer.html#a82f6bf16e4ab20d8b30da09e034fffff">blackList</a></td></tr>
<tr class="separator:a82f6bf16e4ab20d8b30da09e034fffff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abad6300b6234ca8b69cef9128755342e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcore_1_1IPAddressList.html">IPAddressList</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcore_1_1TCPServer.html#abad6300b6234ca8b69cef9128755342e">whiteList</a></td></tr>
<tr class="separator:abad6300b6234ca8b69cef9128755342e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28302dd844cfc971ee41de2000d24aa0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcore_1_1SubscriptionManager.html">SubscriptionManager</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcore_1_1TCPServer.html#a28302dd844cfc971ee41de2000d24aa0">subscriptions</a></td></tr>
<tr class="separator:a28302dd844cfc971ee41de2000d24aa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_attribs_classcore_1_1TCPSocket"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_classcore_1_1TCPSocket')"><img src="closed.png" alt="-"/>&#160;Public Attributes inherited from <a class="el" href="classcore_1_1TCPSocket.html">core::TCPSocket</a></td></tr>
<tr class="memitem:abe7d0a740dc0c19c058661270a6fb630 inherit pub_attribs_classcore_1_1TCPSocket"><td class="memItemLeft" align="right" valign="top"><a id="abe7d0a740dc0c19c058661270a6fb630"></a>
<a class="el" href="classcore_1_1IPAddress.html">IPAddress</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ipAddress</b></td></tr>
<tr class="separator:abe7d0a740dc0c19c058661270a6fb630 inherit pub_attribs_classcore_1_1TCPSocket"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_attribs_classcore_1_1Socket"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_classcore_1_1Socket')"><img src="closed.png" alt="-"/>&#160;Public Attributes inherited from <a class="el" href="classcore_1_1Socket.html">core::Socket</a></td></tr>
<tr class="memitem:a9f9a89f5caab42f77b3759ceb54a0a78 inherit pub_attribs_classcore_1_1Socket"><td class="memItemLeft" align="right" valign="top"><a id="a9f9a89f5caab42f77b3759ceb54a0a78"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>reset</b> = false</td></tr>
<tr class="separator:a9f9a89f5caab42f77b3759ceb54a0a78 inherit pub_attribs_classcore_1_1Socket"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6303734821a2979f7b19add6ce1367b9 inherit pub_attribs_classcore_1_1Socket"><td class="memItemLeft" align="right" valign="top"><a id="a6303734821a2979f7b19add6ce1367b9"></a>
volatile bool&#160;</td><td class="memItemRight" valign="bottom"><b>shutDown</b> = false</td></tr>
<tr class="separator:a6303734821a2979f7b19add6ce1367b9 inherit pub_attribs_classcore_1_1Socket"><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:a276ccbc8cb9b4380ebd78807b97f0159"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcore_1_1TCPServer.html#a276ccbc8cb9b4380ebd78807b97f0159">onDataReceived</a> (std::string data) override</td></tr>
<tr class="separator:a276ccbc8cb9b4380ebd78807b97f0159"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b7a7e1ac4132942fcaf418ed41c1437"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcore_1_1TCPServer.html#a6b7a7e1ac4132942fcaf418ed41c1437">processCommand</a> (coreutils::ZString &amp;request, <a class="el" href="classcore_1_1TCPSession.html">TCPSession</a> &amp;session) override</td></tr>
<tr class="separator:a6b7a7e1ac4132942fcaf418ed41c1437"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classcore_1_1Socket"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classcore_1_1Socket')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classcore_1_1Socket.html">core::Socket</a></td></tr>
<tr class="memitem:a71c77a162698b9c074a7497beab7b5d8 inherit pro_methods_classcore_1_1Socket"><td class="memItemLeft" align="right" valign="top"><a id="a71c77a162698b9c074a7497beab7b5d8"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setBufferSize</b> (int length)</td></tr>
<tr class="separator:a71c77a162698b9c074a7497beab7b5d8 inherit pro_methods_classcore_1_1Socket"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9195676bb7ecbec167ecf5336921cbb inherit pro_methods_classcore_1_1Socket"><td class="memItemLeft" align="right" valign="top"><a id="aa9195676bb7ecbec167ecf5336921cbb"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>getBufferSize</b> ()</td></tr>
<tr class="separator:aa9195676bb7ecbec167ecf5336921cbb inherit pro_methods_classcore_1_1Socket"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae048b57ac2c34381378f3da0e758b3c8 inherit pro_methods_classcore_1_1Socket"><td class="memItemLeft" align="right" valign="top"><a id="ae048b57ac2c34381378f3da0e758b3c8"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>onDataReceived</b> (coreutils::ZString &amp;data)</td></tr>
<tr class="separator:ae048b57ac2c34381378f3da0e758b3c8 inherit pro_methods_classcore_1_1Socket"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46ed2e240852d3fa949979ebbc4ac875 inherit pro_methods_classcore_1_1Socket"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcore_1_1Socket.html#a46ed2e240852d3fa949979ebbc4ac875">receiveData</a> (coreutils::ZString &amp;buffer)</td></tr>
<tr class="separator:a46ed2e240852d3fa949979ebbc4ac875 inherit pro_methods_classcore_1_1Socket"><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 pro_attribs_classcore_1_1Socket"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classcore_1_1Socket')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classcore_1_1Socket.html">core::Socket</a></td></tr>
<tr class="memitem:a3b0b139ac7da581f0d969f6ae9a0c97c inherit pro_attribs_classcore_1_1Socket"><td class="memItemLeft" align="right" valign="top"><a id="a3b0b139ac7da581f0d969f6ae9a0c97c"></a>
<a class="el" href="classcore_1_1EPoll.html">EPoll</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>ePoll</b></td></tr>
<tr class="separator:a3b0b139ac7da581f0d969f6ae9a0c97c inherit pro_attribs_classcore_1_1Socket"><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><a class="el" href="classcore_1_1TCPServer.html">TCPServer</a></p>
<p>Manage a socket connection as a TCP server type. Connections to the socket are processed through the accept functionality.</p>
<p>A list of connections is maintained in a vector object.</p>
<p>This object extends the BMACommand object as well so it can be added to a Console object and process commands to display status information. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="abaecb97c336b757d1029d45277f9fc5b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abaecb97c336b757d1029d45277f9fc5b">&#9670;&nbsp;</a></span>TCPServer()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">core::TCPServer::TCPServer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcore_1_1EPoll.html">EPoll</a> &amp;&#160;</td>
<td class="paramname"><em>ePoll</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classcore_1_1IPAddress.html">IPAddress</a>&#160;</td>
<td class="paramname"><em>address</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string&#160;</td>
<td class="paramname"><em>delimiter</em> = <code>&quot;&#160;&quot;</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>depth</em> = <code>10</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string&#160;</td>
<td class="paramname"><em>text</em> = <code>&quot;&quot;</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>The constructor for the <a class="el" href="classcore_1_1TCPServer.html">TCPServer</a> object.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ePoll</td><td>the <a class="el" href="classcore_1_1EPoll.html">EPoll</a> instance that manages the socket. </td></tr>
<tr><td class="paramname">url</td><td>the IP address for the socket to receive connection requests. </td></tr>
<tr><td class="paramname">port</td><td>the port number that the socket will listen on. </td></tr>
<tr><td class="paramname">commandName</td><td>the name of the command used to invoke the status display for this object. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a7ccdc057c9eee8504fce796301f82088"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7ccdc057c9eee8504fce796301f82088">&#9670;&nbsp;</a></span>~TCPServer()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">core::TCPServer::~TCPServer </td>
<td>(</td>
<td class="paramname"></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>The destructor for this object. </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a9042281193e227a6cd8dab3ff8b46a40"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9042281193e227a6cd8dab3ff8b46a40">&#9670;&nbsp;</a></span>getSessionByAlias()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classcore_1_1TCPSession.html">TCPSession</a> * core::TCPServer::getSessionByAlias </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>alias</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Use the getSessionByAlias to retrieve a session pointer by the value of the alias pointer. </p>
</div>
</div>
<a id="a841f02799ad8529aad7cea132f4de8a9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a841f02799ad8529aad7cea132f4de8a9">&#9670;&nbsp;</a></span>getSocketAccept()</h2>
<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="classcore_1_1TCPSession.html">TCPSession</a> * core::TCPServer::getSocketAccept </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classcore_1_1EPoll.html">EPoll</a> &amp;&#160;</td>
<td class="paramname"><em>epoll</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>getSocketAccept is designed to allow a polymorphic extension of this object to return a type of object that extends the definition of the server socket. Returning the appropriate session object that extends from Session provides the mechanism where the server can select the protocol dialog for the desired service. </p>
<p>Reimplemented in <a class="el" href="classcore_1_1ConsoleServer.html#a80d9ea7f3fc5e07c50d5b9e0d4943ca8">core::ConsoleServer</a>.</p>
</div>
</div>
<a id="a276ccbc8cb9b4380ebd78807b97f0159"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a276ccbc8cb9b4380ebd78807b97f0159">&#9670;&nbsp;</a></span>onDataReceived()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void core::TCPServer::onDataReceived </td>
<td>(</td>
<td class="paramtype">std::string&#160;</td>
<td class="paramname"><em>data</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Override the virtual dataReceived since for the server these are requests to accept the new connection socket. No data is to be read or written when this method is called. It is the response to the fact that a new connection is coming into the system</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">data</td><td>the pointer to the buffer containing the received data. </td></tr>
<tr><td class="paramname">length</td><td>the length of the associated data buffer. </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented from <a class="el" href="classcore_1_1Socket.html#ac8d6a2c54696eb6fc2024cf6bcf6b4e5">core::Socket</a>.</p>
</div>
</div>
<a id="a6b7a7e1ac4132942fcaf418ed41c1437"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6b7a7e1ac4132942fcaf418ed41c1437">&#9670;&nbsp;</a></span>processCommand()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int core::TCPServer::processCommand </td>
<td>(</td>
<td class="paramtype">coreutils::ZString &amp;&#160;</td>
<td class="paramname"><em>request</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classcore_1_1TCPSession.html">TCPSession</a> &amp;&#160;</td>
<td class="paramname"><em>session</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">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This method is called when the <a class="el" href="classcore_1_1Command.html">Command</a> associated with this object is requested because a user has typed in the associated command name on a command entry line.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">the</td><td>session object to write the output to. </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented from <a class="el" href="classcore_1_1Command.html#a95176f2532c38ee14e3fee40ee28b1bd">core::Command</a>.</p>
</div>
</div>
<a id="af708df59e1bc60077c16db97f9cc8ff0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af708df59e1bc60077c16db97f9cc8ff0">&#9670;&nbsp;</a></span>sendToAll() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void core::TCPServer::sendToAll </td>
<td>(</td>
<td class="paramtype">std::stringstream &amp;&#160;</td>
<td class="paramname"><em>out</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classcore_1_1TCPSession.html">TCPSession</a> &amp;&#160;</td>
<td class="paramname"><em>sender</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Use this sendToAll method to output the contents of the out stream to all the connections on the server excluding the sender session and the entries identified by the passed in filter object. </p>
</div>
</div>
<a id="a7080f7d45e734087e81b83c5e1f8e676"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7080f7d45e734087e81b83c5e1f8e676">&#9670;&nbsp;</a></span>sendToAll() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void core::TCPServer::sendToAll </td>
<td>(</td>
<td class="paramtype">std::stringstream &amp;&#160;</td>
<td class="paramname"><em>out</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classcore_1_1TCPSession.html">TCPSession</a> &amp;&#160;</td>
<td class="paramname"><em>sender</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classcore_1_1SessionFilter.html">SessionFilter</a>&#160;</td>
<td class="paramname"><em>filter</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Use this sendToAll method to output the contents of the out stream to all the connections on the server excluding the sender session. </p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a82f6bf16e4ab20d8b30da09e034fffff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a82f6bf16e4ab20d8b30da09e034fffff">&#9670;&nbsp;</a></span>blackList</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classcore_1_1IPAddressList.html">IPAddressList</a>* core::TCPServer::blackList</td>
</tr>
</table>
</div><div class="memdoc">
<p>If not NULL the blacklist object can be assigned to this server socket and the server IP addresses connecting to the server attempting to accept a socket are contained in this list then the connection is rejected and no accept is granted. </p>
</div>
</div>
<a id="afcc44802b988e2f4292504e804dccf8b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afcc44802b988e2f4292504e804dccf8b">&#9670;&nbsp;</a></span>commands</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classcore_1_1CommandList.html">CommandList</a> core::TCPServer::commands</td>
</tr>
</table>
</div><div class="memdoc">
<p>The commands object is a <a class="el" href="classcore_1_1CommandList.html">CommandList</a> and is used to store <a class="el" href="classcore_1_1Command.html">Command</a> objects to be parsed and run as data comes into the session. </p>
</div>
</div>
<a id="aeed1bc55d099667ccda51cd682bfc633"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeed1bc55d099667ccda51cd682bfc633">&#9670;&nbsp;</a></span>sessions</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;<a class="el" href="classcore_1_1TCPSession.html">TCPSession</a> *&gt; core::TCPServer::sessions</td>
</tr>
</table>
</div><div class="memdoc">
<p>The list of sessions that are currently open and being maintained by this object. </p>
</div>
</div>
<a id="a28302dd844cfc971ee41de2000d24aa0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a28302dd844cfc971ee41de2000d24aa0">&#9670;&nbsp;</a></span>subscriptions</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classcore_1_1SubscriptionManager.html">SubscriptionManager</a> core::TCPServer::subscriptions</td>
</tr>
</table>
</div><div class="memdoc">
<p>The <a class="el" href="classcore_1_1Subscription.html">Subscription</a> Manager tracks all subscriptions on the server. </p>
</div>
</div>
<a id="abad6300b6234ca8b69cef9128755342e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abad6300b6234ca8b69cef9128755342e">&#9670;&nbsp;</a></span>whiteList</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classcore_1_1IPAddressList.html">IPAddressList</a>* core::TCPServer::whiteList</td>
</tr>
</table>
</div><div class="memdoc">
<p>If not NULL the blacklist object can be assigned to this server socket and the server IP addresses connecting to the server attempting to accept a socket are contained in this list then the connection is rejected and no accept is granted. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="TCPServer_8h_source.html">TCPServer.h</a></li>
<li>TCPServer.cpp</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>