.TH "MembershipBookkeeping" 3 "Sat Oct 27 2018" "ccRTP" \" -*- nroff -*- .ad l .nh .SH NAME MembershipBookkeeping \- Controls the group membership in the current session\&. .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBSyncSourceHandler\fP, \fBParticipantHandler\fP, \fBApplicationHandler\fP, \fBConflictHandler\fP, and \fBMembers\fP\&. .PP Inherited by \fBIncomingDataQueue\fP\fC [protected]\fP\&. .SS "Classes" .in +1c .ti -1c .RI "struct \fBIncomingRTPPktLink\fP" .br .RI "Incoming RTP data packets control structure within the incoming packet queue class\&. " .ti -1c .RI "struct \fBSyncSourceLink\fP" .br .RI "Synchronization Source internal handler within the incoming packets queue\&. " .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "size_t \fBgetDefaultMembersHashSize\fP ()" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "\fBMembershipBookkeeping\fP (uint32 initialSize=\fBdefaultMembersHashSize\fP)" .br .RI "The initial size is a hint to allocate the resources needed in order to keep the members' identifiers and associated information\&. " .ti -1c .RI "virtual \fB~MembershipBookkeeping\fP ()" .br .RI "Purges all RTPSource structures created during the session, as well as the hash table and the list of sources\&. " .ti -1c .RI "\fBSyncSourceLink\fP * \fBgetLink\fP (const \fBSyncSource\fP &source) const" .br .ti -1c .RI "bool \fBisMine\fP (const \fBSyncSource\fP &source) const" .br .RI "Get whether a synchronization source is recorded in this membership controller\&. " .ti -1c .RI "bool \fBisRegistered\fP (uint32 ssrc)" .br .RI "Returns whether there is already a synchronizacion source with 'ssrc' SSRC identifier\&. " .ti -1c .RI "\fBSyncSourceLink\fP * \fBgetSourceBySSRC\fP (uint32 ssrc, bool &created)" .br .RI "Get the description of a source by its \fCssrc\fP identifier\&. " .ti -1c .RI "bool \fBBYESource\fP (uint32 ssrc)" .br .RI "Mark the source identified by \fCssrc\fP as having sent a BYE packet\&. " .ti -1c .RI "bool \fBremoveSource\fP (uint32 ssrc)" .br .RI "Remove the description of the source identified by \fCssrc\fP " .ti -1c .RI "\fBSyncSourceLink\fP * \fBgetFirst\fP ()" .br .ti -1c .RI "\fBSyncSourceLink\fP * \fBgetLast\fP ()" .br .ti -1c .RI "uint32 \fBgetMembersCount\fP ()" .br .ti -1c .RI "void \fBsetMembersCount\fP (uint32 n)" .br .ti -1c .RI "uint32 \fBgetSendersCount\fP ()" .br .in -1c .SS "Static Protected Attributes" .in +1c .ti -1c .RI "static const size_t \fBdefaultMembersHashSize\fP" .br .ti -1c .RI "static const uint32 \fBSEQNUMMOD\fP" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP Controls the group membership in the current session\&. 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\&. .PP \fBAuthor:\fP .RS 4 Federico Montesino Pouzols fedemp@altern.org .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "MembershipBookkeeping::MembershipBookkeeping (uint32 initialSize = \fC\fBdefaultMembersHashSize\fP\fP)\fC [protected]\fP" .PP The initial size is a hint to allocate the resources needed in order to keep the members' identifiers and associated information\&. Although ccRTP will reallocate resources when it becomes necessary, a good hint may save a lot of unpredictable time penalties\&. .PP \fBParameters:\fP .RS 4 \fIinitialSize\fP an estimation of how many participants the session will consist of\&. .RE .PP .SS "virtual MembershipBookkeeping::~MembershipBookkeeping ()\fC [inline]\fP, \fC [protected]\fP, \fC [virtual]\fP" .PP Purges all RTPSource structures created during the session, as well as the hash table and the list of sources\&. .SH "Member Function Documentation" .PP .SS "bool MembershipBookkeeping::BYESource (uint32 ssrc)\fC [protected]\fP" .PP Mark the source identified by \fCssrc\fP as having sent a BYE packet\&. 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\&. .PP \fBReturns:\fP .RS 4 true if the source had been previously identified\&. false if it was not in the table of known sources\&. .RE .PP .SS "size_t MembershipBookkeeping::getDefaultMembersHashSize ()\fC [inline]\fP" .SS "\fBSyncSourceLink\fP* MembershipBookkeeping::getFirst ()\fC [inline]\fP, \fC [protected]\fP" .SS "\fBSyncSourceLink\fP* MembershipBookkeeping::getLast ()\fC [inline]\fP, \fC [protected]\fP" .SS "\fBSyncSourceLink\fP* MembershipBookkeeping::getLink (const \fBSyncSource\fP & source) const\fC [inline]\fP, \fC [protected]\fP" .SS "uint32 MembershipBookkeeping::getMembersCount ()\fC [inline]\fP, \fC [protected]\fP" .SS "uint32 MembershipBookkeeping::getSendersCount ()\fC [inline]\fP, \fC [protected]\fP" .SS "\fBSyncSourceLink\fP* MembershipBookkeeping::getSourceBySSRC (uint32 ssrc, bool & created)\fC [protected]\fP" .PP Get the description of a source by its \fCssrc\fP identifier\&. .PP \fBParameters:\fP .RS 4 \fIssrc\fP SSRC identifier, in host order\&. .br \fIcreated\fP whether a new source has been created\&. .RE .PP \fBReturns:\fP .RS 4 Pointer to the \fBSyncSource\fP object identified by \fCssrc\fP\&. .RE .PP .SS "bool MembershipBookkeeping::isMine (const \fBSyncSource\fP & source) const\fC [inline]\fP, \fC [protected]\fP" .PP Get whether a synchronization source is recorded in this membership controller\&. .SS "bool MembershipBookkeeping::isRegistered (uint32 ssrc)\fC [protected]\fP" .PP Returns whether there is already a synchronizacion source with 'ssrc' SSRC identifier\&. .SS "bool MembershipBookkeeping::removeSource (uint32 ssrc)\fC [protected]\fP" .PP Remove the description of the source identified by \fCssrc\fP .PP \fBReturns:\fP .RS 4 whether the source has been actually removed or it did not exist\&. .RE .PP .SS "void MembershipBookkeeping::setMembersCount (uint32 n)\fC [inline]\fP, \fC [protected]\fP" .SH "Member Data Documentation" .PP .SS "const size_t MembershipBookkeeping::defaultMembersHashSize\fC [static]\fP, \fC [protected]\fP" .SS "const uint32 MembershipBookkeeping::SEQNUMMOD\fC [static]\fP, \fC [protected]\fP" .SH "Author" .PP Generated automatically by Doxygen for ccRTP from the source code\&.