MembershipBookkeeping(3)
π MembershipBookkeeping(3) π
okay bestie, welcome to the Library Functions Manual page for MembershipBookkeeping β yes it's a whole C++ class and yes it's lowkey the bouncer of your RTP session, deciding who's in the group chat and who's getting left on read. π«Ά
β¨ 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 ()
π
Public Member Functions inherited from SyncSourceHandler π
void * getLink (const SyncSource &source) constβ This requiresSyncSource-SyncSourceHandlerfriendship.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 ConflictHandler β
ConflictingTransportAddress * 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)
π 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 allRTPSourcestructures created during the session, as well as the hash table and the list of sources.SyncSourceLink * getLink (const SyncSource &source) constbool 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 byssrcas having sent a BYE packet.bool removeSource (uint32 ssrc)β Remove the description of the source identified byssrcSyncSourceLink * getFirst ()SyncSourceLink * getLast ()uint32 getMembersCount ()void setMembersCount (uint32 n)uint32 getSendersCount ()
π§ Protected Member Functions inherited from SyncSourceHandler π§
SyncSourceHandler ()virtual ~SyncSourceHandler ()
π§ Protected Member Functions inherited from ParticipantHandler π§
ParticipantHandler ()virtual ~ParticipantHandler ()
π§ Protected Member Functions inherited from ApplicationHandler π§
ApplicationHandler ()virtual ~ApplicationHandler ()
π§ Protected Member Functions inherited from ConflictHandler π§
ConflictHandler ()virtual ~ConflictHandler ()
π Static Protected Attributes π
static const size_t defaultMembersHashSizestatic const uint32 SEQNUMMOD
π Additional Inherited Members π
Protected Attributes inherited from ConflictHandler:
ConflictingTransportAddress * firstConflictConflictingTransportAddress * lastConflict
π 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.
ngl that "intented" typo is living in the source code rent-free and we respect it π (it's a direct quote, bestie, don't come for me)
βοΈ 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.
it's giving "closing the group chat, everyone out" energy π no lingering sources, no crumbs.
π 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]
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]
ποΈ 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.
and that's the whole page, bestie β no notes, we ate, fr fr π«Άβ¨ this lil' manual page is straight outta ccRTP (MembershipBookkeeping(3)), Doxygen-generated for ccRTP from the source code, so go forth and keep those sessions iconic πππ¦
π¦ where this page comes from
- debian trixie: libccrtp-doc 2.0.9-4.1 Β· GPL-2.0-or-later WITH MIF exception
- ubuntu noble: libccrtp-doc 2.0.9-2.5build1
- ubuntu questing: libccrtp-doc 2.0.9-4.1build1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms