logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

MembershipBookkeeping - Controls the group membership in the current session.

Author

       Generated automatically by Doxygen for ccRTP from the source code.

                                                      ccRTP                             MembershipBookkeeping(3)

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.

       ParametersinitialSize an estimation of how many participants the session will consist of.

   virtualMembershipBookkeeping::~MembershipBookkeeping()[inline],[protected],[virtual]
       Purges all RTPSource structures created during the session, as well as the hash table and the list of
       sources.

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

Member Data Documentation

constsize_tMembershipBookkeeping::defaultMembersHashSize[static],[protected]constuint32MembershipBookkeeping::SEQNUMMOD[static],[protected]

Member Function Documentation

boolMembershipBookkeeping::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_tMembershipBookkeeping::getDefaultMembersHashSize()[inline]SyncSourceLink*MembershipBookkeeping::getFirst()[inline],[protected]SyncSourceLink*MembershipBookkeeping::getLast()[inline],[protected]SyncSourceLink*MembershipBookkeeping::getLink(constSyncSource&source)const[inline],[protected]uint32MembershipBookkeeping::getMembersCount()[inline],[protected]uint32MembershipBookkeeping::getSendersCount()[inline],[protected]SyncSourceLink*MembershipBookkeeping::getSourceBySSRC(uint32ssrc,bool&created)[protected]
       Get the description of a source by its ssrc identifier.

       Parametersssrc SSRC identifier, in host order.
           created whether a new source has been created.

       Returns
           Pointer to the SyncSource object identified by ssrc.

   boolMembershipBookkeeping::isMine(constSyncSource&source)const[inline],[protected]
       Get whether a synchronization source is recorded in this membership controller.

   boolMembershipBookkeeping::isRegistered(uint32ssrc)[protected]
       Returns whether there is already a synchronizacion source with 'ssrc' SSRC identifier.

   boolMembershipBookkeeping::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.

   voidMembershipBookkeeping::setMembersCount(uint32n)[inline],[protected]

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.

   PublicMemberFunctions
       size_t getDefaultMembersHashSize ()

       Public Member Functions inherited from SyncSourceHandler
       void * getLink (const SyncSource &source) const
           This requires SyncSource - SyncSourceHandler friendship.
       void setLink (SyncSource &source, void *link)
       void setParticipant (SyncSource &source, Participant &p)
       void setState (SyncSource &source, SyncSource::State ns)
       void setSender (SyncSource &source, bool active)
       void setDataTransportPort (SyncSource &source, tpport_t p)
       void setControlTransportPort (SyncSource &source, tpport_t p)
       void setNetworkAddress (SyncSource &source, InetAddress addr)

       Public Member Functions inherited from ParticipantHandler
       void setSDESItem (Participant *part, SDESItemType item, const std::string &val)
       void setPRIVPrefix (Participant *part, const std::string val)

       Public Member Functions inherited from ApplicationHandler
       void addParticipant (RTPApplication &app, Participant &part)
       void removeParticipant (RTPApplication &app, RTPApplication::ParticipantLink *pl)

       Public Member Functions inherited from ConflictHandlerConflictingTransportAddress * searchDataConflict (InetAddress na, tpport_t dtp)
       ConflictingTransportAddress * searchControlConflict (InetAddress na, tpport_t ctp)
       void updateConflict (ConflictingTransportAddress &ca)
       void addConflict (const InetAddress &na, tpport_t dtp, tpport_t ctp)

   ProtectedMemberFunctionsMembershipBookkeeping (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 ()

       Protected Member Functions inherited from SyncSourceHandlerSyncSourceHandler ()
       virtual ~SyncSourceHandler ()

       Protected Member Functions inherited from ParticipantHandlerParticipantHandler ()
       virtual ~ParticipantHandler ()

       Protected Member Functions inherited from ApplicationHandlerApplicationHandler ()
       virtual ~ApplicationHandler ()

       Protected Member Functions inherited from ConflictHandlerConflictHandler ()
       virtual ~ConflictHandler ()

   StaticProtectedAttributes
       static const size_t defaultMembersHashSize
       static const uint32 SEQNUMMODAdditionalInheritedMembers
       Protected Attributes inherited from ConflictHandlerConflictingTransportAddress * firstConflictConflictingTransportAddress * lastConflict

See Also