Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > by-pkgid > 3c9265ee0944a35fbede43df6ed55872 > files > 163

lib64scim-devel-1.4.7-10mdv2008.1.x86_64.rpm

<!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&nbsp;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&nbsp;List</span></a></li>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;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 &lt;scim_socket.h&gt;</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">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00104.html#6a721741969f034798d8f3caa8d99701">Socket</a> (int id=-1)</td></tr>

<tr><td class="mdescLeft">&nbsp;</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">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00104.html#b0a7b7a9bf43e105a3174d0e18f43396">~Socket</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor.  <a href="#b0a7b7a9bf43e105a3174d0e18f43396"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00104.html#9af697cafddd8aa23e77c59aa1b6d447">valid</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00104.html#ec6e95a915c65742fb23b9d872f23e10">get_error_number</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00104.html#69e702acf37bf5e1ae750266c07a0ea5">get_error_message</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00104.html#ee6d9156479f959f3d79262c0b655998">get_id</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00104.html#cf61f7a500a6384d6bc1a8d38eb3232d">connect</a> (const <a class="el" href="a00105.html">SocketAddress</a> &amp;addr) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00104.html#b946dc030c1836ffd036c6c5c6bce1fb">bind</a> (const <a class="el" href="a00105.html">SocketAddress</a> &amp;addr) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00104.html#cbd56372deb4825c358a7f948c618b07">accept</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00104.html#5dddb2638795e45a6cc34e2d6be565c0">close</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</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 &amp; 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&nbsp;</td>
          <td class="paramname"> <em>id</em> = <code>-1</code>          </td>
          <td>&nbsp;)&nbsp;</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>&nbsp;</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>&nbsp;)&nbsp;</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>&nbsp;)&nbsp;</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 *&nbsp;</td>
          <td class="paramname"> <em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em></td><td>&nbsp;</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>&nbsp;</td><td>the buffer to store the data. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</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 *&nbsp;</td>
          <td class="paramname"> <em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>timeout</em></td><td>&nbsp;</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>&nbsp;</td><td>the buffer to store the data. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</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>&nbsp;</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 *&nbsp;</td>
          <td class="paramname"> <em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em></td><td>&nbsp;</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>&nbsp;</td><td>the buffer stores the data. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</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&nbsp;</td>
          <td class="paramname"> <em>timeout</em> = <code>-1</code>          </td>
          <td>&nbsp;)&nbsp;</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>&nbsp;</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>&gt; 0 if data is OK, == 0 if time is out, &lt; 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>&nbsp;)&nbsp;</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>&nbsp;)&nbsp;</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>&nbsp;)&nbsp;</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 &amp;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> &amp;&nbsp;</td>
          <td class="paramname"> <em>addr</em>          </td>
          <td>&nbsp;)&nbsp;</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>&nbsp;</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 &amp;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> &amp;&nbsp;</td>
          <td class="paramname"> <em>addr</em>          </td>
          <td>&nbsp;)&nbsp;</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>&nbsp;</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&nbsp;</td>
          <td class="paramname"> <em>queue_length</em> = <code>5</code>          </td>
          <td>&nbsp;)&nbsp;</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>&nbsp;</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>&nbsp;)&nbsp;</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>&nbsp;</td>
          <td class="paramname"> <em>family</em>          </td>
          <td>&nbsp;)&nbsp;</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>&nbsp;</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>&nbsp;)&nbsp;</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&nbsp;
<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>