Sophie

Sophie

distrib > Mandriva > 8.2 > i586 > media > contrib > by-pkgid > 56ebf73a8cc21535297a85df4640d63b > files > 111

libccrtp0.7-0.7.2-1mdk.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>MembershipControl class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body bgcolor="#ffffff">
<!-- Generated by Doxygen 1.2.10 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; <a class="qindex" href="pages.html">Related Pages</a> &nbsp; <a class="qindex" href="examples.html">Examples</a> &nbsp; </center>
<hr><h1>MembershipControl  Class Reference</h1>Controls the group membership in the current session. 
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="rtp_8h-source.html">cc++/rtp.h</a>&gt;</code>
<p>
<p>Inheritance diagram for MembershipControl::
<p><center><img src="class_membership_control.gif" usemap="#MembershipControl_map" border="0"></center>
<map name="MembershipControl_map">
<area href="class_members.html" alt="Members" shape="rect" coords="71,0,204,24">
<area href="class_r_t_p_queue.html" alt="RTPQueue" shape="rect" coords="71,112,204,136">
<area href="class_queue_r_t_c_p_manager.html" alt="QueueRTCPManager" shape="rect" coords="0,168,133,192">
<area href="class_r_t_p_duplex.html" alt="RTPDuplex" shape="rect" coords="143,168,276,192">
</map>
<a href="class_membership_control-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Public Methods</h2></td></tr>
<tr><td nowrap align=right valign=top>const <a class="el" href="class_r_t_p_source.html">RTPSource</a> &amp;&nbsp;</td><td valign=bottom><a class="el" href="class_membership_control.html#a0">getSource</a> (uint32 ssrc) const</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Get the description of a source by its <code>SSRC<code> identifier.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>const <a class="el" href="class_r_t_p_source.html">RTPSource</a> &amp;&nbsp;</td><td valign=bottom><a class="el" href="class_membership_control.html#a1">getOrCreateSource</a> (uint32 ssrc)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Get the description of a source by its <code>ssrc<code> identifier.</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
<tr><td colspan=2><br><h2>Protected Methods</h2></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="class_r_t_p_source.html">RTPSource</a> &amp;&nbsp;</td><td valign=bottom><a class="el" href="class_membership_control.html#b0">addNewSource</a> (uint32 ssrc)</td></tr>
<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="class_membership_control.html#b1">MembershipControl</a> (uint32 initial_size=7)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>The initial size is a hint to allocate the resources needed in order to keep the members' identifiers and associated information.</em> <a href="#b1">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>virtual&nbsp;</td><td valign=bottom><a class="el" href="class_membership_control.html#b2">~MembershipControl</a> ()</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Destructor.</em> <a href="#b2">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="class_membership_control.html#b3">endMembers</a> ()</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Purge all <a class="el" href="class_r_t_p_source.html">RTPSource</a> structures, the hash table and the list of sources.</em> <a href="#b3">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="class_r_t_p_source.html">RTPSource</a> &amp;&nbsp;</td><td valign=bottom><a class="el" href="class_membership_control.html#b4">getSourceBySSRC</a> (uint32 ssrc, bool create=false)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Get the description of a source by its <code>ssrc<code> identifier.</em> <a href="#b4">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="class_membership_control.html#b5">BYESource</a> (uint32 ssrc)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Mark the source identified by <code>ssrc</code> as having sent a BYE packet.</em> <a href="#b5">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="class_membership_control.html#b6">removeSource</a> (uint32 ssrc)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Remove the description of the source identified by <code>ssrc</code>.</em> <a href="#b6">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>const <a class="el" href="class_r_t_p_source.html">RTPSource</a> &amp;&nbsp;</td><td valign=bottom><a class="el" href="class_membership_control.html#b7">NullSource</a> () const</td></tr>
<tr><td nowrap align=right valign=top>const <a class="el" href="class_r_t_p_source.html">RTPSource</a> &amp;&nbsp;</td><td valign=bottom><a class="el" href="class_membership_control.html#b8">getFirstPlayer</a> ()</td></tr>
<tr><td nowrap align=right valign=top>const <a class="el" href="class_r_t_p_source.html">RTPSource</a> &amp;&nbsp;</td><td valign=bottom><a class="el" href="class_membership_control.html#b9">getLastPlayer</a> ()</td></tr>
<tr><td nowrap align=right valign=top>const <a class="el" href="class_r_t_p_source.html">RTPSource</a> &amp;&nbsp;</td><td valign=bottom><a class="el" href="class_membership_control.html#b10">getNextPlayer</a> ()</td></tr>
<tr><td nowrap align=right valign=top>const <a class="el" href="class_r_t_p_source.html">RTPSource</a> &amp;&nbsp;</td><td valign=bottom><a class="el" href="class_membership_control.html#b11">getCurrentPlayer</a> ()</td></tr>
<tr><td colspan=2><br><h2>Static Protected Attributes</h2></td></tr>
<tr><td nowrap align=right valign=top>const <a class="el" href="class_r_t_p_source.html">RTPSource</a>&nbsp;</td><td valign=bottom><a class="el" href="class_membership_control.html#q0">dummysource</a></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Controls the group membership in the current session.
<p>
The use of RTCP is feasible in sessions with a few participants. However, when there are thousands or millions of participants, scalability problems impede the use of RTCP. In such situations, group membership sampling (see RFC 2762) is recommended instead of a membership table.
<p>
For now, this class implements only a hash table of members, but its design and relation with other classes is intented to support group membership sampling in case scalability problems arise.
<p>

<p>
<dl compact><dt><b>
<a class="el" href="todo.html#_todo000002">Todo: </a></b><dd>
implement the reallocation mechanism (e.g., when the number of ssrcs per collision list goes up to 2, make the size approx. four times bigger (0.5 ssrcs per list now. when the number of ssrcs per list goes down to 0.5, decrease four times. Do not use 2 or 0.5, but `2 + something' and `0.5 - somehting'). Always jumping between prime numbers -&gt; provide a table from 7 to many.</dl>
<p>
<dl compact><dt><b>
Author: </b><dd>
Federico Montesino Pouzols &lt;<a href="mailto:p5087@quintero.fie.us.es">p5087@quintero.fie.us.es</a>&gt; </dl>
<p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a name="b1" doxytag="MembershipControl::MembershipControl"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> MembershipControl::MembershipControl </td>
          <td class="md">(&nbsp;</td>
          <td class="md">uint32</td>
          <td class="mdname1">&nbsp; <em>initial_size</em> = 7          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"><code> [protected]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
The initial size is a hint to allocate the resources needed in order to keep the members' identifiers and associated information.
<p>
Although ccRTP will reallocate resources when it becomes necessary, a good hint may save a lot of unpredictable time penalties.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>initial_size
</em>&nbsp;</td><td>
an estimation of how many participants the session will consist of. </td></tr>
</table>
</dl>    </td>
  </tr>
</table>
<a name="b2" doxytag="MembershipControl::~MembershipControl"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> virtual MembershipControl::~MembershipControl </td>
          <td class="md">(&nbsp;</td>
          <td class="mdname1">&nbsp;          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"><code> [protected, virtual]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Destructor.
<p>
Purges all <a class="el" href="class_r_t_p_source.html">RTPSource</a> structures created during the session, as well as the hast table and the list of sources.     </td>
  </tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a name="b5" doxytag="MembershipControl::BYESource"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> bool MembershipControl::BYESource </td>
          <td class="md">(&nbsp;</td>
          <td class="md">uint32</td>
          <td class="mdname1">&nbsp; <em>ssrc</em>          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"><code> [protected]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Mark the source identified by <code>ssrc</code> as having sent a BYE packet.
<p>
It is not deleted until a timeout expires, so that in case some packets from this source arrive a bit later the source is not inserted again in the table of known sources.
<p>
<dl compact><dt><b>
Returns: </b><dd>
true if the source had been previously identified. false if it was not in the table of known sources. </dl>    </td>
  </tr>
</table>
<a name="b7" doxytag="MembershipControl::NullSource"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> const <a class="el" href="class_r_t_p_source.html">RTPSource</a>&amp; MembershipControl::NullSource </td>
          <td class="md">(&nbsp;</td>
          <td class="mdname1">&nbsp;          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"> const<code> [inline, protected]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<a name="b0" doxytag="MembershipControl::addNewSource"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="class_r_t_p_source.html">RTPSource</a>&amp; MembershipControl::addNewSource </td>
          <td class="md">(&nbsp;</td>
          <td class="md">uint32</td>
          <td class="mdname1">&nbsp; <em>ssrc</em>          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"><code> [protected]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>ssrc
</em>&nbsp;</td><td>
Synchronization SouRCe identifier </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
the source object just created </dl>    </td>
  </tr>
</table>
<a name="b3" doxytag="MembershipControl::endMembers"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void MembershipControl::endMembers </td>
          <td class="md">(&nbsp;</td>
          <td class="mdname1">&nbsp;          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"><code> [protected]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Purge all <a class="el" href="class_r_t_p_source.html">RTPSource</a> structures, the hash table and the list of sources.
<p>
    </td>
  </tr>
</table>
<a name="b11" doxytag="MembershipControl::getCurrentPlayer"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> const <a class="el" href="class_r_t_p_source.html">RTPSource</a>&amp; MembershipControl::getCurrentPlayer </td>
          <td class="md">(&nbsp;</td>
          <td class="mdname1">&nbsp;          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"><code> [protected]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<a name="b8" doxytag="MembershipControl::getFirstPlayer"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> const <a class="el" href="class_r_t_p_source.html">RTPSource</a>&amp; MembershipControl::getFirstPlayer </td>
          <td class="md">(&nbsp;</td>
          <td class="mdname1">&nbsp;          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"><code> [protected]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<a name="b9" doxytag="MembershipControl::getLastPlayer"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> const <a class="el" href="class_r_t_p_source.html">RTPSource</a>&amp; MembershipControl::getLastPlayer </td>
          <td class="md">(&nbsp;</td>
          <td class="mdname1">&nbsp;          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"><code> [protected]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<a name="b10" doxytag="MembershipControl::getNextPlayer"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> const <a class="el" href="class_r_t_p_source.html">RTPSource</a>&amp; MembershipControl::getNextPlayer </td>
          <td class="md">(&nbsp;</td>
          <td class="mdname1">&nbsp;          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"><code> [protected]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<a name="a1" doxytag="MembershipControl::getOrCreateSource"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> const <a class="el" href="class_r_t_p_source.html">RTPSource</a>&amp; MembershipControl::getOrCreateSource </td>
          <td class="md">(&nbsp;</td>
          <td class="md">uint32</td>
          <td class="mdname1">&nbsp; <em>ssrc</em>          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"><code> [inline]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get the description of a source by its <code>ssrc<code> identifier.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>ssrc
</em>&nbsp;</td><td>
SSRC identifier, int network order.  </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
the <a class="el" href="class_r_t_p_source.html">RTPSource</a> object identified by <code>ssrc<code> </dl><dl compact><dt><b>
Return values: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>a
</em>&nbsp;</td><td>
dummy empty object if <code>create == false<code>  and there is no source with the given ssrc identifier </td></tr>
</table>
</dl>    </td>
  </tr>
</table>
<a name="a0" doxytag="MembershipControl::getSource"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> const <a class="el" href="class_r_t_p_source.html">RTPSource</a>&amp; MembershipControl::getSource </td>
          <td class="md">(&nbsp;</td>
          <td class="md">uint32</td>
          <td class="mdname1">&nbsp; <em>ssrc</em>          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"> const<code> [inline]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get the description of a source by its <code>SSRC<code> identifier.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>ssrc
</em>&nbsp;</td><td>
SSRC identifier, int network order.  </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
the <a class="el" href="class_r_t_p_source.html">RTPSource</a> object identified by <code>ssrc<code> </dl><dl compact><dt><b>
Return values: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>a
</em>&nbsp;</td><td>
dummy empty object if there is no source with the  given ssrc identifier </td></tr>
</table>
</dl>
<p>
Reimplemented in <a class="el" href="class_r_t_p_queue.html#a17">RTPQueue</a>.    </td>
  </tr>
</table>
<a name="b4" doxytag="MembershipControl::getSourceBySSRC"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="class_r_t_p_source.html">RTPSource</a>&amp; MembershipControl::getSourceBySSRC </td>
          <td class="md">(&nbsp;</td>
          <td class="md">uint32</td>
          <td class="mdname">&nbsp; <em>ssrc</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md">bool</td>
          <td class="mdname">&nbsp; <em>create</em> = false</td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [protected]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get the description of a source by its <code>ssrc<code> identifier.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>ssrc
</em>&nbsp;</td><td>
SSRC identifier, int network order.  </td></tr>
<tr><td valign=top><em>create
</em>&nbsp;</td><td>
whether to create a new source if not found </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
the <a class="el" href="class_r_t_p_source.html">RTPSource</a> object identified by <code>ssrc<code> </dl><dl compact><dt><b>
Return values: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>a
</em>&nbsp;</td><td>
dummy empty object if create == false and there is  no source with the given ssrc identifier </td></tr>
</table>
</dl>    </td>
  </tr>
</table>
<a name="b6" doxytag="MembershipControl::removeSource"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> bool MembershipControl::removeSource </td>
          <td class="md">(&nbsp;</td>
          <td class="md">uint32</td>
          <td class="mdname1">&nbsp; <em>ssrc</em>          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"><code> [protected]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Remove the description of the source identified by <code>ssrc</code>.
<p>
<dl compact><dt><b>
Returns: </b><dd>
whether the source has been actually removed or it did not exist. </dl>    </td>
  </tr>
</table>
<hr><h2>Member Data Documentation</h2>
<a name="q0" doxytag="MembershipControl::dummysource"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> const <a class="el" href="class_r_t_p_source.html">RTPSource</a> MembershipControl::dummysource<code> [static, protected]</code>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="rtp_8h-source.html">rtp.h</a></ul>
<hr><address><small>Generated at Sat Jan 5 09:08:54 2002 for ccRTP by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.gif" alt="doxygen" align="middle" border=0 
width=110 height=53></a>1.2.10 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>,
 &copy;&nbsp;1997-2001</small></address>
</body>
</html>