Provided by: libccrtp-doc_2.0.6-3_all bug

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

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

Constructor & Destructor Documentation

   MembershipBookkeeping::MembershipBookkeeping (uint32initialSize = 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 (uint32ssrc) [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]
   uint32 MembershipBookkeeping::getMembersCount () [inline],  [protected]
   uint32 MembershipBookkeeping::getSendersCount () [inline],  [protected]
   SyncSourceLink* MembershipBookkeeping::getSourceBySSRC (uint32ssrc, 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 (uint32ssrc) [protected]
       Returns whether there is already a synchronizacion source with 'ssrc' SSRC identifier.

   bool MembershipBookkeeping::removeSource (uint32ssrc) [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 (uint32n) [inline],  [protected]

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.