Inherits SyncSourceHandler, ParticipantHandler, ApplicationHandler, ConflictHandler, and Members.
Inherited by IncomingDataQueue [protected].
Classes
struct IncomingRTPPktLink Incoming RTP data packets control structure within the incoming packet queue class.
struct SyncSourceLink Synchronization Source internal handler within the incoming packets queue.
Public Member Functions
size_t getDefaultMembersHashSize ()
Protected Member Functions
MembershipBookkeeping (uint32 initialSize=defaultMembersHashSize)
The initial size is a hint to allocate the resources needed in order to keep the members' identifiers and associated information.
virtual ~MembershipBookkeeping ()
Purges all RTPSource structures created during the session, as well as the hash table and the list of sources. SyncSourceLink * getLink (const SyncSource &source) const
bool isMine (const SyncSource &source) const
Get whether a synchronization source is recorded in this membership controller.
bool isRegistered (uint32 ssrc)
Returns whether there is already a synchronizacion source with 'ssrc' SSRC identifier. SyncSourceLink * getSourceBySSRC (uint32 ssrc, bool &created)
Get the description of a source by its ssrc identifier.
bool BYESource (uint32 ssrc)
Mark the source identified by ssrc as having sent a BYE packet.
bool removeSource (uint32 ssrc)
Remove the description of the source identified by ssrc
SyncSourceLink * getFirst ()
SyncSourceLink * getLast ()
uint32 getMembersCount ()
void setMembersCount (uint32 n)
uint32 getSendersCount ()
Static Protected Attributes
static const size_t defaultMembersHashSize
static const uint32 SEQNUMMOD
Detailed Description
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.
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.
Parameters:
initialSize an estimation of how many participants the session will consist of.
Mark the source identified by ssrc 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.
Returns:
true if the source had been previously identified. false if it was not in the table of known sources.