MembershipBookkeeping Class Reference
[Generic RTP input queues.]

Controls the group membership in the current session. More...

#include <iqueue.h>

Inheritance diagram for MembershipBookkeeping:

SyncSourceHandler ParticipantHandler ApplicationHandler ConflictHandler Members IncomingDataQueue RTPDataQueue QueueRTCPManager RTPDuplex AVPQueue

List of all members.

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.
SyncSourceLinkgetLink (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.
SyncSourceLinkgetSourceBySSRC (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.
SyncSourceLinkgetFirst ()
SyncSourceLinkgetLast ()
uint32 getMembersCount ()
void setMembersCount (uint32 n)
uint32 getSendersCount ()

Static Protected Attributes

static const size_t defaultMembersHashSize
static const uint32 SEQNUMMOD

Classes

struct  IncomingRTPPktLink
 Incoming RTP data packets control structure within the incoming packet queue class. More...
struct  SyncSourceLink
 Synchronization Source internal handler within the incoming packets queue. More...


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 <fedemp@altern.org>

Constructor & Destructor Documentation

MembershipBookkeeping::MembershipBookkeeping ( uint32  initialSize = defaultMembersHashSize  )  [protected]

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 (  )  [inline, protected, virtual]

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


Member Function Documentation

size_t MembershipBookkeeping::getDefaultMembersHashSize (  )  [inline]

SyncSourceLink* MembershipBookkeeping::getLink ( const SyncSource source  )  const [inline, protected]

Reimplemented from SyncSourceHandler.

bool MembershipBookkeeping::isMine ( const SyncSource source  )  const [inline, protected]

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

bool MembershipBookkeeping::isRegistered ( uint32  ssrc  )  [protected]

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

SyncSourceLink* MembershipBookkeeping::getSourceBySSRC ( uint32  ssrc,
bool &  created 
) [protected]

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::BYESource ( uint32  ssrc  )  [protected]

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.

bool MembershipBookkeeping::removeSource ( uint32  ssrc  )  [protected]

Remove the description of the source identified by ssrc.

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

SyncSourceLink* MembershipBookkeeping::getFirst (  )  [inline, protected]

SyncSourceLink* MembershipBookkeeping::getLast (  )  [inline, protected]

uint32 MembershipBookkeeping::getMembersCount (  )  [inline, protected]

void MembershipBookkeeping::setMembersCount ( uint32  n  )  [inline, protected]

Reimplemented from Members.

uint32 MembershipBookkeeping::getSendersCount (  )  [inline, protected]


Member Data Documentation

const size_t MembershipBookkeeping::defaultMembersHashSize [static, protected]

const uint32 MembershipBookkeeping::SEQNUMMOD [static, protected]


The documentation for this class was generated from the following file:

Generated on Tue Jun 17 07:33:18 2008 for ccRTP by  doxygen 1.5.5