<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>scim: scim::Socket 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.0 --> <div class="tabs"> <ul> <li><a href="main.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li id="current"><a href="classes.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="classes.html"><span>Alphabetical List</span></a></li> <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="nav"> <a class="el" href="a00157.html">scim</a>::<a class="el" href="a00104.html">Socket</a></div> <h1>scim::Socket Class Reference<br> <small> [<a class="el" href="a00165.html">SocketCommunication</a>]</small> </h1><!-- doxytag: class="scim::Socket" --><a class="el" href="a00104.html">Socket</a> communication class. <a href="#_details">More...</a> <p> <code>#include <scim_socket.h></code> <p> Inheritance diagram for scim::Socket:<p><center><img src="a00657.png" border="0" usemap="#a00658" alt="Inheritance graph"></center> <map name="a00658"> <area href="a00106.html" shape="rect" coords="7,83,148,107" alt=""> <area href="a00108.html" shape="rect" coords="172,83,313,107" alt=""> </map> <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center><a href="a00659.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="a00104.html#6a721741969f034798d8f3caa8d99701">Socket</a> (int id=-1)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a <a class="el" href="a00104.html">Socket</a> object from an already created socket_id. <a href="#6a721741969f034798d8f3caa8d99701"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00104.html#b0a7b7a9bf43e105a3174d0e18f43396">~Socket</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <a href="#b0a7b7a9bf43e105a3174d0e18f43396"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00104.html#9af697cafddd8aa23e77c59aa1b6d447">valid</a> () const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Check if the socket is valid. <a href="#9af697cafddd8aa23e77c59aa1b6d447"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00104.html#16106d57e61879eaa928622baeb20f39">read</a> (void *buf, size_t size) const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Read data from socket. <a href="#16106d57e61879eaa928622baeb20f39"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00104.html#01126f8d90ac403d6f8fb88dde487f6e">read_with_timeout</a> (void *buf, size_t size, int timeout) const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">read data from socket with a timeout. <a href="#01126f8d90ac403d6f8fb88dde487f6e"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00104.html#c0451b8460cf0d8ed90ef5ae58ba2837">write</a> (const void *buf, size_t size) const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Write data to socket. <a href="#c0451b8460cf0d8ed90ef5ae58ba2837"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00104.html#ee788aa6d428c4b115bd96cf5c4285c7">wait_for_data</a> (int timeout=-1) const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Wait until there are some data ready to read. <a href="#ee788aa6d428c4b115bd96cf5c4285c7"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00104.html#ec6e95a915c65742fb23b9d872f23e10">get_error_number</a> () const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the number of the last occurred error. <a href="#ec6e95a915c65742fb23b9d872f23e10"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00157.html#e6432a785654dd7fbfe52e8dd8cd7799">String</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00104.html#69e702acf37bf5e1ae750266c07a0ea5">get_error_message</a> () const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the message of the last occurred error. <a href="#69e702acf37bf5e1ae750266c07a0ea5"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00104.html#ee6d9156479f959f3d79262c0b655998">get_id</a> () const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the socket id. <a href="#ee6d9156479f959f3d79262c0b655998"></a><br></td></tr> <tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00104.html#cf61f7a500a6384d6bc1a8d38eb3232d">connect</a> (const <a class="el" href="a00105.html">SocketAddress</a> &addr) const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Initiate a connection on a socket. <a href="#cf61f7a500a6384d6bc1a8d38eb3232d"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00104.html#b946dc030c1836ffd036c6c5c6bce1fb">bind</a> (const <a class="el" href="a00105.html">SocketAddress</a> &addr) const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Bind a socket to an address, used by <a class="el" href="a00108.html">SocketServer</a>. <a href="#b946dc030c1836ffd036c6c5c6bce1fb"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00104.html#6f2d92f120941aa7b8a9f3c7e5b573a1">listen</a> (int queue_length=5) const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Listen for connections on a socket. <a href="#6f2d92f120941aa7b8a9f3c7e5b573a1"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00104.html#cbd56372deb4825c358a7f948c618b07">accept</a> () const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Accept a connection on the socket, used by <a class="el" href="a00108.html">SocketServer</a>. <a href="#cbd56372deb4825c358a7f948c618b07"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00104.html#22d62a8aaa83542200fefbf076d51272">create</a> (<a class="el" href="a00165.html#gcc123ee748d644961e203b0794004254">SocketFamily</a> family)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a socket for specific family. <a href="#22d62a8aaa83542200fefbf076d51272"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00104.html#5dddb2638795e45a6cc34e2d6be565c0">close</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Close the socket. <a href="#5dddb2638795e45a6cc34e2d6be565c0"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> <a class="el" href="a00104.html">Socket</a> communication class. <p> Class <a class="el" href="a00104.html">Socket</a> provides basic operation of socket, such as bind connect, read, write etc.<p> This class object cannot be created directly by user. Only the object of its derived classes <a class="el" href="a00108.html">SocketServer</a> and <a class="el" href="a00106.html">SocketClient</a> can be created directly. <p> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="6a721741969f034798d8f3caa8d99701"></a><!-- doxytag: member="scim::Socket::Socket" ref="6a721741969f034798d8f3caa8d99701" args="(int id=-1)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">scim::Socket::Socket </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>id</em> = <code>-1</code> </td> <td> ) </td> <td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Create a <a class="el" href="a00104.html">Socket</a> object from an already created socket_id. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>id</em> </td><td>an file id of an existing socket. </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="b0a7b7a9bf43e105a3174d0e18f43396"></a><!-- doxytag: member="scim::Socket::~Socket" ref="b0a7b7a9bf43e105a3174d0e18f43396" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">scim::Socket::~Socket </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Destructor. <p> </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="9af697cafddd8aa23e77c59aa1b6d447"></a><!-- doxytag: member="scim::Socket::valid" ref="9af697cafddd8aa23e77c59aa1b6d447" args="() const" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool scim::Socket::valid </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const</td> </tr> </table> </div> <div class="memdoc"> <p> Check if the socket is valid. <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>true if the socket is ready to read and write. </dd></dl> <p> Reimplemented in <a class="el" href="a00108.html#717bce4e179de4e10593fcfa1015fe76">scim::SocketServer</a>. </div> </div><p> <a class="anchor" name="16106d57e61879eaa928622baeb20f39"></a><!-- doxytag: member="scim::Socket::read" ref="16106d57e61879eaa928622baeb20f39" args="(void *buf, size_t size) const" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int scim::Socket::read </td> <td>(</td> <td class="paramtype">void * </td> <td class="paramname"> <em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>size</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"> const</td> </tr> </table> </div> <div class="memdoc"> <p> Read data from socket. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>buf</em> </td><td>the buffer to store the data. </td></tr> <tr><td valign="top"></td><td valign="top"><em>size</em> </td><td>size of the buffer.</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the amount of data actually read, -1 means error occurred. </dd></dl> </div> </div><p> <a class="anchor" name="01126f8d90ac403d6f8fb88dde487f6e"></a><!-- doxytag: member="scim::Socket::read_with_timeout" ref="01126f8d90ac403d6f8fb88dde487f6e" args="(void *buf, size_t size, int timeout) const" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int scim::Socket::read_with_timeout </td> <td>(</td> <td class="paramtype">void * </td> <td class="paramname"> <em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>size</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>timeout</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"> const</td> </tr> </table> </div> <div class="memdoc"> <p> read data from socket with a timeout. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>buf</em> </td><td>the buffer to store the data. </td></tr> <tr><td valign="top"></td><td valign="top"><em>size</em> </td><td>size of the buffer, and the amount of data to be read. </td></tr> <tr><td valign="top"></td><td valign="top"><em>timeout</em> </td><td>time out in millisecond (1/1000 second), -1 means infinity.</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the amount of data actually read, 0 means the connection is closed, -1 means error occurred. </dd></dl> </div> </div><p> <a class="anchor" name="c0451b8460cf0d8ed90ef5ae58ba2837"></a><!-- doxytag: member="scim::Socket::write" ref="c0451b8460cf0d8ed90ef5ae58ba2837" args="(const void *buf, size_t size) const" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int scim::Socket::write </td> <td>(</td> <td class="paramtype">const void * </td> <td class="paramname"> <em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>size</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"> const</td> </tr> </table> </div> <div class="memdoc"> <p> Write data to socket. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>buf</em> </td><td>the buffer stores the data. </td></tr> <tr><td valign="top"></td><td valign="top"><em>size</em> </td><td>size of the data to be sent.</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the amount of data acutally sent, or -1 if an error occurred. </dd></dl> </div> </div><p> <a class="anchor" name="ee788aa6d428c4b115bd96cf5c4285c7"></a><!-- doxytag: member="scim::Socket::wait_for_data" ref="ee788aa6d428c4b115bd96cf5c4285c7" args="(int timeout=-1) const" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int scim::Socket::wait_for_data </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>timeout</em> = <code>-1</code> </td> <td> ) </td> <td width="100%"> const</td> </tr> </table> </div> <div class="memdoc"> <p> Wait until there are some data ready to read. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>timeout</em> </td><td>time out in millisecond (1/1000 second), -1 means infinity.</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>> 0 if data is OK, == 0 if time is out, < 0 if an error occurred. </dd></dl> </div> </div><p> <a class="anchor" name="ec6e95a915c65742fb23b9d872f23e10"></a><!-- doxytag: member="scim::Socket::get_error_number" ref="ec6e95a915c65742fb23b9d872f23e10" args="() const" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int scim::Socket::get_error_number </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const</td> </tr> </table> </div> <div class="memdoc"> <p> Get the number of the last occurred error. <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the standard errno value. </dd></dl> <p> Reimplemented in <a class="el" href="a00108.html#19199e7a6ccd09d7dfb39a27825ba765">scim::SocketServer</a>. </div> </div><p> <a class="anchor" name="69e702acf37bf5e1ae750266c07a0ea5"></a><!-- doxytag: member="scim::Socket::get_error_message" ref="69e702acf37bf5e1ae750266c07a0ea5" args="() const" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00157.html#e6432a785654dd7fbfe52e8dd8cd7799">String</a> scim::Socket::get_error_message </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const</td> </tr> </table> </div> <div class="memdoc"> <p> Get the message of the last occurred error. <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the error message of the last occurred error. </dd></dl> <p> Reimplemented in <a class="el" href="a00108.html#161ece77771cefc6a3912761b6b18919">scim::SocketServer</a>. </div> </div><p> <a class="anchor" name="ee6d9156479f959f3d79262c0b655998"></a><!-- doxytag: member="scim::Socket::get_id" ref="ee6d9156479f959f3d79262c0b655998" args="() const" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int scim::Socket::get_id </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const</td> </tr> </table> </div> <div class="memdoc"> <p> Get the socket id. <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the file id of this socket object. </dd></dl> </div> </div><p> <a class="anchor" name="cf61f7a500a6384d6bc1a8d38eb3232d"></a><!-- doxytag: member="scim::Socket::connect" ref="cf61f7a500a6384d6bc1a8d38eb3232d" args="(const SocketAddress &addr) const" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool scim::Socket::connect </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00105.html">SocketAddress</a> & </td> <td class="paramname"> <em>addr</em> </td> <td> ) </td> <td width="100%"> const<code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Initiate a connection on a socket. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>addr</em> </td><td>the address to be connected to.</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>true if success. </dd></dl> </div> </div><p> <a class="anchor" name="b946dc030c1836ffd036c6c5c6bce1fb"></a><!-- doxytag: member="scim::Socket::bind" ref="b946dc030c1836ffd036c6c5c6bce1fb" args="(const SocketAddress &addr) const" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool scim::Socket::bind </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00105.html">SocketAddress</a> & </td> <td class="paramname"> <em>addr</em> </td> <td> ) </td> <td width="100%"> const<code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Bind a socket to an address, used by <a class="el" href="a00108.html">SocketServer</a>. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>addr</em> </td><td>the address to be binded to.</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>true if success. </dd></dl> </div> </div><p> <a class="anchor" name="6f2d92f120941aa7b8a9f3c7e5b573a1"></a><!-- doxytag: member="scim::Socket::listen" ref="6f2d92f120941aa7b8a9f3c7e5b573a1" args="(int queue_length=5) const" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool scim::Socket::listen </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>queue_length</em> = <code>5</code> </td> <td> ) </td> <td width="100%"> const<code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Listen for connections on a socket. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>queue_length</em> </td><td>the length of the waiting queue.</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>true if success. </dd></dl> </div> </div><p> <a class="anchor" name="cbd56372deb4825c358a7f948c618b07"></a><!-- doxytag: member="scim::Socket::accept" ref="cbd56372deb4825c358a7f948c618b07" args="() const" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int scim::Socket::accept </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const<code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Accept a connection on the socket, used by <a class="el" href="a00108.html">SocketServer</a>. <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>the id of the accepted client socket, or -1 if an error is occurred. </dd></dl> </div> </div><p> <a class="anchor" name="22d62a8aaa83542200fefbf076d51272"></a><!-- doxytag: member="scim::Socket::create" ref="22d62a8aaa83542200fefbf076d51272" args="(SocketFamily family)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool scim::Socket::create </td> <td>(</td> <td class="paramtype"><a class="el" href="a00165.html#gcc123ee748d644961e203b0794004254">SocketFamily</a> </td> <td class="paramname"> <em>family</em> </td> <td> ) </td> <td width="100%"><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Create a socket for specific family. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>family</em> </td><td>the family type.</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>true if success. </dd></dl> </div> </div><p> <a class="anchor" name="5dddb2638795e45a6cc34e2d6be565c0"></a><!-- doxytag: member="scim::Socket::close" ref="5dddb2638795e45a6cc34e2d6be565c0" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void scim::Socket::close </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Close the socket. <p> <p> Reimplemented in <a class="el" href="a00106.html#e68a5465561791f1e0ae1319e16a4e3d">scim::SocketClient</a>. </div> </div><p> <hr>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="a00151.html">scim_socket.h</a></ul> <hr size="1"><address style="align: right;"><small>Generated on Thu Jun 28 14:12:52 2007 for scim by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.0 </small></address> </body> </html>