44#ifndef CCXX_RTP_SOURCES_H_
45#define CCXX_RTP_SOURCES_H_
72 inline const std::string&
152 inline const std::string&
179 setPRIVPrefix(
const std::string val)
257 {
return activeSender; }
271 {
return participant; }
274 {
return dataTransportPort; }
277 {
return controlTransportPort; }
280 {
return networkAddress; }
302 setSender(
bool active)
303 { activeSender = active; }
307 { participant = &p; }
309 void setDataTransportPort(tpport_t p)
310 { dataTransportPort = p; }
312 void setControlTransportPort(tpport_t p)
313 { controlTransportPort = p; }
315 void setNetworkAddress(InetAddress addr)
316 { networkAddress = addr; }
322 void *getLink()
const
336 InetAddress networkAddress;
337 tpport_t dataTransportPort;
338 tpport_t controlTransportPort;
369 struct ParticipantLink;
395 inline const std::string&
421 {
return *(link->getParticipant()); }
424 {
return link->getParticipant(); }
427 link = link->getNext();
438 {
return l.link == r.link; }
442 {
return l.link != r.link; }
444 ParticipantLink *link;
459 struct ParticipantLink {
461 ParticipantLink* l) :
462 participant(&p), next(l)
464 inline ~ParticipantLink() {
delete participant; }
465 inline Participant* getParticipant() {
return participant; }
466 inline ParticipantLink* getPrev() {
return prev; }
467 inline ParticipantLink* getNext() {
return next; }
468 inline void setPrev(ParticipantLink* l) { prev = l; }
469 inline void setNext(ParticipantLink* l) { next = l; }
471 ParticipantLink* next, *prev;
478 removeParticipant(ParticipantLink* part);
488 static const size_t defaultParticipantsNum;
491 ParticipantLink* firstPart, * lastPart;
Application objects modification methods.
Definition iqueue.h:207
Participant objects modification methods.
Definition iqueue.h:181
A class of objects representing remote participants (RTP applications) in a multimedia session.
Definition sources.h:127
const std::string & getSDESItem(SDESItemType type) const
Get the value of an SDES item.
Definition sources.h:142
Participant(const std::string &cname)
Construct a new participant.
const std::string & getPRIVPrefix() const
Get the prefix value for the PRIV SDES item.
Definition sources.h:153
Iterator through the list of participants in this session.
Definition sources.h:404
ParticipantsIterator(const ParticipantsIterator &pi)
Definition sources.h:416
pointer operator->() const
Definition sources.h:423
ParticipantsIterator operator++(int)
Definition sources.h:431
reference operator*() const
Definition sources.h:420
ParticipantsIterator(ParticipantLink *p=NULL)
Definition sources.h:412
const Participant & reference
Definition sources.h:410
const Participant * pointer
Definition sources.h:409
Participant value_type
Definition sources.h:407
friend bool operator!=(const ParticipantsIterator &l, const ParticipantsIterator &r)
Definition sources.h:440
std::ptrdiff_t difference_type
Definition sources.h:408
friend bool operator==(const ParticipantsIterator &l, const ParticipantsIterator &r)
Definition sources.h:436
std::forward_iterator_tag iterator_category
Definition sources.h:406
ParticipantsIterator & operator++()
Definition sources.h:426
An RTP application, holding identifying RTCP SDES item values.
Definition sources.h:367
const std::string & getSDESItem(SDESItemType item) const
Definition sources.h:392
void setPRIVPrefix(const std::string &val)
Definition sources.h:388
const Participant * getParticipant(const std::string &cname) const
const std::string & getPRIVPrefix() const
Definition sources.h:396
ParticipantsIterator end()
Definition sources.h:450
ParticipantsIterator begin()
Definition sources.h:447
void setSDESItem(SDESItemType item, const std::string &val)
Definition sources.h:384
RTPApplication(const std::string &cname)
Create a new RTP application.
Holds the SDES items and related information from a participant in an RTP application.
Definition sources.h:67
const std::string & getItem(SDESItemType type) const
virtual ~SDESItemsHolder()
Definition sources.h:87
void setItem(SDESItemType item, const std::string &val)
void setPRIVPrefix(const std::string &val)
Definition sources.h:80
SDESItemsHolder()
Definition sources.h:84
const std::string & getPRIVPrefix() const
Definition sources.h:73
SyncSource objects modification methods.
Definition iqueue.h:126
Synchronization source in an RTP session.
Definition sources.h:195
tpport_t getDataTransportPort() const
Definition sources.h:273
tpport_t getControlTransportPort() const
Definition sources.h:276
Participant * getParticipant() const
Get the participant this synchronization source is asociated to.
Definition sources.h:270
State getState() const
Definition sources.h:250
SyncSource(const SyncSource &source)
uint32 getID() const
Definition sources.h:259
bool isSender() const
Whether this source sends RTP data packets.
Definition sources.h:256
const InetAddress & getNetworkAddress() const
Definition sources.h:279
SyncSource & operator=(const SyncSource &source)
State
Synchronization source states during an RTP session.
Definition sources.h:227
@ statePrevalid
Some packets have been.
Definition sources.h:229
@ stateInactive
(data or control) from this source.
Definition sources.h:234
@ stateActive
received, but source validity not yet guaranteed.
Definition sources.h:232
@ stateUnknown
No valid packet has been received.
Definition sources.h:228
SDESItemType
SDES items that may be carried in a Source DEScription RTCP packet.
Definition rtcppkt.h:66
@ SDESItemTypeEND
END of SDES item list.
Definition rtcppkt.h:67
@ SDESItemTypeLast
Last defined code.
Definition rtcppkt.h:77
__EXPORT RTPApplication & defaultApplication()
Get the RTPApplication object for the "default" application (the only one used by common applications...