SYNOPSIS

#include <iqueue.h>

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

Additional Inherited Members

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.

Author:

Federico Montesino Pouzols [email protected]

Constructor & Destructor Documentation

MembershipBookkeeping::MembershipBookkeeping (uint32initialSize = \fC\fBdefaultMembersHashSize\fP\fP)\fC [protected]\fP

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.

virtual MembershipBookkeeping::~MembershipBookkeeping ()\fC [inline]\fP, \fC [protected]\fP, \fC [virtual]\fP

Purges all RTPSource structures created during the session, as well as the hash table and the list of sources.

Member Function Documentation

bool MembershipBookkeeping::BYESource (uint32ssrc)\fC [protected]\fP

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.

size_t MembershipBookkeeping::getDefaultMembersHashSize ()\fC [inline]\fP

\fBSyncSourceLink\fP* MembershipBookkeeping::getFirst ()\fC [inline]\fP, \fC [protected]\fP

\fBSyncSourceLink\fP* MembershipBookkeeping::getLast ()\fC [inline]\fP, \fC [protected]\fP

\fBSyncSourceLink\fP* MembershipBookkeeping::getLink (const \fBSyncSource\fP &source) const\fC [inline]\fP, \fC [protected]\fP

uint32 MembershipBookkeeping::getMembersCount ()\fC [inline]\fP, \fC [protected]\fP

uint32 MembershipBookkeeping::getSendersCount ()\fC [inline]\fP, \fC [protected]\fP

\fBSyncSourceLink\fP* MembershipBookkeeping::getSourceBySSRC (uint32ssrc, bool &created)\fC [protected]\fP

Get the description of a source by its ssrc identifier.

Parameters:

ssrc SSRC identifier, in host order.

created whether a new source has been created.

Returns:

Pointer to the SyncSource object identified by ssrc.

bool MembershipBookkeeping::isMine (const \fBSyncSource\fP &source) const\fC [inline]\fP, \fC [protected]\fP

Get whether a synchronization source is recorded in this membership controller.

bool MembershipBookkeeping::isRegistered (uint32ssrc)\fC [protected]\fP

Returns whether there is already a synchronizacion source with 'ssrc' SSRC identifier.

bool MembershipBookkeeping::removeSource (uint32ssrc)\fC [protected]\fP

Remove the description of the source identified by ssrc

Returns:

whether the source has been actually removed or it did not exist.

void MembershipBookkeeping::setMembersCount (uint32n)\fC [inline]\fP, \fC [protected]\fP

Member Data Documentation

const size_t MembershipBookkeeping::defaultMembersHashSize\fC [static]\fP, \fC [protected]\fP

const uint32 MembershipBookkeeping::SEQNUMMOD\fC [static]\fP, \fC [protected]\fP

Author

Generated automatically by Doxygen for ccRTP from the source code.