#include <RTPSink.hh>
Collaboration diagram for RTPTransmissionStatsDB:

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) |
| RTPTransmissionStats * | lookup (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 |
| RTPSink & | fOurRTPSink |
| HashTable * | fTable |
Friends | |
| class | RTPSink |
| class | Iterator |
Data Structures | |
| class | Iterator |
Definition at line 124 of file RTPSink.hh.
| 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 }
| unsigned RTPTransmissionStatsDB::numReceivers | ( | ) | const [inline] |
| 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 }
friend class RTPSink [friend] |
Definition at line 151 of file RTPSink.hh.
friend class Iterator [friend] |
Definition at line 159 of file RTPSink.hh.
unsigned RTPTransmissionStatsDB::fNumReceivers [private] |
Definition at line 160 of file RTPSink.hh.
Referenced by add(), numReceivers(), removeRecord(), and RTPTransmissionStatsDB().
RTPSink& RTPTransmissionStatsDB::fOurRTPSink [private] |
HashTable* RTPTransmissionStatsDB::fTable [private] |
Definition at line 162 of file RTPSink.hh.
Referenced by add(), lookup(), removeRecord(), and ~RTPTransmissionStatsDB().
1.5.2