Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > os > by-pkgid > 9c481c872fb0ae0cbadccdc2f4a18ab6 > files > 236

libasync-devel-0.17.0-5.fc14.x86_64.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Async: Async::UdpSocket Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.2-20100208 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;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>
      <li><a href="dirs.html"><span>Directories</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <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="navpath"><a class="el" href="namespaceAsync.html">Async</a>::<a class="el" href="classAsync_1_1UdpSocket.html">UdpSocket</a>
  </div>
</div>
<div class="contents">
<h1>Async::UdpSocket Class Reference</h1><!-- doxytag: class="Async::UdpSocket" -->
<p>A class for working with UDP sockets.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="AsyncUdpSocket_8h_source.html">AsyncUdpSocket.h</a>&gt;</code></p>

<p><a href="classAsync_1_1UdpSocket-members.html">List of all members.</a></p>
<h2>Public Member Functions</h2>
<ul>
<li><a class="el" href="classAsync_1_1UdpSocket.html#a50c2829e14c3494e4a0974e01045fa08">UdpSocket</a> (uint16_t local_port=0)
<dl class="el"><dd class="mdescRight">Constructor.  <a href="#a50c2829e14c3494e4a0974e01045fa08"></a><br/></dl><li><a class="el" href="classAsync_1_1UdpSocket.html#ad0cba067b74e37055070660351d3f498">~UdpSocket</a> (void)
<dl class="el"><dd class="mdescRight">Destructor.  <a href="#ad0cba067b74e37055070660351d3f498"></a><br/></dl><li>bool <a class="el" href="classAsync_1_1UdpSocket.html#aa3a7198c35610f59952cc22b8d434058">initOk</a> (void) const 
<dl class="el"><dd class="mdescRight">Check if the initialization was ok.  <a href="#aa3a7198c35610f59952cc22b8d434058"></a><br/></dl><li>bool <a class="el" href="classAsync_1_1UdpSocket.html#a2b41c21485a4b8b830d27f4a8d7b3a82">write</a> (const <a class="el" href="classAsync_1_1IpAddress.html">IpAddress</a> &amp;remote_ip, int remote_port, const void *buf, int count)
<dl class="el"><dd class="mdescRight">Write data to the remote host.  <a href="#a2b41c21485a4b8b830d27f4a8d7b3a82"></a><br/></dl></ul>
<h2>Public Attributes</h2>
<ul>
<li>SigC::Signal3&lt; void, const <br class="typebreak"/>
<a class="el" href="classAsync_1_1IpAddress.html">IpAddress</a> &amp;, void *, int &gt; <a class="el" href="classAsync_1_1UdpSocket.html#a670339d22665dd7a506801d9519f04ae">dataReceived</a>
<dl class="el"><dd class="mdescRight">A signal that is emitted when data has been received.  <a href="#a670339d22665dd7a506801d9519f04ae"></a><br/></dl><li>SigC::Signal1&lt; void, bool &gt; <a class="el" href="classAsync_1_1UdpSocket.html#ac7f9dc2df3f0b4b6947cc98374816e84">sendBufferFull</a>
<dl class="el"><dd class="mdescRight">A signal that is emitted when the send buffer is full.  <a href="#ac7f9dc2df3f0b4b6947cc98374816e84"></a><br/></dl></ul>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>A class for working with UDP sockets. </p>
<dl class="author"><dt><b>Author:</b></dt><dd>Tobias Blomberg </dd></dl>
<dl class="date"><dt><b>Date:</b></dt><dd>2003-04-26</dd></dl>
<p>This class is used to work with UDP sockets. An example usage is shown below.</p>
<div class="fragment"><pre class="fragment"><span class="preprocessor">#include &lt;iostream&gt;</span>
<span class="preprocessor">#include &lt;<a class="code" href="AsyncCppApplication_8h.html" title="The core class for writing asyncronous cpp applications.">AsyncCppApplication.h</a>&gt;</span>
<span class="preprocessor">#include &lt;<a class="code" href="AsyncUdpSocket_8h.html" title="Contains a class for using UDP sockets.">AsyncUdpSocket.h</a>&gt;</span>
<span class="preprocessor">#include &lt;<a class="code" href="AsyncIpAddress_8h.html" title="Platform independent representation of an IP address.">AsyncIpAddress.h</a>&gt;</span>

<span class="keyword">using namespace </span>std;
<span class="keyword">using namespace </span>Async;

<span class="keyword">class </span>MyClass : <span class="keyword">public</span> SigC::Object
{
  <span class="keyword">public</span>:
    MyClass(<span class="keywordtype">void</span>)
    {
      sock = <span class="keyword">new</span> <a class="code" href="classAsync_1_1UdpSocket.html#a50c2829e14c3494e4a0974e01045fa08" title="Constructor.">UdpSocket</a>(12345);
      sock-&gt;dataReceived.connect(slot(*<span class="keyword">this</span>, &amp;MyClass::onDataReceived));
      IpAddress addr(<span class="stringliteral">&quot;127.0.0.1&quot;</span>);
      sock-&gt;write(addr, 12345, <span class="stringliteral">&quot;Hello, UDP!\n&quot;</span>, 13);
    }
    
    ~MyClass(<span class="keywordtype">void</span>)
    {
      <span class="keyword">delete</span> sock;
    }

  <span class="keyword">private</span>:
    <a class="code" href="classAsync_1_1UdpSocket.html#a50c2829e14c3494e4a0974e01045fa08" title="Constructor.">UdpSocket</a> * sock;
    
    <span class="keywordtype">void</span> onDataReceived(<span class="keyword">const</span> IpAddress&amp; addr, <span class="keywordtype">void</span> *buf, <span class="keywordtype">int</span> count)
    {
      cout &lt;&lt; <span class="stringliteral">&quot;Data received from &quot;</span> &lt;&lt; addr &lt;&lt; <span class="stringliteral">&quot;: &quot;</span> &lt;&lt; <span class="keyword">static_cast&lt;</span><span class="keywordtype">char</span> *<span class="keyword">&gt;</span>(buf);
      <a class="code" href="classAsync_1_1Application.html#aa6d446d6b333e0a1e5cc1400c07aa898" title="Get the one and only application instance.">Application::app</a>().quit();
    }
};

<span class="keywordtype">int</span> main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)
{
  CppApplication app;
  MyClass my_class;
  app.exec();
}
</pre></div> <dl><dt><b>Examples: </b></dt><dd>
<p><a class="el" href="AsyncUdpSocket__demo_8cpp-example.html#_a0">AsyncUdpSocket_demo.cpp</a>.</p>
</dd>
</dl>
<p>Definition at line <a class="el" href="AsyncUdpSocket_8h_source.html#l00124">124</a> of file <a class="el" href="AsyncUdpSocket_8h_source.html">AsyncUdpSocket.h</a>.</p>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a50c2829e14c3494e4a0974e01045fa08"></a><!-- doxytag: member="Async::UdpSocket::UdpSocket" ref="a50c2829e14c3494e4a0974e01045fa08" args="(uint16_t local_port=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Async::UdpSocket::UdpSocket </td>
          <td>(</td>
          <td class="paramtype">uint16_t&nbsp;</td>
          <td class="paramname"> <em>local_port</em> = <code>0</code></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>local_port</em>&nbsp;</td><td>The local port to use. If not specified, a random local port will be used. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ad0cba067b74e37055070660351d3f498"></a><!-- doxytag: member="Async::UdpSocket::~UdpSocket" ref="ad0cba067b74e37055070660351d3f498" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Async::UdpSocket::~UdpSocket </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destructor. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="aa3a7198c35610f59952cc22b8d434058"></a><!-- doxytag: member="Async::UdpSocket::initOk" ref="aa3a7198c35610f59952cc22b8d434058" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Async::UdpSocket::initOk </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Check if the initialization was ok. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>Returns <em>true</em> if everything went fine during initialization or <em>false</em> if something went wrong</dd></dl>
<p>This function should always be called after constructing the object to see if everything went fine. </p>

<p>Definition at line <a class="el" href="AsyncUdpSocket_8h_source.html#l00147">147</a> of file <a class="el" href="AsyncUdpSocket_8h_source.html">AsyncUdpSocket.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2b41c21485a4b8b830d27f4a8d7b3a82"></a><!-- doxytag: member="Async::UdpSocket::write" ref="a2b41c21485a4b8b830d27f4a8d7b3a82" args="(const IpAddress &amp;remote_ip, int remote_port, const void *buf, int count)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Async::UdpSocket::write </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classAsync_1_1IpAddress.html">IpAddress</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>remote_ip</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>remote_port</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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">int&nbsp;</td>
          <td class="paramname"> <em>count</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Write data to the remote host. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>remote_ip</em>&nbsp;</td><td>The IP-address of the remote host </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>remote_port</em>&nbsp;</td><td>The remote port to use </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>A buffer containing the data to send </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>count</em>&nbsp;</td><td>The number of bytes to write </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Return <em>true</em> on success or <em>false</em> on failure </dd></dl>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a670339d22665dd7a506801d9519f04ae"></a><!-- doxytag: member="Async::UdpSocket::dataReceived" ref="a670339d22665dd7a506801d9519f04ae" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SigC::Signal3&lt;void, const <a class="el" href="classAsync_1_1IpAddress.html">IpAddress</a>&amp;, void *, int&gt; <a class="el" href="classAsync_1_1UdpSocket.html#a670339d22665dd7a506801d9519f04ae">Async::UdpSocket::dataReceived</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A signal that is emitted when data has been received. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ip</em>&nbsp;</td><td>The IP-address the data was received from </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>The buffer containing the read data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>count</em>&nbsp;</td><td>The number of bytes read </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="AsyncUdpSocket_8h_source.html#l00166">166</a> of file <a class="el" href="AsyncUdpSocket_8h_source.html">AsyncUdpSocket.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac7f9dc2df3f0b4b6947cc98374816e84"></a><!-- doxytag: member="Async::UdpSocket::sendBufferFull" ref="ac7f9dc2df3f0b4b6947cc98374816e84" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SigC::Signal1&lt;void, bool&gt; <a class="el" href="classAsync_1_1UdpSocket.html#ac7f9dc2df3f0b4b6947cc98374816e84">Async::UdpSocket::sendBufferFull</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A signal that is emitted when the send buffer is full. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>is_full</em>&nbsp;</td><td>Set to <em>true</em> if the buffer is full or <em>false</em> if the buffer full condition has been cleared </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="AsyncUdpSocket_8h_source.html#l00173">173</a> of file <a class="el" href="AsyncUdpSocket_8h_source.html">AsyncUdpSocket.h</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="AsyncUdpSocket_8h_source.html">AsyncUdpSocket.h</a></li>
</ul>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2-20100208 </small></address>
</body>
</html>