<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>Yate: JBSocket Class Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.5.7.1 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div class="navpath"><a class="el" href="namespaceTelEngine.html">TelEngine</a>::<a class="el" href="classTelEngine_1_1JBSocket.html">JBSocket</a> </div> </div> <div class="contents"> <h1>JBSocket Class Reference</h1><!-- doxytag: class="TelEngine::JBSocket" -->A Jabber streams's socket. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="yatejabber_8h-source.html">yatejabber.h</a>></code> <p> <p> <a href="classTelEngine_1_1JBSocket-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1JBSocket.html#3e5dcecefb24981bc0a1c2a7d33c9d16">JBSocket</a> (<a class="el" href="classTelEngine_1_1JBEngine.html">JBEngine</a> *engine, <a class="el" href="classTelEngine_1_1JBStream.html">JBStream</a> *stream, const char *address, int port)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1JBSocket.html#e4a043ca4cd19dfce8c37e8beca00cec">~JBSocket</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1JBSocket.html#8d985300b138b6c5556ab17ed4df3b38">valid</a> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classTelEngine_1_1SocketAddr.html">SocketAddr</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1JBSocket.html#37daa045dcf7a1b182cda22f09ae61a4">addr</a> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classTelEngine_1_1String.html">String</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1JBSocket.html#190258a12474f26b4d1a321ca52e0e7b">error</a> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1JBSocket.html#3fbaeb051583e91f403e864cc4ae1b7f">connect</a> (bool &terminated, const char *newAddr, int newPort=0)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1JBSocket.html#58f9a9611f57b7c4b032e1463b8b0e5d">terminate</a> (bool shutdown=false)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1JBSocket.html#fd8700e4e8f574b8997a7520630bdb9b">recv</a> (char *buffer, unsigned int &len)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1JBSocket.html#3b21c96b0c1b6b78c1a77d56a6bee90c">send</a> (const char *buffer, unsigned int &len)</td></tr> <tr><td colspan="2"><br><h2>Friends</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c67873bce9410a135bf268db1073612e"></a><!-- doxytag: member="TelEngine::JBSocket::JBStream" ref="c67873bce9410a135bf268db1073612e" args="" --> class </td><td class="memItemRight" valign="bottom"><b>JBStream</b></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> A Jabber streams's socket. <p> A socket used used to transport data for a Jabber stream <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="3e5dcecefb24981bc0a1c2a7d33c9d16"></a><!-- doxytag: member="TelEngine::JBSocket::JBSocket" ref="3e5dcecefb24981bc0a1c2a7d33c9d16" args="(JBEngine *engine, JBStream *stream, const char *address, int port)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classTelEngine_1_1JBSocket.html">JBSocket</a> </td> <td>(</td> <td class="paramtype"><a class="el" href="classTelEngine_1_1JBEngine.html">JBEngine</a> * </td> <td class="paramname"> <em>engine</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classTelEngine_1_1JBStream.html">JBStream</a> * </td> <td class="paramname"> <em>stream</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>address</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>port</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Constructor. Build socket for an outgoing stream <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>engine</em> </td><td>The Jabber engine </td></tr> <tr><td valign="top"></td><td valign="top"><em>stream</em> </td><td>The stream owning this socket </td></tr> <tr><td valign="top"></td><td valign="top"><em>address</em> </td><td>The address used to connect to </td></tr> <tr><td valign="top"></td><td valign="top"><em>port</em> </td><td>Port used to connect to remote server </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="e4a043ca4cd19dfce8c37e8beca00cec"></a><!-- doxytag: member="TelEngine::JBSocket::~JBSocket" ref="e4a043ca4cd19dfce8c37e8beca00cec" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">~<a class="el" href="classTelEngine_1_1JBSocket.html">JBSocket</a> </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Destructor. Close the socket </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="37daa045dcf7a1b182cda22f09ae61a4"></a><!-- doxytag: member="TelEngine::JBSocket::addr" ref="37daa045dcf7a1b182cda22f09ae61a4" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="classTelEngine_1_1SocketAddr.html">SocketAddr</a>& addr </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get the remote peer's address <dl class="return" compact><dt><b>Returns:</b></dt><dd>The remote peer's address </dd></dl> </div> </div><p> <a class="anchor" name="3fbaeb051583e91f403e864cc4ae1b7f"></a><!-- doxytag: member="TelEngine::JBSocket::connect" ref="3fbaeb051583e91f403e864cc4ae1b7f" args="(bool &terminated, const char *newAddr, int newPort=0)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool connect </td> <td>(</td> <td class="paramtype">bool & </td> <td class="paramname"> <em>terminated</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>newAddr</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>newPort</em> = <code>0</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Connect the socket <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>terminated</em> </td><td>True if false is returned and the socket was terminated while connecting </td></tr> <tr><td valign="top"></td><td valign="top"><em>newAddr</em> </td><td>Optional address to connect to </td></tr> <tr><td valign="top"></td><td valign="top"><em>newPort</em> </td><td>Optional port to connect to </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>False on failure </dd></dl> </div> </div><p> <a class="anchor" name="190258a12474f26b4d1a321ca52e0e7b"></a><!-- doxytag: member="TelEngine::JBSocket::error" ref="190258a12474f26b4d1a321ca52e0e7b" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="classTelEngine_1_1String.html">String</a>& error </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get last connect/send/receive error text <dl class="return" compact><dt><b>Returns:</b></dt><dd>Last error text </dd></dl> </div> </div><p> <a class="anchor" name="fd8700e4e8f574b8997a7520630bdb9b"></a><!-- doxytag: member="TelEngine::JBSocket::recv" ref="fd8700e4e8f574b8997a7520630bdb9b" args="(char *buffer, unsigned int &len)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool recv </td> <td>(</td> <td class="paramtype">char * </td> <td class="paramname"> <em>buffer</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int & </td> <td class="paramname"> <em>len</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Read data from socket <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>buffer</em> </td><td>Destination buffer </td></tr> <tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>The number of bytes to read. On exit contains the number of bytes actually read </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>False on socket error </dd></dl> </div> </div><p> <a class="anchor" name="3b21c96b0c1b6b78c1a77d56a6bee90c"></a><!-- doxytag: member="TelEngine::JBSocket::send" ref="3b21c96b0c1b6b78c1a77d56a6bee90c" args="(const char *buffer, unsigned int &len)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool send </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"> <em>buffer</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int & </td> <td class="paramname"> <em>len</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Write data to socket <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>buffer</em> </td><td>Source buffer </td></tr> <tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>The number of bytes to send </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>False on socket error </dd></dl> </div> </div><p> <a class="anchor" name="58f9a9611f57b7c4b032e1463b8b0e5d"></a><!-- doxytag: member="TelEngine::JBSocket::terminate" ref="58f9a9611f57b7c4b032e1463b8b0e5d" args="(bool shutdown=false)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void terminate </td> <td>(</td> <td class="paramtype">bool </td> <td class="paramname"> <em>shutdown</em> = <code>false</code> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Terminate the socket <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>shutdown</em> </td><td>True to shut down, false to asynchronously terminate the socket </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="8d985300b138b6c5556ab17ed4df3b38"></a><!-- doxytag: member="TelEngine::JBSocket::valid" ref="8d985300b138b6c5556ab17ed4df3b38" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool valid </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Check if the socket is valid <dl class="return" compact><dt><b>Returns:</b></dt><dd>True if the socket is valid. </dd></dl> </div> </div><p> <hr>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="yatejabber_8h-source.html">yatejabber.h</a></ul> </div> <hr size="1"><address style="text-align: right;"><small>Generated on Sun Dec 7 21:36:13 2008 for Yate by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address> </body> </html>