<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>ccRTP: RTPBaseUDPIPv4Socket 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.5.9 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</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="examples.html"><span>Examples</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="classes.html"><span>Class Index</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> <div class="contents"> <h1>RTPBaseUDPIPv4Socket Class Reference<br> <small> [<a class="el" href="group__sockets.html">Underlying transport protocol socket classes.</a>]</small> </h1><!-- doxytag: class="RTPBaseUDPIPv4Socket" -->A UDP/IPv4 socket class targetted at RTP stacks. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="channel_8h_source.html">channel.h</a>></code> <p> <p> <a href="class_r_t_p_base_u_d_p_i_pv4_socket-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="class_r_t_p_base_u_d_p_i_pv4_socket.html#942fe8fa96ff9fc0b7f44a21db0af3dd">RTPBaseUDPIPv4Socket</a> (const InetAddress &ia, tpport_t port)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor for receiver. <a href="#942fe8fa96ff9fc0b7f44a21db0af3dd"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_r_t_p_base_u_d_p_i_pv4_socket.html#7edf2b5d44ed98ef4901e5ea51708f87">~RTPBaseUDPIPv4Socket</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_r_t_p_base_u_d_p_i_pv4_socket.html#4aa31dc622eaed5e6d47e230cff13828">isPendingRecv</a> (<a class="el" href="base_8h.html#c16d853255145e6a903914eb376a84bb">microtimeout_t</a> timeout)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">InetHostAddress </td><td class="memItemRight" valign="bottom"><a class="el" href="class_r_t_p_base_u_d_p_i_pv4_socket.html#d5a0fa9c49f00d0037cc020be60db2a4">getSender</a> (tpport_t &port) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_r_t_p_base_u_d_p_i_pv4_socket.html#1d728d866d678b1cbddad59a441a1e89">recv</a> (unsigned char *buffer, size_t len)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_r_t_p_base_u_d_p_i_pv4_socket.html#07e429babae6ee670d2506eb3508f939">getNextPacketSize</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get size of next datagram waiting to be read. <a href="#07e429babae6ee670d2506eb3508f939"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">Socket::Error </td><td class="memItemRight" valign="bottom"><a class="el" href="class_r_t_p_base_u_d_p_i_pv4_socket.html#ba0c2d1108c5d4060ca6d25d52a3d747">setMulticast</a> (bool enable)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">Socket::Error </td><td class="memItemRight" valign="bottom"><a class="el" href="class_r_t_p_base_u_d_p_i_pv4_socket.html#38e6593374c1d22c5e047a35f086794c">join</a> (const InetMcastAddress &ia, uint32 iface)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">Socket::Error </td><td class="memItemRight" valign="bottom"><a class="el" href="class_r_t_p_base_u_d_p_i_pv4_socket.html#7e2b71082a1c30ff9cb24a3b3e78a6d8">drop</a> (const InetMcastAddress &ia)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">Socket::Error </td><td class="memItemRight" valign="bottom"><a class="el" href="class_r_t_p_base_u_d_p_i_pv4_socket.html#a6024a17917beae585313f5457d68c34">setTimeToLive</a> (unsigned char ttl)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_r_t_p_base_u_d_p_i_pv4_socket.html#3762957851afe0ab042007a2e15078ac">RTPBaseUDPIPv4Socket</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor for transmitter. <a href="#3762957851afe0ab042007a2e15078ac"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_r_t_p_base_u_d_p_i_pv4_socket.html#f4767299e84db20fc9ead42990f457c1">setPeer</a> (const InetAddress &ia, tpport_t port)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_r_t_p_base_u_d_p_i_pv4_socket.html#86b52c1d28d07134ff07c0307ddd7647">send</a> (const unsigned char *const buffer, size_t len)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">SOCKET </td><td class="memItemRight" valign="bottom"><a class="el" href="class_r_t_p_base_u_d_p_i_pv4_socket.html#f8e342b232be4dff73b988ab41d6a4c2">getRecvSocket</a> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_r_t_p_base_u_d_p_i_pv4_socket.html#6d1144061f0f234d8a88a56b2bb3a0fe">endSocket</a> ()</td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> A UDP/IPv4 socket class targetted at RTP stacks. <p> This class provides a flat interface that includes all the services required by an RTP stack.<p> It can be used in two ways:<p> To instantiate the DualSocket template, which will be used to instantiate an RTP stack template (such as <a class="el" href="class_t_r_t_p_session_base.html">TRTPSessionBase</a>).<p> To directly instantiate an RTP stack template (such as <a class="el" href="class_t_r_t_p_session_base.html">TRTPSessionBase</a>).<p> This class offers an example of the interface that other classes should provide in order to specialize the ccRTP stack for different underlying protocols.<p> <dl class="author" compact><dt><b>Author:</b></dt><dd>Federico Montesino Pouzols <<a href="mailto:fedemp@altern.org">fedemp@altern.org</a>> </dd></dl> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="942fe8fa96ff9fc0b7f44a21db0af3dd"></a><!-- doxytag: member="RTPBaseUDPIPv4Socket::RTPBaseUDPIPv4Socket" ref="942fe8fa96ff9fc0b7f44a21db0af3dd" args="(const InetAddress &ia, tpport_t port)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">RTPBaseUDPIPv4Socket::RTPBaseUDPIPv4Socket </td> <td>(</td> <td class="paramtype">const InetAddress & </td> <td class="paramname"> <em>ia</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">tpport_t </td> <td class="paramname"> <em>port</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Constructor for receiver. <p> </div> </div><p> <a class="anchor" name="7edf2b5d44ed98ef4901e5ea51708f87"></a><!-- doxytag: member="RTPBaseUDPIPv4Socket::~RTPBaseUDPIPv4Socket" ref="7edf2b5d44ed98ef4901e5ea51708f87" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">RTPBaseUDPIPv4Socket::~RTPBaseUDPIPv4Socket </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="3762957851afe0ab042007a2e15078ac"></a><!-- doxytag: member="RTPBaseUDPIPv4Socket::RTPBaseUDPIPv4Socket" ref="3762957851afe0ab042007a2e15078ac" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">RTPBaseUDPIPv4Socket::RTPBaseUDPIPv4Socket </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Constructor for transmitter. <p> </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="7e2b71082a1c30ff9cb24a3b3e78a6d8"></a><!-- doxytag: member="RTPBaseUDPIPv4Socket::drop" ref="7e2b71082a1c30ff9cb24a3b3e78a6d8" args="(const InetMcastAddress &ia)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Socket::Error RTPBaseUDPIPv4Socket::drop </td> <td>(</td> <td class="paramtype">const InetMcastAddress & </td> <td class="paramname"> <em>ia</em> </td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="6d1144061f0f234d8a88a56b2bb3a0fe"></a><!-- doxytag: member="RTPBaseUDPIPv4Socket::endSocket" ref="6d1144061f0f234d8a88a56b2bb3a0fe" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void RTPBaseUDPIPv4Socket::endSocket </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="07e429babae6ee670d2506eb3508f939"></a><!-- doxytag: member="RTPBaseUDPIPv4Socket::getNextPacketSize" ref="07e429babae6ee670d2506eb3508f939" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">size_t RTPBaseUDPIPv4Socket::getNextPacketSize </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get size of next datagram waiting to be read. <p> </div> </div><p> <a class="anchor" name="f8e342b232be4dff73b988ab41d6a4c2"></a><!-- doxytag: member="RTPBaseUDPIPv4Socket::getRecvSocket" ref="f8e342b232be4dff73b988ab41d6a4c2" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SOCKET RTPBaseUDPIPv4Socket::getRecvSocket </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="d5a0fa9c49f00d0037cc020be60db2a4"></a><!-- doxytag: member="RTPBaseUDPIPv4Socket::getSender" ref="d5a0fa9c49f00d0037cc020be60db2a4" args="(tpport_t &port) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">InetHostAddress RTPBaseUDPIPv4Socket::getSender </td> <td>(</td> <td class="paramtype">tpport_t & </td> <td class="paramname"> <em>port</em> </td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="4aa31dc622eaed5e6d47e230cff13828"></a><!-- doxytag: member="RTPBaseUDPIPv4Socket::isPendingRecv" ref="4aa31dc622eaed5e6d47e230cff13828" args="(microtimeout_t timeout)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool RTPBaseUDPIPv4Socket::isPendingRecv </td> <td>(</td> <td class="paramtype"><a class="el" href="base_8h.html#c16d853255145e6a903914eb376a84bb">microtimeout_t</a> </td> <td class="paramname"> <em>timeout</em> </td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="38e6593374c1d22c5e047a35f086794c"></a><!-- doxytag: member="RTPBaseUDPIPv4Socket::join" ref="38e6593374c1d22c5e047a35f086794c" args="(const InetMcastAddress &ia, uint32 iface)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Socket::Error RTPBaseUDPIPv4Socket::join </td> <td>(</td> <td class="paramtype">const InetMcastAddress & </td> <td class="paramname"> <em>ia</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32 </td> <td class="paramname"> <em>iface</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="1d728d866d678b1cbddad59a441a1e89"></a><!-- doxytag: member="RTPBaseUDPIPv4Socket::recv" ref="1d728d866d678b1cbddad59a441a1e89" args="(unsigned char *buffer, size_t len)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">size_t RTPBaseUDPIPv4Socket::recv </td> <td>(</td> <td class="paramtype">unsigned char * </td> <td class="paramname"> <em>buffer</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>len</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="86b52c1d28d07134ff07c0307ddd7647"></a><!-- doxytag: member="RTPBaseUDPIPv4Socket::send" ref="86b52c1d28d07134ff07c0307ddd7647" args="(const unsigned char *const buffer, size_t len)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">size_t RTPBaseUDPIPv4Socket::send </td> <td>(</td> <td class="paramtype">const unsigned char *const </td> <td class="paramname"> <em>buffer</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>len</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="ba0c2d1108c5d4060ca6d25d52a3d747"></a><!-- doxytag: member="RTPBaseUDPIPv4Socket::setMulticast" ref="ba0c2d1108c5d4060ca6d25d52a3d747" args="(bool enable)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Socket::Error RTPBaseUDPIPv4Socket::setMulticast </td> <td>(</td> <td class="paramtype">bool </td> <td class="paramname"> <em>enable</em> </td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="f4767299e84db20fc9ead42990f457c1"></a><!-- doxytag: member="RTPBaseUDPIPv4Socket::setPeer" ref="f4767299e84db20fc9ead42990f457c1" args="(const InetAddress &ia, tpport_t port)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void RTPBaseUDPIPv4Socket::setPeer </td> <td>(</td> <td class="paramtype">const InetAddress & </td> <td class="paramname"> <em>ia</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">tpport_t </td> <td class="paramname"> <em>port</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="a6024a17917beae585313f5457d68c34"></a><!-- doxytag: member="RTPBaseUDPIPv4Socket::setTimeToLive" ref="a6024a17917beae585313f5457d68c34" args="(unsigned char ttl)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Socket::Error RTPBaseUDPIPv4Socket::setTimeToLive </td> <td>(</td> <td class="paramtype">unsigned char </td> <td class="paramname"> <em>ttl</em> </td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <hr>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="channel_8h_source.html">channel.h</a></ul> </div> <hr size="1"><address style="text-align: right;"><small>Generated on Fri Jul 24 21:42:25 2009 for ccRTP by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address> </body> </html>