NAME
MembershipBookkeeping -
Controls the group membership in the current session.
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
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
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.
size_t MembershipBookkeeping::getDefaultMembersHashSize () [inline]
SyncSourceLink* MembershipBookkeeping::getFirst () [inline, protected]
SyncSourceLink* MembershipBookkeeping::getLast () [inline, protected]
SyncSourceLink* MembershipBookkeeping::getLink (const SyncSource & source)
const [inline, protected]
Reimplemented from SyncSourceHandler.
uint32 MembershipBookkeeping::getMembersCount () [inline, protected]
uint32 MembershipBookkeeping::getSendersCount () [inline, protected]
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::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.
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.
void MembershipBookkeeping::setMembersCount (uint32 n) [inline, protected]
Reimplemented from Members.
Member Data Documentation
const size_t MembershipBookkeeping::defaultMembersHashSize [static,
protected]
const uint32 MembershipBookkeeping::SEQNUMMOD [static, protected]
Author
Generated automatically by Doxygen for ccRTP from the source code.