<!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"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.8"/> <title>ccRTP: MembershipBookkeeping Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">ccRTP </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.8 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <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 id="navrow2" class="tabs2"> <ul class="tablist"> <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><!-- top --> <div class="header"> <div class="summary"> <a href="#nested-classes">Classes</a> | <a href="#pub-methods">Public Member Functions</a> | <a href="#pro-methods">Protected Member Functions</a> | <a href="#pro-static-attribs">Static Protected Attributes</a> | <a href="class_membership_bookkeeping-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">MembershipBookkeeping Class Reference<div class="ingroups"><a class="el" href="group__iqueue.html">Generic RTP input queues.</a></div></div> </div> </div><!--header--> <div class="contents"> <p>Controls the group membership in the current session. <a href="class_membership_bookkeeping.html#details">More...</a></p> <p><code>#include <<a class="el" href="iqueue_8h_source.html">iqueue.h</a>></code></p> <div class="dynheader"> Inheritance diagram for MembershipBookkeeping:</div> <div class="dyncontent"> <div class="center"> <img src="class_membership_bookkeeping.png" usemap="#MembershipBookkeeping_map" alt=""/> <map id="MembershipBookkeeping_map" name="MembershipBookkeeping_map"> <area href="class_sync_source_handler.html" title="SyncSource objects modification methods. " alt="SyncSourceHandler" shape="rect" coords="0,0,153,24"/> <area href="class_participant_handler.html" title="Participant objects modification methods. " alt="ParticipantHandler" shape="rect" coords="163,0,316,24"/> <area href="class_application_handler.html" title="Application objects modification methods. " alt="ApplicationHandler" shape="rect" coords="326,0,479,24"/> <area href="class_conflict_handler.html" title="To track addresses of sources conflicting with the local one. " alt="ConflictHandler" shape="rect" coords="489,0,642,24"/> <area href="class_members.html" title="members and senders accounting " alt="Members" shape="rect" coords="652,0,805,24"/> <area href="class_incoming_data_queue.html" title="Queue for incoming RTP data packets in an RTP session. " alt="IncomingDataQueue" shape="rect" coords="326,112,479,136"/> <area href="class_r_t_p_data_queue.html" title="A packet queue handler for building different kinds of RTP protocol systems. " alt="RTPDataQueue" shape="rect" coords="326,168,479,192"/> <area href="class_queue_r_t_c_p_manager.html" title="Adds generic management of RTCP functions to an RTP data queue. " alt="QueueRTCPManager" shape="rect" coords="244,224,397,248"/> <area href="class_r_t_p_duplex.html" title="A peer associated RTP socket pair for physically connected peer hosts. " alt="RTPDuplex" shape="rect" coords="407,224,560,248"/> <area href="class_a_v_p_queue.html" title="This class, an RTP/RTCP queue, adds audio/video profile (AVP) specific methods to the generic RTCP se..." alt="AVPQueue" shape="rect" coords="244,280,397,304"/> </map> </div></div> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> Classes</h2></td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_membership_bookkeeping_1_1_incoming_r_t_p_pkt_link.html">IncomingRTPPktLink</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Incoming RTP data packets control structure within the incoming packet queue class. <a href="struct_membership_bookkeeping_1_1_incoming_r_t_p_pkt_link.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_membership_bookkeeping_1_1_sync_source_link.html">SyncSourceLink</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Synchronization Source internal handler within the incoming packets queue. <a href="struct_membership_bookkeeping_1_1_sync_source_link.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr class="memitem:a16aa1d1a8f505c3c17a952ec872bcaac"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_membership_bookkeeping.html#a16aa1d1a8f505c3c17a952ec872bcaac">getDefaultMembersHashSize</a> ()</td></tr> <tr class="separator:a16aa1d1a8f505c3c17a952ec872bcaac"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pub_methods_class_sync_source_handler"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_sync_source_handler')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="class_sync_source_handler.html">SyncSourceHandler</a></td></tr> <tr class="memitem:a1f835cb89ba9c5102e948a8c0e0102b2 inherit pub_methods_class_sync_source_handler"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_sync_source_handler.html#a1f835cb89ba9c5102e948a8c0e0102b2">getLink</a> (const <a class="el" href="class_sync_source.html">SyncSource</a> &source) const </td></tr> <tr class="memdesc:a1f835cb89ba9c5102e948a8c0e0102b2 inherit pub_methods_class_sync_source_handler"><td class="mdescLeft"> </td><td class="mdescRight">This requires <a class="el" href="class_sync_source.html" title="Synchronization source in an RTP session. ">SyncSource</a> - <a class="el" href="class_sync_source_handler.html" title="SyncSource objects modification methods. ">SyncSourceHandler</a> friendship. <a href="#a1f835cb89ba9c5102e948a8c0e0102b2">More...</a><br /></td></tr> <tr class="separator:a1f835cb89ba9c5102e948a8c0e0102b2 inherit pub_methods_class_sync_source_handler"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab81fe348ff9772693fc27ae4751d24b4 inherit pub_methods_class_sync_source_handler"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_sync_source_handler.html#ab81fe348ff9772693fc27ae4751d24b4">setLink</a> (<a class="el" href="class_sync_source.html">SyncSource</a> &source, void *link)</td></tr> <tr class="separator:ab81fe348ff9772693fc27ae4751d24b4 inherit pub_methods_class_sync_source_handler"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a380179ca7c9641eafa1c8d3c223de2db inherit pub_methods_class_sync_source_handler"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_sync_source_handler.html#a380179ca7c9641eafa1c8d3c223de2db">setParticipant</a> (<a class="el" href="class_sync_source.html">SyncSource</a> &source, <a class="el" href="class_participant.html">Participant</a> &p)</td></tr> <tr class="separator:a380179ca7c9641eafa1c8d3c223de2db inherit pub_methods_class_sync_source_handler"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab25f7c1d845ea466cf955b4b6be45165 inherit pub_methods_class_sync_source_handler"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_sync_source_handler.html#ab25f7c1d845ea466cf955b4b6be45165">setState</a> (<a class="el" href="class_sync_source.html">SyncSource</a> &source, <a class="el" href="group__sources.html#gae1ed2a19bbfd03de69fbdfc044f2c5dc">SyncSource::State</a> ns)</td></tr> <tr class="separator:ab25f7c1d845ea466cf955b4b6be45165 inherit pub_methods_class_sync_source_handler"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aaafbdeb950f765f8f121eaf6688c7367 inherit pub_methods_class_sync_source_handler"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_sync_source_handler.html#aaafbdeb950f765f8f121eaf6688c7367">setSender</a> (<a class="el" href="class_sync_source.html">SyncSource</a> &source, bool active)</td></tr> <tr class="separator:aaafbdeb950f765f8f121eaf6688c7367 inherit pub_methods_class_sync_source_handler"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a47f7b8cf542dc9487062de7474304928 inherit pub_methods_class_sync_source_handler"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_sync_source_handler.html#a47f7b8cf542dc9487062de7474304928">setDataTransportPort</a> (<a class="el" href="class_sync_source.html">SyncSource</a> &source, tpport_t p)</td></tr> <tr class="separator:a47f7b8cf542dc9487062de7474304928 inherit pub_methods_class_sync_source_handler"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:acd5da6c8029f6a3395b86488dd78e274 inherit pub_methods_class_sync_source_handler"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_sync_source_handler.html#acd5da6c8029f6a3395b86488dd78e274">setControlTransportPort</a> (<a class="el" href="class_sync_source.html">SyncSource</a> &source, tpport_t p)</td></tr> <tr class="separator:acd5da6c8029f6a3395b86488dd78e274 inherit pub_methods_class_sync_source_handler"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa71d11242bd0acd3c7cb36065d4311dd inherit pub_methods_class_sync_source_handler"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_sync_source_handler.html#aa71d11242bd0acd3c7cb36065d4311dd">setNetworkAddress</a> (<a class="el" href="class_sync_source.html">SyncSource</a> &source, InetAddress addr)</td></tr> <tr class="separator:aa71d11242bd0acd3c7cb36065d4311dd inherit pub_methods_class_sync_source_handler"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pub_methods_class_participant_handler"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_participant_handler')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="class_participant_handler.html">ParticipantHandler</a></td></tr> <tr class="memitem:a0d8b6d3877d6643eda12bb2018f6e0b7 inherit pub_methods_class_participant_handler"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_participant_handler.html#a0d8b6d3877d6643eda12bb2018f6e0b7">setSDESItem</a> (<a class="el" href="class_participant.html">Participant</a> *part, <a class="el" href="group__rtcppacket.html#gaf6d38e5ccbbcdf2a24ebbd4fc5b4eeac">SDESItemType</a> item, const std::string &val)</td></tr> <tr class="separator:a0d8b6d3877d6643eda12bb2018f6e0b7 inherit pub_methods_class_participant_handler"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab905220f12970024aac76e02f0d20d66 inherit pub_methods_class_participant_handler"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_participant_handler.html#ab905220f12970024aac76e02f0d20d66">setPRIVPrefix</a> (<a class="el" href="class_participant.html">Participant</a> *part, const std::string val)</td></tr> <tr class="separator:ab905220f12970024aac76e02f0d20d66 inherit pub_methods_class_participant_handler"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pub_methods_class_application_handler"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_application_handler')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="class_application_handler.html">ApplicationHandler</a></td></tr> <tr class="memitem:afe4ac5029cb0b0d5f011ce81e7ede85d inherit pub_methods_class_application_handler"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_application_handler.html#afe4ac5029cb0b0d5f011ce81e7ede85d">addParticipant</a> (<a class="el" href="class_r_t_p_application.html">RTPApplication</a> &app, <a class="el" href="class_participant.html">Participant</a> &part)</td></tr> <tr class="separator:afe4ac5029cb0b0d5f011ce81e7ede85d inherit pub_methods_class_application_handler"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9bbc4b6c97169283f4675c98aadd9335 inherit pub_methods_class_application_handler"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_application_handler.html#a9bbc4b6c97169283f4675c98aadd9335">removeParticipant</a> (<a class="el" href="class_r_t_p_application.html">RTPApplication</a> &app, RTPApplication::ParticipantLink *pl)</td></tr> <tr class="separator:a9bbc4b6c97169283f4675c98aadd9335 inherit pub_methods_class_application_handler"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pub_methods_class_conflict_handler"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_conflict_handler')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="class_conflict_handler.html">ConflictHandler</a></td></tr> <tr class="memitem:a52474b60c9693612e9662da800b460a4 inherit pub_methods_class_conflict_handler"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_conflict_handler_1_1_conflicting_transport_address.html">ConflictingTransportAddress</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_conflict_handler.html#a52474b60c9693612e9662da800b460a4">searchDataConflict</a> (InetAddress na, tpport_t dtp)</td></tr> <tr class="separator:a52474b60c9693612e9662da800b460a4 inherit pub_methods_class_conflict_handler"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab24b01e190d96e4ef0318a620152235b inherit pub_methods_class_conflict_handler"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_conflict_handler_1_1_conflicting_transport_address.html">ConflictingTransportAddress</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_conflict_handler.html#ab24b01e190d96e4ef0318a620152235b">searchControlConflict</a> (InetAddress na, tpport_t ctp)</td></tr> <tr class="separator:ab24b01e190d96e4ef0318a620152235b inherit pub_methods_class_conflict_handler"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac6c5594445fd628222194cf3a657cf99 inherit pub_methods_class_conflict_handler"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_conflict_handler.html#ac6c5594445fd628222194cf3a657cf99">updateConflict</a> (<a class="el" href="struct_conflict_handler_1_1_conflicting_transport_address.html">ConflictingTransportAddress</a> &ca)</td></tr> <tr class="separator:ac6c5594445fd628222194cf3a657cf99 inherit pub_methods_class_conflict_handler"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a10a46df76cbe033b7ceedb95855bd15f inherit pub_methods_class_conflict_handler"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_conflict_handler.html#a10a46df76cbe033b7ceedb95855bd15f">addConflict</a> (const InetAddress &na, tpport_t dtp, tpport_t ctp)</td></tr> <tr class="separator:a10a46df76cbe033b7ceedb95855bd15f inherit pub_methods_class_conflict_handler"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a> Protected Member Functions</h2></td></tr> <tr class="memitem:ae0e19e958667bb8bf638f1db14de7e25"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_membership_bookkeeping.html#ae0e19e958667bb8bf638f1db14de7e25">MembershipBookkeeping</a> (uint32 initialSize=<a class="el" href="class_membership_bookkeeping.html#a53ba5e9495dfdb9ec16c551206796d99">defaultMembersHashSize</a>)</td></tr> <tr class="memdesc:ae0e19e958667bb8bf638f1db14de7e25"><td class="mdescLeft"> </td><td class="mdescRight">The initial size is a hint to allocate the resources needed in order to keep the members' identifiers and associated information. <a href="#ae0e19e958667bb8bf638f1db14de7e25">More...</a><br /></td></tr> <tr class="separator:ae0e19e958667bb8bf638f1db14de7e25"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a01a57bbe5175adcf7a79677d6e6a7425"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="class_membership_bookkeeping.html#a01a57bbe5175adcf7a79677d6e6a7425">~MembershipBookkeeping</a> ()</td></tr> <tr class="memdesc:a01a57bbe5175adcf7a79677d6e6a7425"><td class="mdescLeft"> </td><td class="mdescRight">Purges all RTPSource structures created during the session, as well as the hash table and the list of sources. <a href="#a01a57bbe5175adcf7a79677d6e6a7425">More...</a><br /></td></tr> <tr class="separator:a01a57bbe5175adcf7a79677d6e6a7425"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a38efd69069fee738eff8bb17de488361"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_membership_bookkeeping_1_1_sync_source_link.html">SyncSourceLink</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_membership_bookkeeping.html#a38efd69069fee738eff8bb17de488361">getLink</a> (const <a class="el" href="class_sync_source.html">SyncSource</a> &source) const </td></tr> <tr class="separator:a38efd69069fee738eff8bb17de488361"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad8f223d6677c5656ecf648b4ca250fd4"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_membership_bookkeeping.html#ad8f223d6677c5656ecf648b4ca250fd4">isMine</a> (const <a class="el" href="class_sync_source.html">SyncSource</a> &source) const </td></tr> <tr class="memdesc:ad8f223d6677c5656ecf648b4ca250fd4"><td class="mdescLeft"> </td><td class="mdescRight">Get whether a synchronization source is recorded in this membership controller. <a href="#ad8f223d6677c5656ecf648b4ca250fd4">More...</a><br /></td></tr> <tr class="separator:ad8f223d6677c5656ecf648b4ca250fd4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:adba066c0ebf349a07cce67a5f0f39d43"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_membership_bookkeeping.html#adba066c0ebf349a07cce67a5f0f39d43">isRegistered</a> (uint32 ssrc)</td></tr> <tr class="memdesc:adba066c0ebf349a07cce67a5f0f39d43"><td class="mdescLeft"> </td><td class="mdescRight">Returns whether there is already a synchronizacion source with "ssrc" SSRC identifier. <a href="#adba066c0ebf349a07cce67a5f0f39d43">More...</a><br /></td></tr> <tr class="separator:adba066c0ebf349a07cce67a5f0f39d43"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad1f6257bddecacae2e6e6091ca3139c6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_membership_bookkeeping_1_1_sync_source_link.html">SyncSourceLink</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_membership_bookkeeping.html#ad1f6257bddecacae2e6e6091ca3139c6">getSourceBySSRC</a> (uint32 ssrc, bool &created)</td></tr> <tr class="memdesc:ad1f6257bddecacae2e6e6091ca3139c6"><td class="mdescLeft"> </td><td class="mdescRight">Get the description of a source by its <code>ssrc</code> identifier. <a href="#ad1f6257bddecacae2e6e6091ca3139c6">More...</a><br /></td></tr> <tr class="separator:ad1f6257bddecacae2e6e6091ca3139c6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac1a030a684b25063ab85e0fbae1fa8f5"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_membership_bookkeeping.html#ac1a030a684b25063ab85e0fbae1fa8f5">BYESource</a> (uint32 ssrc)</td></tr> <tr class="memdesc:ac1a030a684b25063ab85e0fbae1fa8f5"><td class="mdescLeft"> </td><td class="mdescRight">Mark the source identified by <code>ssrc</code> as having sent a BYE packet. <a href="#ac1a030a684b25063ab85e0fbae1fa8f5">More...</a><br /></td></tr> <tr class="separator:ac1a030a684b25063ab85e0fbae1fa8f5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac37a1ac1119520b1a64845b67ab833e5"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_membership_bookkeeping.html#ac37a1ac1119520b1a64845b67ab833e5">removeSource</a> (uint32 ssrc)</td></tr> <tr class="memdesc:ac37a1ac1119520b1a64845b67ab833e5"><td class="mdescLeft"> </td><td class="mdescRight">Remove the description of the source identified by <code>ssrc</code> <a href="#ac37a1ac1119520b1a64845b67ab833e5">More...</a><br /></td></tr> <tr class="separator:ac37a1ac1119520b1a64845b67ab833e5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a27e96c52e49965aa6a7ab2c9ae39233f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_membership_bookkeeping_1_1_sync_source_link.html">SyncSourceLink</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_membership_bookkeeping.html#a27e96c52e49965aa6a7ab2c9ae39233f">getFirst</a> ()</td></tr> <tr class="separator:a27e96c52e49965aa6a7ab2c9ae39233f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4f1d99b0ff59e1be893087b4832abfd7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_membership_bookkeeping_1_1_sync_source_link.html">SyncSourceLink</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_membership_bookkeeping.html#a4f1d99b0ff59e1be893087b4832abfd7">getLast</a> ()</td></tr> <tr class="separator:a4f1d99b0ff59e1be893087b4832abfd7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa9d008b64658b94d2e114c32ece8b70b"><td class="memItemLeft" align="right" valign="top">uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="class_membership_bookkeeping.html#aa9d008b64658b94d2e114c32ece8b70b">getMembersCount</a> ()</td></tr> <tr class="separator:aa9d008b64658b94d2e114c32ece8b70b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4c5325d929921e93ab98272d3e23a180"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_membership_bookkeeping.html#a4c5325d929921e93ab98272d3e23a180">setMembersCount</a> (uint32 n)</td></tr> <tr class="separator:a4c5325d929921e93ab98272d3e23a180"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8449f626c59c5549c2c9e8c79718456f"><td class="memItemLeft" align="right" valign="top">uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="class_membership_bookkeeping.html#a8449f626c59c5549c2c9e8c79718456f">getSendersCount</a> ()</td></tr> <tr class="separator:a8449f626c59c5549c2c9e8c79718456f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pro_methods_class_sync_source_handler"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_sync_source_handler')"><img src="closed.png" alt="-"/> Protected Member Functions inherited from <a class="el" href="class_sync_source_handler.html">SyncSourceHandler</a></td></tr> <tr class="memitem:a5f2e5f637856c57bdac70c7ccb8664cf inherit pro_methods_class_sync_source_handler"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_sync_source_handler.html#a5f2e5f637856c57bdac70c7ccb8664cf">SyncSourceHandler</a> ()</td></tr> <tr class="separator:a5f2e5f637856c57bdac70c7ccb8664cf inherit pro_methods_class_sync_source_handler"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3ede656f467571839d1f13d11c84f4d0 inherit pro_methods_class_sync_source_handler"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="class_sync_source_handler.html#a3ede656f467571839d1f13d11c84f4d0">~SyncSourceHandler</a> ()</td></tr> <tr class="separator:a3ede656f467571839d1f13d11c84f4d0 inherit pro_methods_class_sync_source_handler"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pro_methods_class_participant_handler"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_participant_handler')"><img src="closed.png" alt="-"/> Protected Member Functions inherited from <a class="el" href="class_participant_handler.html">ParticipantHandler</a></td></tr> <tr class="memitem:a8ab7d9a425e56c05c288fb890162af19 inherit pro_methods_class_participant_handler"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_participant_handler.html#a8ab7d9a425e56c05c288fb890162af19">ParticipantHandler</a> ()</td></tr> <tr class="separator:a8ab7d9a425e56c05c288fb890162af19 inherit pro_methods_class_participant_handler"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a593f3ffdc20022348329d6c886f3cd07 inherit pro_methods_class_participant_handler"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="class_participant_handler.html#a593f3ffdc20022348329d6c886f3cd07">~ParticipantHandler</a> ()</td></tr> <tr class="separator:a593f3ffdc20022348329d6c886f3cd07 inherit pro_methods_class_participant_handler"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pro_methods_class_application_handler"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_application_handler')"><img src="closed.png" alt="-"/> Protected Member Functions inherited from <a class="el" href="class_application_handler.html">ApplicationHandler</a></td></tr> <tr class="memitem:ae06c6f4d57bb4d0ba947617df6dbcaeb inherit pro_methods_class_application_handler"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_application_handler.html#ae06c6f4d57bb4d0ba947617df6dbcaeb">ApplicationHandler</a> ()</td></tr> <tr class="separator:ae06c6f4d57bb4d0ba947617df6dbcaeb inherit pro_methods_class_application_handler"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa526edea8fc2dab80b38f6723b7a7dd1 inherit pro_methods_class_application_handler"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="class_application_handler.html#aa526edea8fc2dab80b38f6723b7a7dd1">~ApplicationHandler</a> ()</td></tr> <tr class="separator:aa526edea8fc2dab80b38f6723b7a7dd1 inherit pro_methods_class_application_handler"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pro_methods_class_conflict_handler"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_conflict_handler')"><img src="closed.png" alt="-"/> Protected Member Functions inherited from <a class="el" href="class_conflict_handler.html">ConflictHandler</a></td></tr> <tr class="memitem:ab179866b314afae1423581c318073bcd inherit pro_methods_class_conflict_handler"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_conflict_handler.html#ab179866b314afae1423581c318073bcd">ConflictHandler</a> ()</td></tr> <tr class="separator:ab179866b314afae1423581c318073bcd inherit pro_methods_class_conflict_handler"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a108fbdad827dcbe30c373046c8816462 inherit pro_methods_class_conflict_handler"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="class_conflict_handler.html#a108fbdad827dcbe30c373046c8816462">~ConflictHandler</a> ()</td></tr> <tr class="separator:a108fbdad827dcbe30c373046c8816462 inherit pro_methods_class_conflict_handler"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-attribs"></a> Static Protected Attributes</h2></td></tr> <tr class="memitem:a53ba5e9495dfdb9ec16c551206796d99"><td class="memItemLeft" align="right" valign="top">static const size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_membership_bookkeeping.html#a53ba5e9495dfdb9ec16c551206796d99">defaultMembersHashSize</a></td></tr> <tr class="separator:a53ba5e9495dfdb9ec16c551206796d99"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a07aaed6db929c59a302e9cb68405ef71"><td class="memItemLeft" align="right" valign="top">static const uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="class_membership_bookkeeping.html#a07aaed6db929c59a302e9cb68405ef71">SEQNUMMOD</a></td></tr> <tr class="separator:a07aaed6db929c59a302e9cb68405ef71"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a> Additional Inherited Members</h2></td></tr> <tr class="inherit_header pro_attribs_class_conflict_handler"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_class_conflict_handler')"><img src="closed.png" alt="-"/> Protected Attributes inherited from <a class="el" href="class_conflict_handler.html">ConflictHandler</a></td></tr> <tr class="memitem:a29bdf5490220b32c5198730b07a2f585 inherit pro_attribs_class_conflict_handler"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_conflict_handler_1_1_conflicting_transport_address.html">ConflictingTransportAddress</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_conflict_handler.html#a29bdf5490220b32c5198730b07a2f585">firstConflict</a></td></tr> <tr class="separator:a29bdf5490220b32c5198730b07a2f585 inherit pro_attribs_class_conflict_handler"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6562e425bfd419b2af8c9d6df3caff17 inherit pro_attribs_class_conflict_handler"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_conflict_handler_1_1_conflicting_transport_address.html">ConflictingTransportAddress</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_conflict_handler.html#a6562e425bfd419b2af8c9d6df3caff17">lastConflict</a></td></tr> <tr class="separator:a6562e425bfd419b2af8c9d6df3caff17 inherit pro_attribs_class_conflict_handler"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>Controls the group membership in the current session. </p> <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> <dl class="section author"><dt>Author</dt><dd>Federico Montesino Pouzols <a href="#" onclick="location.href='mai'+'lto:'+'fed'+'em'+'p@a'+'lt'+'ern'+'.o'+'rg'; return false;">fedem<span style="display: none;">.nosp@m.</span>p@al<span style="display: none;">.nosp@m.</span>tern.<span style="display: none;">.nosp@m.</span>org</a> </dd></dl> </div><h2 class="groupheader">Constructor & Destructor Documentation</h2> <a class="anchor" id="ae0e19e958667bb8bf638f1db14de7e25"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">MembershipBookkeeping::MembershipBookkeeping </td> <td>(</td> <td class="paramtype">uint32 </td> <td class="paramname"><em>initialSize</em> = <code><a class="el" href="class_membership_bookkeeping.html#a53ba5e9495dfdb9ec16c551206796d99">defaultMembersHashSize</a></code></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>The initial size is a hint to allocate the resources needed in order to keep the members' identifiers and associated information. </p> <p>Although ccRTP will reallocate resources when it becomes necessary, a good hint may save a lot of unpredictable time penalties.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">initialSize</td><td>an estimation of how many participants the session will consist of. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a01a57bbe5175adcf7a79677d6e6a7425"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual MembershipBookkeeping::~MembershipBookkeeping </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Purges all RTPSource structures created during the session, as well as the hash table and the list of sources. </p> </div> </div> <h2 class="groupheader">Member Function Documentation</h2> <a class="anchor" id="ac1a030a684b25063ab85e0fbae1fa8f5"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool MembershipBookkeeping::BYESource </td> <td>(</td> <td class="paramtype">uint32 </td> <td class="paramname"><em>ssrc</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Mark the source identified by <code>ssrc</code> as having sent a BYE packet. </p> <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 class="section return"><dt>Returns</dt><dd>true if the source had been previously identified. false if it was not in the table of known sources. </dd></dl> </div> </div> <a class="anchor" id="a16aa1d1a8f505c3c17a952ec872bcaac"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">size_t MembershipBookkeeping::getDefaultMembersHashSize </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a27e96c52e49965aa6a7ab2c9ae39233f"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="struct_membership_bookkeeping_1_1_sync_source_link.html">SyncSourceLink</a>* MembershipBookkeeping::getFirst </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a4f1d99b0ff59e1be893087b4832abfd7"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="struct_membership_bookkeeping_1_1_sync_source_link.html">SyncSourceLink</a>* MembershipBookkeeping::getLast </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a38efd69069fee738eff8bb17de488361"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="struct_membership_bookkeeping_1_1_sync_source_link.html">SyncSourceLink</a>* MembershipBookkeeping::getLink </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_sync_source.html">SyncSource</a> & </td> <td class="paramname"><em>source</em></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="aa9d008b64658b94d2e114c32ece8b70b"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">uint32 MembershipBookkeeping::getMembersCount </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a8449f626c59c5549c2c9e8c79718456f"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">uint32 MembershipBookkeeping::getSendersCount </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="ad1f6257bddecacae2e6e6091ca3139c6"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="struct_membership_bookkeeping_1_1_sync_source_link.html">SyncSourceLink</a>* MembershipBookkeeping::getSourceBySSRC </td> <td>(</td> <td class="paramtype">uint32 </td> <td class="paramname"><em>ssrc</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool & </td> <td class="paramname"><em>created</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Get the description of a source by its <code>ssrc</code> identifier. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">ssrc</td><td>SSRC identifier, in host order. </td></tr> <tr><td class="paramname">created</td><td>whether a new source has been created. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Pointer to the <a class="el" href="class_sync_source.html" title="Synchronization source in an RTP session. ">SyncSource</a> object identified by <code>ssrc</code>. </dd></dl> </div> </div> <a class="anchor" id="ad8f223d6677c5656ecf648b4ca250fd4"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool MembershipBookkeeping::isMine </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_sync_source.html">SyncSource</a> & </td> <td class="paramname"><em>source</em></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Get whether a synchronization source is recorded in this membership controller. </p> </div> </div> <a class="anchor" id="adba066c0ebf349a07cce67a5f0f39d43"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool MembershipBookkeeping::isRegistered </td> <td>(</td> <td class="paramtype">uint32 </td> <td class="paramname"><em>ssrc</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Returns whether there is already a synchronizacion source with "ssrc" SSRC identifier. </p> </div> </div> <a class="anchor" id="ac37a1ac1119520b1a64845b67ab833e5"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool MembershipBookkeeping::removeSource </td> <td>(</td> <td class="paramtype">uint32 </td> <td class="paramname"><em>ssrc</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Remove the description of the source identified by <code>ssrc</code> </p> <dl class="section return"><dt>Returns</dt><dd>whether the source has been actually removed or it did not exist. </dd></dl> </div> </div> <a class="anchor" id="a4c5325d929921e93ab98272d3e23a180"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void MembershipBookkeeping::setMembersCount </td> <td>(</td> <td class="paramtype">uint32 </td> <td class="paramname"><em>n</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <h2 class="groupheader">Member Data Documentation</h2> <a class="anchor" id="a53ba5e9495dfdb9ec16c551206796d99"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">const size_t MembershipBookkeeping::defaultMembersHashSize</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a07aaed6db929c59a302e9cb68405ef71"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">const uint32 MembershipBookkeeping::SEQNUMMOD</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="iqueue_8h_source.html">iqueue.h</a></li> </ul> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Sun Feb 8 2015 08:32:24 for ccRTP by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.8 </small></address> </body> </html>