.TH "MembershipBookkeeping" 3 "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 Public Member Functions inherited from \fBSyncSourceHandler\fP .in +1c .ti -1c .RI "void * \fBgetLink\fP (const \fBSyncSource\fP &source) const" .br .RI "This requires \fBSyncSource\fP - \fBSyncSourceHandler\fP friendship\&. " .ti -1c .RI "void \fBsetLink\fP (\fBSyncSource\fP &source, void *link)" .br .ti -1c .RI "void \fBsetParticipant\fP (\fBSyncSource\fP &source, \fBParticipant\fP &p)" .br .ti -1c .RI "void \fBsetState\fP (\fBSyncSource\fP &source, \fBSyncSource::State\fP ns)" .br .ti -1c .RI "void \fBsetSender\fP (\fBSyncSource\fP &source, bool active)" .br .ti -1c .RI "void \fBsetDataTransportPort\fP (\fBSyncSource\fP &source, tpport_t p)" .br .ti -1c .RI "void \fBsetControlTransportPort\fP (\fBSyncSource\fP &source, tpport_t p)" .br .ti -1c .RI "void \fBsetNetworkAddress\fP (\fBSyncSource\fP &source, InetAddress addr)" .br .in -1c Public Member Functions inherited from \fBParticipantHandler\fP .in +1c .ti -1c .RI "void \fBsetSDESItem\fP (\fBParticipant\fP *part, \fBSDESItemType\fP item, const std::string &val)" .br .ti -1c .RI "void \fBsetPRIVPrefix\fP (\fBParticipant\fP *part, const std::string val)" .br .in -1c Public Member Functions inherited from \fBApplicationHandler\fP .in +1c .ti -1c .RI "void \fBaddParticipant\fP (\fBRTPApplication\fP &app, \fBParticipant\fP &part)" .br .ti -1c .RI "void \fBremoveParticipant\fP (\fBRTPApplication\fP &app, RTPApplication::ParticipantLink *pl)" .br .in -1c Public Member Functions inherited from \fBConflictHandler\fP .in +1c .ti -1c .RI "\fBConflictingTransportAddress\fP * \fBsearchDataConflict\fP (InetAddress na, tpport_t dtp)" .br .ti -1c .RI "\fBConflictingTransportAddress\fP * \fBsearchControlConflict\fP (InetAddress na, tpport_t ctp)" .br .ti -1c .RI "void \fBupdateConflict\fP (\fBConflictingTransportAddress\fP &ca)" .br .ti -1c .RI "void \fBaddConflict\fP (const InetAddress &na, tpport_t dtp, tpport_t ctp)" .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 Protected Member Functions inherited from \fBSyncSourceHandler\fP .in +1c .ti -1c .RI "\fBSyncSourceHandler\fP ()" .br .ti -1c .RI "virtual \fB~SyncSourceHandler\fP ()" .br .in -1c Protected Member Functions inherited from \fBParticipantHandler\fP .in +1c .ti -1c .RI "\fBParticipantHandler\fP ()" .br .ti -1c .RI "virtual \fB~ParticipantHandler\fP ()" .br .in -1c Protected Member Functions inherited from \fBApplicationHandler\fP .in +1c .ti -1c .RI "\fBApplicationHandler\fP ()" .br .ti -1c .RI "virtual \fB~ApplicationHandler\fP ()" .br .in -1c Protected Member Functions inherited from \fBConflictHandler\fP .in +1c .ti -1c .RI "\fBConflictHandler\fP ()" .br .ti -1c .RI "virtual \fB~ConflictHandler\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" Protected Attributes inherited from \fBConflictHandler\fP .in +1c .ti -1c .RI "\fBConflictingTransportAddress\fP * \fBfirstConflict\fP" .br .ti -1c .RI "\fBConflictingTransportAddress\fP * \fBlastConflict\fP" .br .in -1c .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\&.