Socket modifications
This commit is contained in:
		
							parent
							
								
									fd31b9e842
								
							
						
					
					
						commit
						a426f435ff
					
				| @ -17,7 +17,6 @@ namespace core { | |||||||
|       shutDown = true; |       shutDown = true; | ||||||
|       onUnregister(); |       onUnregister(); | ||||||
|       ePoll.unregisterSocket(this); |       ePoll.unregisterSocket(this); | ||||||
| //      coreutils::Log(coreutils::LOG_DEBUG_4) << "BMAXFree on socket " << descriptor;
 |  | ||||||
|       free(buffer); |       free(buffer); | ||||||
|       if(descriptor == -1) |       if(descriptor == -1) | ||||||
| 		  return; | 		  return; | ||||||
| @ -63,7 +62,7 @@ namespace core { | |||||||
|    void Socket::onUnregistered() {} |    void Socket::onUnregistered() {} | ||||||
| 
 | 
 | ||||||
|    bool Socket::eventReceived(struct epoll_event event, long long eventId) { |    bool Socket::eventReceived(struct epoll_event event, long long eventId) { | ||||||
| //      coreutils::Log(coreutils::LOG_DEBUG_3) << "eventReceived " << eventId << ": " << descriptor << ":" << event.events;
 |       lock.lock(); | ||||||
| 		inHandler = true; | 		inHandler = true; | ||||||
|       if(event.events & EPOLLRDHUP) { |       if(event.events & EPOLLRDHUP) { | ||||||
|          readHangup = true; |          readHangup = true; | ||||||
| @ -80,6 +79,7 @@ namespace core { | |||||||
|          shutdown(); |          shutdown(); | ||||||
|       } |       } | ||||||
| 		inHandler = false; | 		inHandler = false; | ||||||
|  |       lock.unlock(); | ||||||
|       return !shutDown; |       return !shutDown; | ||||||
|    } |    } | ||||||
| 
 | 
 | ||||||
| @ -138,9 +138,10 @@ namespace core { | |||||||
|       outlock.lock(); |       outlock.lock(); | ||||||
|       fifo.emplace(data); |       fifo.emplace(data); | ||||||
|       outlock.unlock(); |       outlock.unlock(); | ||||||
| //      coreutils::Log(coreutils::LOG_DEBUG_4) << "inHandler " << descriptor << " " << inHandler << ":" << shutDown << ":[" << data << "]";
 | 		 if(sender != this) | ||||||
| 		 if(!inHandler && sender != this) |          lock.lock(); | ||||||
| 		   ePoll.resetSocket(this); | 		   ePoll.resetSocket(this); | ||||||
|  |          lock.unlock(); | ||||||
|       return 1; |       return 1; | ||||||
|    } |    } | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										1
									
								
								Socket.h
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								Socket.h
									
									
									
									
									
								
							| @ -167,6 +167,7 @@ namespace core { | |||||||
|       std::string text; |       std::string text; | ||||||
|       int descriptor = -1; |       int descriptor = -1; | ||||||
|       std::mutex outlock; |       std::mutex outlock; | ||||||
|  |       std::mutex lock; | ||||||
|       bool readHangup = false; |       bool readHangup = false; | ||||||
| 		volatile bool inHandler = false; | 		volatile bool inHandler = false; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -147,48 +147,49 @@ $(function() { | |||||||
| <div class="line"><a name="l00167"></a><span class="lineno">  167</span>       std::string text;</div> | <div class="line"><a name="l00167"></a><span class="lineno">  167</span>       std::string text;</div> | ||||||
| <div class="line"><a name="l00168"></a><span class="lineno">  168</span>       <span class="keywordtype">int</span> descriptor = -1;</div> | <div class="line"><a name="l00168"></a><span class="lineno">  168</span>       <span class="keywordtype">int</span> descriptor = -1;</div> | ||||||
| <div class="line"><a name="l00169"></a><span class="lineno">  169</span>       std::mutex outlock;</div> | <div class="line"><a name="l00169"></a><span class="lineno">  169</span>       std::mutex outlock;</div> | ||||||
| <div class="line"><a name="l00170"></a><span class="lineno">  170</span>       <span class="keywordtype">bool</span> readHangup = <span class="keyword">false</span>;</div> | <div class="line"><a name="l00170"></a><span class="lineno">  170</span>       std::mutex lock;</div> | ||||||
| <div class="line"><a name="l00171"></a><span class="lineno">  171</span>         <span class="keyword">volatile</span> <span class="keywordtype">bool</span> inHandler = <span class="keyword">false</span>;</div> | <div class="line"><a name="l00171"></a><span class="lineno">  171</span>       <span class="keywordtype">bool</span> readHangup = <span class="keyword">false</span>;</div> | ||||||
| <div class="line"><a name="l00172"></a><span class="lineno">  172</span>  </div> | <div class="line"><a name="l00172"></a><span class="lineno">  172</span>         <span class="keyword">volatile</span> <span class="keywordtype">bool</span> inHandler = <span class="keyword">false</span>;</div> | ||||||
| <div class="line"><a name="l00173"></a><span class="lineno">  173</span>       <span class="comment">//-------------------------------------------------------------------------------------</span></div> | <div class="line"><a name="l00173"></a><span class="lineno">  173</span>  </div> | ||||||
| <div class="line"><a name="l00174"></a><span class="lineno">  174</span>       <span class="comment">// the writeSocket is called when epoll has received a write request for a socket.</span></div> | <div class="line"><a name="l00174"></a><span class="lineno">  174</span>       <span class="comment">//-------------------------------------------------------------------------------------</span></div> | ||||||
| <div class="line"><a name="l00175"></a><span class="lineno">  175</span>       <span class="comment">// Writing data to this socket is queued in the streambuf and permission is requested</span></div> | <div class="line"><a name="l00175"></a><span class="lineno">  175</span>       <span class="comment">// the writeSocket is called when epoll has received a write request for a socket.</span></div> | ||||||
| <div class="line"><a name="l00176"></a><span class="lineno">  176</span>       <span class="comment">// to write to the socket. This routine handles the writing of the streambuf data</span></div> | <div class="line"><a name="l00176"></a><span class="lineno">  176</span>       <span class="comment">// Writing data to this socket is queued in the streambuf and permission is requested</span></div> | ||||||
| <div class="line"><a name="l00177"></a><span class="lineno">  177</span>       <span class="comment">// buffer to the socket.</span></div> | <div class="line"><a name="l00177"></a><span class="lineno">  177</span>       <span class="comment">// to write to the socket. This routine handles the writing of the streambuf data</span></div> | ||||||
| <div class="line"><a name="l00178"></a><span class="lineno">  178</span>       <span class="comment">//-------------------------------------------------------------------------------------</span></div> | <div class="line"><a name="l00178"></a><span class="lineno">  178</span>       <span class="comment">// buffer to the socket.</span></div> | ||||||
| <div class="line"><a name="l00179"></a><span class="lineno">  179</span>  </div> | <div class="line"><a name="l00179"></a><span class="lineno">  179</span>       <span class="comment">//-------------------------------------------------------------------------------------</span></div> | ||||||
| <div class="line"><a name="l00180"></a><span class="lineno">  180</span>       <span class="keywordtype">void</span> writeSocket();</div> | <div class="line"><a name="l00180"></a><span class="lineno">  180</span>  </div> | ||||||
| <div class="line"><a name="l00181"></a><span class="lineno">  181</span>  </div> | <div class="line"><a name="l00181"></a><span class="lineno">  181</span>       <span class="keywordtype">void</span> writeSocket();</div> | ||||||
| <div class="line"><a name="l00182"></a><span class="lineno">  182</span>  <span class="comment">//  int_type underflow();</span></div> | <div class="line"><a name="l00182"></a><span class="lineno">  182</span>  </div> | ||||||
| <div class="line"><a name="l00183"></a><span class="lineno">  183</span> <span class="comment">//   int_type uflow();</span></div> | <div class="line"><a name="l00183"></a><span class="lineno">  183</span>  <span class="comment">//  int_type underflow();</span></div> | ||||||
| <div class="line"><a name="l00184"></a><span class="lineno">  184</span> <span class="comment">//   int_type pbackfail(int_type ch);</span></div> | <div class="line"><a name="l00184"></a><span class="lineno">  184</span> <span class="comment">//   int_type uflow();</span></div> | ||||||
| <div class="line"><a name="l00185"></a><span class="lineno">  185</span> <span class="comment">//   streamsize showmanyc();</span></div> | <div class="line"><a name="l00185"></a><span class="lineno">  185</span> <span class="comment">//   int_type pbackfail(int_type ch);</span></div> | ||||||
| <div class="line"><a name="l00186"></a><span class="lineno">  186</span>  </div> | <div class="line"><a name="l00186"></a><span class="lineno">  186</span> <span class="comment">//   streamsize showmanyc();</span></div> | ||||||
| <div class="line"><a name="l00187"></a><span class="lineno">  187</span>       <span class="keywordtype">char</span> *buffer;     <span class="comment">// This is a pointer to the managed buffer space.</span></div> | <div class="line"><a name="l00187"></a><span class="lineno">  187</span>  </div> | ||||||
| <div class="line"><a name="l00188"></a><span class="lineno">  188</span>       <span class="keywordtype">int</span> length;       <span class="comment">// This is the length of the buffer.</span></div> | <div class="line"><a name="l00188"></a><span class="lineno">  188</span>       <span class="keywordtype">char</span> *buffer;     <span class="comment">// This is a pointer to the managed buffer space.</span></div> | ||||||
| <div class="line"><a name="l00189"></a><span class="lineno">  189</span>  </div> | <div class="line"><a name="l00189"></a><span class="lineno">  189</span>       <span class="keywordtype">int</span> length;       <span class="comment">// This is the length of the buffer.</span></div> | ||||||
| <div class="line"><a name="l00190"></a><span class="lineno">  190</span>       std::queue<std::string> fifo;</div> | <div class="line"><a name="l00190"></a><span class="lineno">  190</span>  </div> | ||||||
| <div class="line"><a name="l00191"></a><span class="lineno">  191</span>  </div> | <div class="line"><a name="l00191"></a><span class="lineno">  191</span>       std::queue<std::string> fifo;</div> | ||||||
| <div class="line"><a name="l00192"></a><span class="lineno">  192</span>    };</div> | <div class="line"><a name="l00192"></a><span class="lineno">  192</span>  </div> | ||||||
| <div class="line"><a name="l00193"></a><span class="lineno">  193</span>  </div> | <div class="line"><a name="l00193"></a><span class="lineno">  193</span>    };</div> | ||||||
| <div class="line"><a name="l00194"></a><span class="lineno">  194</span> }</div> | <div class="line"><a name="l00194"></a><span class="lineno">  194</span>  </div> | ||||||
| <div class="line"><a name="l00195"></a><span class="lineno">  195</span>  </div> | <div class="line"><a name="l00195"></a><span class="lineno">  195</span> }</div> | ||||||
| <div class="line"><a name="l00196"></a><span class="lineno">  196</span> <span class="preprocessor">#endif</span></div> | <div class="line"><a name="l00196"></a><span class="lineno">  196</span>  </div> | ||||||
| <div class="line"><a name="l00197"></a><span class="lineno">  197</span>  </div> | <div class="line"><a name="l00197"></a><span class="lineno">  197</span> <span class="preprocessor">#endif</span></div> | ||||||
|  | <div class="line"><a name="l00198"></a><span class="lineno">  198</span>  </div> | ||||||
| <div class="ttc" id="aclasscore_1_1EPoll_html"><div class="ttname"><a href="classcore_1_1EPoll.html">core::EPoll</a></div><div class="ttdef"><b>Definition:</b> EPoll.h:31</div></div> | <div class="ttc" id="aclasscore_1_1EPoll_html"><div class="ttname"><a href="classcore_1_1EPoll.html">core::EPoll</a></div><div class="ttdef"><b>Definition:</b> EPoll.h:31</div></div> | ||||||
| <div class="ttc" id="aclasscore_1_1Socket_html"><div class="ttname"><a href="classcore_1_1Socket.html">core::Socket</a></div><div class="ttdef"><b>Definition:</b> Socket.h:34</div></div> | <div class="ttc" id="aclasscore_1_1Socket_html"><div class="ttname"><a href="classcore_1_1Socket.html">core::Socket</a></div><div class="ttdef"><b>Definition:</b> Socket.h:34</div></div> | ||||||
| <div class="ttc" id="aclasscore_1_1Socket_html_a06ba54744530439d4131e6aba4623d08"><div class="ttname"><a href="classcore_1_1Socket.html#a06ba54744530439d4131e6aba4623d08">core::Socket::getDescriptor</a></div><div class="ttdeci">int getDescriptor()</div><div class="ttdoc">Get the descriptor for the socket.</div><div class="ttdef"><b>Definition:</b> Socket.cpp:44</div></div> | <div class="ttc" id="aclasscore_1_1Socket_html_a06ba54744530439d4131e6aba4623d08"><div class="ttname"><a href="classcore_1_1Socket.html#a06ba54744530439d4131e6aba4623d08">core::Socket::getDescriptor</a></div><div class="ttdeci">int getDescriptor()</div><div class="ttdoc">Get the descriptor for the socket.</div><div class="ttdef"><b>Definition:</b> Socket.cpp:43</div></div> | ||||||
| <div class="ttc" id="aclasscore_1_1Socket_html_a1a045e15fb5851d666a21be05ac4c5d7"><div class="ttname"><a href="classcore_1_1Socket.html#a1a045e15fb5851d666a21be05ac4c5d7">core::Socket::eventReceived</a></div><div class="ttdeci">bool eventReceived(struct epoll_event event, long long eventId)</div><div class="ttdoc">Parse epoll event and call specified callbacks.</div><div class="ttdef"><b>Definition:</b> Socket.cpp:65</div></div> | <div class="ttc" id="aclasscore_1_1Socket_html_a1a045e15fb5851d666a21be05ac4c5d7"><div class="ttname"><a href="classcore_1_1Socket.html#a1a045e15fb5851d666a21be05ac4c5d7">core::Socket::eventReceived</a></div><div class="ttdeci">bool eventReceived(struct epoll_event event, long long eventId)</div><div class="ttdoc">Parse epoll event and call specified callbacks.</div><div class="ttdef"><b>Definition:</b> Socket.cpp:64</div></div> | ||||||
| <div class="ttc" id="aclasscore_1_1Socket_html_a23b9824653bbe4652a716acb828665b1"><div class="ttname"><a href="classcore_1_1Socket.html#a23b9824653bbe4652a716acb828665b1">core::Socket::onRegistered</a></div><div class="ttdeci">virtual void onRegistered()</div><div class="ttdoc">Called after the socket has been registered with epoll processing.</div><div class="ttdef"><b>Definition:</b> Socket.cpp:59</div></div> | <div class="ttc" id="aclasscore_1_1Socket_html_a23b9824653bbe4652a716acb828665b1"><div class="ttname"><a href="classcore_1_1Socket.html#a23b9824653bbe4652a716acb828665b1">core::Socket::onRegistered</a></div><div class="ttdeci">virtual void onRegistered()</div><div class="ttdoc">Called after the socket has been registered with epoll processing.</div><div class="ttdef"><b>Definition:</b> Socket.cpp:58</div></div> | ||||||
| <div class="ttc" id="aclasscore_1_1Socket_html_a46ed2e240852d3fa949979ebbc4ac875"><div class="ttname"><a href="classcore_1_1Socket.html#a46ed2e240852d3fa949979ebbc4ac875">core::Socket::receiveData</a></div><div class="ttdeci">virtual void receiveData(coreutils::ZString &buffer)</div><div class="ttdef"><b>Definition:</b> Socket.cpp:94</div></div> | <div class="ttc" id="aclasscore_1_1Socket_html_a46ed2e240852d3fa949979ebbc4ac875"><div class="ttname"><a href="classcore_1_1Socket.html#a46ed2e240852d3fa949979ebbc4ac875">core::Socket::receiveData</a></div><div class="ttdeci">virtual void receiveData(coreutils::ZString &buffer)</div><div class="ttdef"><b>Definition:</b> Socket.cpp:94</div></div> | ||||||
| <div class="ttc" id="aclasscore_1_1Socket_html_a4c3f87fd1de3c9eab4bf5efbb30ce87d"><div class="ttname"><a href="classcore_1_1Socket.html#a4c3f87fd1de3c9eab4bf5efbb30ce87d">core::Socket::Socket</a></div><div class="ttdeci">Socket(EPoll &ePoll, std::string text="")</div><div class="ttdef"><b>Definition:</b> Socket.cpp:11</div></div> | <div class="ttc" id="aclasscore_1_1Socket_html_a4c3f87fd1de3c9eab4bf5efbb30ce87d"><div class="ttname"><a href="classcore_1_1Socket.html#a4c3f87fd1de3c9eab4bf5efbb30ce87d">core::Socket::Socket</a></div><div class="ttdeci">Socket(EPoll &ePoll, std::string text="")</div><div class="ttdef"><b>Definition:</b> Socket.cpp:11</div></div> | ||||||
| <div class="ttc" id="aclasscore_1_1Socket_html_a4ed587f31d080115c00828f90b1e28bb"><div class="ttname"><a href="classcore_1_1Socket.html#a4ed587f31d080115c00828f90b1e28bb">core::Socket::write</a></div><div class="ttdeci">int write(std::string data, Socket *sender)</div><div class="ttdef"><b>Definition:</b> Socket.cpp:137</div></div> | <div class="ttc" id="aclasscore_1_1Socket_html_a4ed587f31d080115c00828f90b1e28bb"><div class="ttname"><a href="classcore_1_1Socket.html#a4ed587f31d080115c00828f90b1e28bb">core::Socket::write</a></div><div class="ttdeci">int write(std::string data, Socket *sender)</div><div class="ttdef"><b>Definition:</b> Socket.cpp:137</div></div> | ||||||
| <div class="ttc" id="aclasscore_1_1Socket_html_a81e5ee3e17834166d97c6e8b7dfe0da0"><div class="ttname"><a href="classcore_1_1Socket.html#a81e5ee3e17834166d97c6e8b7dfe0da0">core::Socket::onRegister</a></div><div class="ttdeci">virtual void onRegister()</div><div class="ttdoc">Called before the socket has registered with the epoll processing.</div><div class="ttdef"><b>Definition:</b> Socket.cpp:57</div></div> | <div class="ttc" id="aclasscore_1_1Socket_html_a81e5ee3e17834166d97c6e8b7dfe0da0"><div class="ttname"><a href="classcore_1_1Socket.html#a81e5ee3e17834166d97c6e8b7dfe0da0">core::Socket::onRegister</a></div><div class="ttdeci">virtual void onRegister()</div><div class="ttdoc">Called before the socket has registered with the epoll processing.</div><div class="ttdef"><b>Definition:</b> Socket.cpp:56</div></div> | ||||||
| <div class="ttc" id="aclasscore_1_1Socket_html_aa5003845f8ae464ad2fa206176381be0"><div class="ttname"><a href="classcore_1_1Socket.html#aa5003845f8ae464ad2fa206176381be0">core::Socket::~Socket</a></div><div class="ttdeci">virtual ~Socket()</div><div class="ttdef"><b>Definition:</b> Socket.cpp:16</div></div> | <div class="ttc" id="aclasscore_1_1Socket_html_aa5003845f8ae464ad2fa206176381be0"><div class="ttname"><a href="classcore_1_1Socket.html#aa5003845f8ae464ad2fa206176381be0">core::Socket::~Socket</a></div><div class="ttdeci">virtual ~Socket()</div><div class="ttdef"><b>Definition:</b> Socket.cpp:16</div></div> | ||||||
| <div class="ttc" id="aclasscore_1_1Socket_html_ac44f6ae3196a8a3e09a6a85fcf495762"><div class="ttname"><a href="classcore_1_1Socket.html#ac44f6ae3196a8a3e09a6a85fcf495762">core::Socket::setDescriptor</a></div><div class="ttdeci">void setDescriptor(int descriptor)</div><div class="ttdoc">Set the descriptor for the socket.</div><div class="ttdef"><b>Definition:</b> Socket.cpp:29</div></div> | <div class="ttc" id="aclasscore_1_1Socket_html_ac44f6ae3196a8a3e09a6a85fcf495762"><div class="ttname"><a href="classcore_1_1Socket.html#ac44f6ae3196a8a3e09a6a85fcf495762">core::Socket::setDescriptor</a></div><div class="ttdeci">void setDescriptor(int descriptor)</div><div class="ttdoc">Set the descriptor for the socket.</div><div class="ttdef"><b>Definition:</b> Socket.cpp:28</div></div> | ||||||
| <div class="ttc" id="aclasscore_1_1Socket_html_ac8d6a2c54696eb6fc2024cf6bcf6b4e5"><div class="ttname"><a href="classcore_1_1Socket.html#ac8d6a2c54696eb6fc2024cf6bcf6b4e5">core::Socket::onDataReceived</a></div><div class="ttdeci">virtual void onDataReceived(std::string data)</div><div class="ttdoc">Called when data is received from the socket.</div><div class="ttdef"><b>Definition:</b> Socket.cpp:86</div></div> | <div class="ttc" id="aclasscore_1_1Socket_html_ac8d6a2c54696eb6fc2024cf6bcf6b4e5"><div class="ttname"><a href="classcore_1_1Socket.html#ac8d6a2c54696eb6fc2024cf6bcf6b4e5">core::Socket::onDataReceived</a></div><div class="ttdeci">virtual void onDataReceived(std::string data)</div><div class="ttdoc">Called when data is received from the socket.</div><div class="ttdef"><b>Definition:</b> Socket.cpp:86</div></div> | ||||||
| <div class="ttc" id="aclasscore_1_1Socket_html_ae9be59697c2b2e5efb19aaae3ba943d2"><div class="ttname"><a href="classcore_1_1Socket.html#ae9be59697c2b2e5efb19aaae3ba943d2">core::Socket::onUnregistered</a></div><div class="ttdeci">virtual void onUnregistered()</div><div class="ttdoc">Called when the socket has finished unregistering for the epoll processing.</div><div class="ttdef"><b>Definition:</b> Socket.cpp:63</div></div> | <div class="ttc" id="aclasscore_1_1Socket_html_ae9be59697c2b2e5efb19aaae3ba943d2"><div class="ttname"><a href="classcore_1_1Socket.html#ae9be59697c2b2e5efb19aaae3ba943d2">core::Socket::onUnregistered</a></div><div class="ttdeci">virtual void onUnregistered()</div><div class="ttdoc">Called when the socket has finished unregistering for the epoll processing.</div><div class="ttdef"><b>Definition:</b> Socket.cpp:62</div></div> | ||||||
| <div class="ttc" id="aclasscore_1_1Socket_html_af2d1b6de7a64a9d446b0305b6ec47b31"><div class="ttname"><a href="classcore_1_1Socket.html#af2d1b6de7a64a9d446b0305b6ec47b31">core::Socket::shutdown</a></div><div class="ttdeci">void shutdown(std::string text="unknown")</div><div class="ttdef"><b>Definition:</b> Socket.cpp:155</div></div> | <div class="ttc" id="aclasscore_1_1Socket_html_af2d1b6de7a64a9d446b0305b6ec47b31"><div class="ttname"><a href="classcore_1_1Socket.html#af2d1b6de7a64a9d446b0305b6ec47b31">core::Socket::shutdown</a></div><div class="ttdeci">void shutdown(std::string text="unknown")</div><div class="ttdef"><b>Definition:</b> Socket.cpp:156</div></div> | ||||||
| </div><!-- fragment --></div><!-- contents --> | </div><!-- fragment --></div><!-- contents --> | ||||||
| <!-- start footer part --> | <!-- start footer part --> | ||||||
| <hr class="footer"/><address class="footer"><small> | <hr class="footer"/><address class="footer"><small> | ||||||
|  | |||||||
| @ -111,8 +111,8 @@ $(function() { | |||||||
|   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setColor</b>(int color) (defined in <a class="el" href="classcore_1_1TerminalSession.html">core::TerminalSession</a>)</td><td class="entry"><a class="el" href="classcore_1_1TerminalSession.html">core::TerminalSession</a></td><td class="entry"></td></tr> |   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setColor</b>(int color) (defined in <a class="el" href="classcore_1_1TerminalSession.html">core::TerminalSession</a>)</td><td class="entry"><a class="el" href="classcore_1_1TerminalSession.html">core::TerminalSession</a></td><td class="entry"></td></tr> | ||||||
|   <tr><td class="entry"><a class="el" href="classcore_1_1TerminalSession.html#aa9939cbe36c08e1a0b8413a96ca251fa">setCursorLocation</a>(int x, int y)</td><td class="entry"><a class="el" href="classcore_1_1TerminalSession.html">core::TerminalSession</a></td><td class="entry"></td></tr> |   <tr><td class="entry"><a class="el" href="classcore_1_1TerminalSession.html#aa9939cbe36c08e1a0b8413a96ca251fa">setCursorLocation</a>(int x, int y)</td><td class="entry"><a class="el" href="classcore_1_1TerminalSession.html">core::TerminalSession</a></td><td class="entry"></td></tr> | ||||||
|   <tr class="even"><td class="entry"><a class="el" href="classcore_1_1Socket.html#ac44f6ae3196a8a3e09a6a85fcf495762">setDescriptor</a>(int descriptor)</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"></td></tr> |   <tr class="even"><td class="entry"><a class="el" href="classcore_1_1Socket.html#ac44f6ae3196a8a3e09a6a85fcf495762">setDescriptor</a>(int descriptor)</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"></td></tr> | ||||||
|   <tr bgcolor="#f0f0f0"><td class="entry"><b>shutDown</b> (defined in <a class="el" href="classcore_1_1Socket.html">core::Socket</a>)</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"></td></tr> |   <tr><td class="entry"><a class="el" href="classcore_1_1Socket.html#af2d1b6de7a64a9d446b0305b6ec47b31">shutdown</a>(std::string text="unknown")</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"></td></tr> | ||||||
|   <tr class="even"><td class="entry"><a class="el" href="classcore_1_1Socket.html#af2d1b6de7a64a9d446b0305b6ec47b31">shutdown</a>(std::string text="unknown")</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"></td></tr> |   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>shutDown</b> (defined in <a class="el" href="classcore_1_1Socket.html">core::Socket</a>)</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"></td></tr> | ||||||
|   <tr><td class="entry"><a class="el" href="classcore_1_1Socket.html#a4c3f87fd1de3c9eab4bf5efbb30ce87d">Socket</a>(EPoll &ePoll, std::string text="")</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"></td></tr> |   <tr><td class="entry"><a class="el" href="classcore_1_1Socket.html#a4c3f87fd1de3c9eab4bf5efbb30ce87d">Socket</a>(EPoll &ePoll, std::string text="")</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"></td></tr> | ||||||
|   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>TCPSession</b>(EPoll &ePoll, TCPServer &server, std::string text="") (defined in <a class="el" href="classcore_1_1TCPSession.html">core::TCPSession</a>)</td><td class="entry"><a class="el" href="classcore_1_1TCPSession.html">core::TCPSession</a></td><td class="entry"></td></tr> |   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>TCPSession</b>(EPoll &ePoll, TCPServer &server, std::string text="") (defined in <a class="el" href="classcore_1_1TCPSession.html">core::TCPSession</a>)</td><td class="entry"><a class="el" href="classcore_1_1TCPSession.html">core::TCPSession</a></td><td class="entry"></td></tr> | ||||||
|   <tr bgcolor="#f0f0f0"><td class="entry"><b>TCPSocket</b>(EPoll &ePoll) (defined in <a class="el" href="classcore_1_1TCPSocket.html">core::TCPSocket</a>)</td><td class="entry"><a class="el" href="classcore_1_1TCPSocket.html">core::TCPSocket</a></td><td class="entry"></td></tr> |   <tr bgcolor="#f0f0f0"><td class="entry"><b>TCPSocket</b>(EPoll &ePoll) (defined in <a class="el" href="classcore_1_1TCPSocket.html">core::TCPSocket</a>)</td><td class="entry"><a class="el" href="classcore_1_1TCPSocket.html">core::TCPSocket</a></td><td class="entry"></td></tr> | ||||||
|  | |||||||
| @ -90,8 +90,8 @@ $(function() { | |||||||
|   <tr bgcolor="#f0f0f0"><td class="entry"><b>reset</b> (defined in <a class="el" href="classcore_1_1Socket.html">core::Socket</a>)</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"></td></tr> |   <tr bgcolor="#f0f0f0"><td class="entry"><b>reset</b> (defined in <a class="el" href="classcore_1_1Socket.html">core::Socket</a>)</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"></td></tr> | ||||||
|   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setBufferSize</b>(int length) (defined in <a class="el" href="classcore_1_1Socket.html">core::Socket</a>)</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"><span class="mlabel">protected</span></td></tr> |   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setBufferSize</b>(int length) (defined in <a class="el" href="classcore_1_1Socket.html">core::Socket</a>)</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"><span class="mlabel">protected</span></td></tr> | ||||||
|   <tr><td class="entry"><a class="el" href="classcore_1_1Socket.html#ac44f6ae3196a8a3e09a6a85fcf495762">setDescriptor</a>(int descriptor)</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"></td></tr> |   <tr><td class="entry"><a class="el" href="classcore_1_1Socket.html#ac44f6ae3196a8a3e09a6a85fcf495762">setDescriptor</a>(int descriptor)</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"></td></tr> | ||||||
|   <tr class="even"><td class="entry"><a class="el" href="classcore_1_1Socket.html#af2d1b6de7a64a9d446b0305b6ec47b31">shutdown</a>(std::string text="unknown")</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"></td></tr> |   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>shutDown</b> (defined in <a class="el" href="classcore_1_1Socket.html">core::Socket</a>)</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"></td></tr> | ||||||
|   <tr bgcolor="#f0f0f0"><td class="entry"><b>shutDown</b> (defined in <a class="el" href="classcore_1_1Socket.html">core::Socket</a>)</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"></td></tr> |   <tr><td class="entry"><a class="el" href="classcore_1_1Socket.html#af2d1b6de7a64a9d446b0305b6ec47b31">shutdown</a>(std::string text="unknown")</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"></td></tr> | ||||||
|   <tr class="even"><td class="entry"><a class="el" href="classcore_1_1Socket.html#a4c3f87fd1de3c9eab4bf5efbb30ce87d">Socket</a>(EPoll &ePoll, std::string text="")</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"></td></tr> |   <tr class="even"><td class="entry"><a class="el" href="classcore_1_1Socket.html#a4c3f87fd1de3c9eab4bf5efbb30ce87d">Socket</a>(EPoll &ePoll, std::string text="")</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"></td></tr> | ||||||
|   <tr bgcolor="#f0f0f0"><td class="entry"><b>TCPSocket</b>(EPoll &ePoll) (defined in <a class="el" href="classcore_1_1TCPSocket.html">core::TCPSocket</a>)</td><td class="entry"><a class="el" href="classcore_1_1TCPSocket.html">core::TCPSocket</a></td><td class="entry"></td></tr> |   <tr bgcolor="#f0f0f0"><td class="entry"><b>TCPSocket</b>(EPoll &ePoll) (defined in <a class="el" href="classcore_1_1TCPSocket.html">core::TCPSocket</a>)</td><td class="entry"><a class="el" href="classcore_1_1TCPSocket.html">core::TCPSocket</a></td><td class="entry"></td></tr> | ||||||
|   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>TCPSocket</b>(EPoll &ePoll, std::string text) (defined in <a class="el" href="classcore_1_1TCPSocket.html">core::TCPSocket</a>)</td><td class="entry"><a class="el" href="classcore_1_1TCPSocket.html">core::TCPSocket</a></td><td class="entry"></td></tr> |   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>TCPSocket</b>(EPoll &ePoll, std::string text) (defined in <a class="el" href="classcore_1_1TCPSocket.html">core::TCPSocket</a>)</td><td class="entry"><a class="el" href="classcore_1_1TCPSocket.html">core::TCPSocket</a></td><td class="entry"></td></tr> | ||||||
|  | |||||||
| @ -99,8 +99,8 @@ $(function() { | |||||||
|   <tr class="even"><td class="entry"><a class="el" href="classcore_1_1TCPSession.html#a836fb3fd5ee543ebc93262a980ae88b5">setBlockSize</a>(int size=0)</td><td class="entry"><a class="el" href="classcore_1_1TCPSession.html">core::TCPSession</a></td><td class="entry"><span class="mlabel">protected</span></td></tr> |   <tr class="even"><td class="entry"><a class="el" href="classcore_1_1TCPSession.html#a836fb3fd5ee543ebc93262a980ae88b5">setBlockSize</a>(int size=0)</td><td class="entry"><a class="el" href="classcore_1_1TCPSession.html">core::TCPSession</a></td><td class="entry"><span class="mlabel">protected</span></td></tr> | ||||||
|   <tr bgcolor="#f0f0f0"><td class="entry"><b>setBufferSize</b>(int length) (defined in <a class="el" href="classcore_1_1Socket.html">core::Socket</a>)</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"><span class="mlabel">protected</span></td></tr> |   <tr bgcolor="#f0f0f0"><td class="entry"><b>setBufferSize</b>(int length) (defined in <a class="el" href="classcore_1_1Socket.html">core::Socket</a>)</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"><span class="mlabel">protected</span></td></tr> | ||||||
|   <tr class="even"><td class="entry"><a class="el" href="classcore_1_1Socket.html#ac44f6ae3196a8a3e09a6a85fcf495762">setDescriptor</a>(int descriptor)</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"></td></tr> |   <tr class="even"><td class="entry"><a class="el" href="classcore_1_1Socket.html#ac44f6ae3196a8a3e09a6a85fcf495762">setDescriptor</a>(int descriptor)</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"></td></tr> | ||||||
|   <tr bgcolor="#f0f0f0"><td class="entry"><b>shutDown</b> (defined in <a class="el" href="classcore_1_1Socket.html">core::Socket</a>)</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"></td></tr> |   <tr><td class="entry"><a class="el" href="classcore_1_1Socket.html#af2d1b6de7a64a9d446b0305b6ec47b31">shutdown</a>(std::string text="unknown")</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"></td></tr> | ||||||
|   <tr class="even"><td class="entry"><a class="el" href="classcore_1_1Socket.html#af2d1b6de7a64a9d446b0305b6ec47b31">shutdown</a>(std::string text="unknown")</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"></td></tr> |   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>shutDown</b> (defined in <a class="el" href="classcore_1_1Socket.html">core::Socket</a>)</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"></td></tr> | ||||||
|   <tr><td class="entry"><a class="el" href="classcore_1_1Socket.html#a4c3f87fd1de3c9eab4bf5efbb30ce87d">Socket</a>(EPoll &ePoll, std::string text="")</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"></td></tr> |   <tr><td class="entry"><a class="el" href="classcore_1_1Socket.html#a4c3f87fd1de3c9eab4bf5efbb30ce87d">Socket</a>(EPoll &ePoll, std::string text="")</td><td class="entry"><a class="el" href="classcore_1_1Socket.html">core::Socket</a></td><td class="entry"></td></tr> | ||||||
|   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>TCPSession</b>(EPoll &ePoll, TCPServer &server, std::string text="") (defined in <a class="el" href="classcore_1_1TCPSession.html">core::TCPSession</a>)</td><td class="entry"><a class="el" href="classcore_1_1TCPSession.html">core::TCPSession</a></td><td class="entry"></td></tr> |   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>TCPSession</b>(EPoll &ePoll, TCPServer &server, std::string text="") (defined in <a class="el" href="classcore_1_1TCPSession.html">core::TCPSession</a>)</td><td class="entry"><a class="el" href="classcore_1_1TCPSession.html">core::TCPSession</a></td><td class="entry"></td></tr> | ||||||
|   <tr bgcolor="#f0f0f0"><td class="entry"><b>TCPSocket</b>(EPoll &ePoll) (defined in <a class="el" href="classcore_1_1TCPSocket.html">core::TCPSocket</a>)</td><td class="entry"><a class="el" href="classcore_1_1TCPSocket.html">core::TCPSocket</a></td><td class="entry"></td></tr> |   <tr bgcolor="#f0f0f0"><td class="entry"><b>TCPSocket</b>(EPoll &ePoll) (defined in <a class="el" href="classcore_1_1TCPSocket.html">core::TCPSocket</a>)</td><td class="entry"><a class="el" href="classcore_1_1TCPSocket.html">core::TCPSocket</a></td><td class="entry"></td></tr> | ||||||
|  | |||||||
| @ -1,9 +1,5 @@ | |||||||
| var searchData= | var searchData= | ||||||
| [ | [ | ||||||
|   ['whitelist_71',['whiteList',['../classcore_1_1TCPServer.html#abad6300b6234ca8b69cef9128755342e',1,'core::TCPServer']]], |   ['whitelist_71',['whiteList',['../classcore_1_1TCPServer.html#abad6300b6234ca8b69cef9128755342e',1,'core::TCPServer']]], | ||||||
| <<<<<<< HEAD |  | ||||||
|   ['write_72',['write',['../classcore_1_1Socket.html#a4ed587f31d080115c00828f90b1e28bb',1,'core::Socket']]] |   ['write_72',['write',['../classcore_1_1Socket.html#a4ed587f31d080115c00828f90b1e28bb',1,'core::Socket']]] | ||||||
| ======= |  | ||||||
|   ['write_72',['write',['../classcore_1_1Socket.html#a1413c826307ef0f29d7457770af675e3',1,'core::Socket']]] |  | ||||||
| >>>>>>> subscription |  | ||||||
| ]; | ]; | ||||||
|  | |||||||
| @ -1,8 +1,4 @@ | |||||||
| var searchData= | var searchData= | ||||||
| [ | [ | ||||||
| <<<<<<< HEAD |  | ||||||
|   ['write_146',['write',['../classcore_1_1Socket.html#a4ed587f31d080115c00828f90b1e28bb',1,'core::Socket']]] |   ['write_146',['write',['../classcore_1_1Socket.html#a4ed587f31d080115c00828f90b1e28bb',1,'core::Socket']]] | ||||||
| ======= |  | ||||||
|   ['write_146',['write',['../classcore_1_1Socket.html#a1413c826307ef0f29d7457770af675e3',1,'core::Socket']]] |  | ||||||
| >>>>>>> subscription |  | ||||||
| ]; | ]; | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Brad Arant
						Brad Arant