RTPTransmissionStatsDB Class Reference

#include <RTPSink.hh>

Collaboration diagram for RTPTransmissionStatsDB:

Collaboration graph
[legend]

Public Member Functions

unsigned numReceivers () const
void noteIncomingRR (u_int32_t SSRC, struct sockaddr_in const &lastFromAddress, unsigned lossStats, unsigned lastPacketNumReceived, unsigned jitter, unsigned lastSRTime, unsigned diffSR_RRTime)
void removeRecord (u_int32_t SSRC)
RTPTransmissionStatslookup (u_int32_t SSRC) const

Private Member Functions

 RTPTransmissionStatsDB (RTPSink &rtpSink)
virtual ~RTPTransmissionStatsDB ()
void add (u_int32_t SSRC, RTPTransmissionStats *stats)

Private Attributes

unsigned fNumReceivers
RTPSinkfOurRTPSink
HashTablefTable

Friends

class RTPSink
class Iterator

Data Structures

class  Iterator

Detailed Description

Definition at line 124 of file RTPSink.hh.


Constructor & Destructor Documentation

RTPTransmissionStatsDB::RTPTransmissionStatsDB ( RTPSink rtpSink  )  [private]

Definition at line 158 of file RTPSink.cpp.

References fNumReceivers.

00159   : fOurRTPSink(rtpSink),
00160     fTable(HashTable::create(ONE_WORD_HASH_KEYS)) {
00161   fNumReceivers=0;
00162 }

RTPTransmissionStatsDB::~RTPTransmissionStatsDB (  )  [private, virtual]

Definition at line 164 of file RTPSink.cpp.

References fTable, NULL, and HashTable::RemoveNext().

00164                                                 {
00165   // First, remove and delete all stats records from the table:
00166   RTPTransmissionStats* stats;
00167   while ((stats = (RTPTransmissionStats*)fTable->RemoveNext()) != NULL) {
00168     delete stats;
00169   }
00170 
00171   // Then, delete the table itself:
00172   delete fTable;
00173 }


Member Function Documentation

unsigned RTPTransmissionStatsDB::numReceivers (  )  const [inline]

Definition at line 126 of file RTPSink.hh.

References fNumReceivers.

00126 { return fNumReceivers; }

void RTPTransmissionStatsDB::noteIncomingRR ( u_int32_t  SSRC,
struct sockaddr_in const &  lastFromAddress,
unsigned  lossStats,
unsigned  lastPacketNumReceived,
unsigned  jitter,
unsigned  lastSRTime,
unsigned  diffSR_RRTime 
)

Definition at line 176 of file RTPSink.cpp.

References fOurRTPSink, lookup(), RTPTransmissionStats::noteIncomingRR(), and NULL.

Referenced by RTCPInstance::incomingReportHandler1().

00178                                                                                {
00179   RTPTransmissionStats* stats = lookup(SSRC);
00180   if (stats == NULL) {
00181     // This is the first time we've heard of this SSRC.
00182     // Create a new record for it:
00183     stats = new RTPTransmissionStats(fOurRTPSink, SSRC);
00184     if (stats == NULL) return;
00185     add(SSRC, stats);
00186 #ifdef DEBUG_RR
00187     fprintf(stderr, "Adding new entry for SSRC %x in RTPTransmissionStatsDB\n", SSRC);
00188 #endif
00189   }
00190 
00191   stats->noteIncomingRR(lastFromAddress,
00192                         lossStats, lastPacketNumReceived, jitter,
00193                         lastSRTime, diffSR_RRTime);
00194 }

void RTPTransmissionStatsDB::removeRecord ( u_int32_t  SSRC  ) 

Definition at line 196 of file RTPSink.cpp.

References fNumReceivers, fTable, lookup(), NULL, and HashTable::Remove().

Referenced by RTCPInstance::removeSSRC().

00196                                                         {
00197   RTPTransmissionStats* stats = lookup(SSRC);
00198   if (stats != NULL) {
00199     long SSRC_long = (long)SSRC;
00200     fTable->Remove((char const*)SSRC_long);
00201     --fNumReceivers;
00202     delete stats;
00203   }
00204 }

RTPTransmissionStats * RTPTransmissionStatsDB::lookup ( u_int32_t  SSRC  )  const

Definition at line 222 of file RTPSink.cpp.

References fTable, and HashTable::Lookup().

Referenced by RTCPInstance::incomingReportHandler1(), noteIncomingRR(), and removeRecord().

00222                                                                          {
00223   long SSRC_long = (long)SSRC;
00224   return (RTPTransmissionStats*)(fTable->Lookup((char const*)SSRC_long));
00225 }

void RTPTransmissionStatsDB::add ( u_int32_t  SSRC,
RTPTransmissionStats stats 
) [private]

Definition at line 227 of file RTPSink.cpp.

References HashTable::Add(), fNumReceivers, and fTable.

00227                                                                             {
00228   long SSRC_long = (long)SSRC;
00229   fTable->Add((char const*)SSRC_long, stats);
00230   ++fNumReceivers;
00231 }


Friends And Related Function Documentation

friend class RTPSink [friend]

Definition at line 151 of file RTPSink.hh.

friend class Iterator [friend]

Definition at line 159 of file RTPSink.hh.


Field Documentation

unsigned RTPTransmissionStatsDB::fNumReceivers [private]

Definition at line 160 of file RTPSink.hh.

Referenced by add(), numReceivers(), removeRecord(), and RTPTransmissionStatsDB().

RTPSink& RTPTransmissionStatsDB::fOurRTPSink [private]

Definition at line 161 of file RTPSink.hh.

Referenced by noteIncomingRR().

HashTable* RTPTransmissionStatsDB::fTable [private]

Definition at line 162 of file RTPSink.hh.

Referenced by add(), lookup(), removeRecord(), and ~RTPTransmissionStatsDB().


The documentation for this class was generated from the following files:
Generated on Tue Oct 7 15:40:09 2008 for live by  doxygen 1.5.2