42#ifndef CCXX_RTP_POOL_H
43#define CCXX_RTP_POOL_H
106 : elem(e), cleared(false) {
174 {
return poolActive; }
178 { poolActive =
true; }
181 {
return poolTimeout; }
184 { poolTimeout.tv_sec = sec; poolTimeout.tv_usec = usec; }
187 { poolTimeout = to; }
201 mutable bool poolActive;
222 { setActive(); Thread::start(); }
uint32 microtimeout_t
Time interval expressed in microseconds.
Definition base.h:67
virtual size_t takeInDataPacket()
This function is used by the service thread to process the next incoming packet and place it in the r...
microtimeout_t getSchedulingTimeout()
This computes the timeout period for scheduling transmission of the next packet at the "head" of the ...
size_t dispatchDataPacket()
This function is used by the service thread to process the next outgoing packet pending in the sendin...
std equality for SessionListElement objects.
Definition pool.h:129
RTPSessionBase * elem
Definition pool.h:131
PredEquals(RTPSessionBase *e)
Definition pool.h:133
bool operator()(SessionListElement *e)
Definition pool.h:135
void controlReceptionService()
Process incoming RTCP packets pending in the control reception socket.
void controlTransmissionService()
Build and send RTCP packets following timing rules (including the "timer reconsideration" algorithm).
timeval getRTCPCheckInterval()
Definition cqueue.h:362
void controlReceptionService(RTPSessionBase &s)
Definition pool.h:71
void controlTransmissionService(RTPSessionBase &s)
Definition pool.h:75
size_t dispatchDataPacket(RTPSessionBase &s)
Definition pool.h:67
timeval getRTCPCheckInterval(RTPSessionBase &s)
Definition pool.h:59
microtimeout_t getSchedulingTimeout(RTPSessionBase &s)
Definition pool.h:56
SOCKET getDataRecvSocket(RTPSessionBase &s) const
Definition pool.h:78
size_t takeInDataPacket(RTPSessionBase &s)
Definition pool.h:63
SOCKET getControlRecvSocket(RTPSessionBase &s) const
Definition pool.h:81
This class is a base class for classes that define a group of RTP sessions that will be served by one...
Definition pool.h:155
virtual void startRunning()=0
size_t getPoolLength() const
std::list< SessionListElement * >::iterator PoolIterator
Definition pool.h:190
timeval getPoolTimeout()
Definition pool.h:180
virtual ~RTPSessionPool()
Definition pool.h:159
bool removeSession(RTPSessionBase &session)
SOCKET highestSocket
Definition pool.h:196
bool addSession(RTPSessionBase &session)
bool isActive()
Definition pool.h:173
void setPoolTimeout(int sec, int usec)
Definition pool.h:183
std::list< SessionListElement * > sessionList
Definition pool.h:189
void setActive()
Definition pool.h:177
ThreadLock poolLock
Definition pool.h:192
void setPoolTimeout(struct timeval to)
Definition pool.h:186
fd_set recvSocketSet
Definition pool.h:195
Class for tracking session status.
Definition pool.h:92
SessionListElement(RTPSessionBase *e)
Definition pool.h:105
RTPSessionBase * get()
Definition pool.h:119
void clear()
Definition pool.h:109
bool isCleared()
Definition pool.h:115
void run()
Runnable method for the thread.
~SingleRTPSessionPool()
Definition pool.h:218
SingleRTPSessionPool(int pri=0)
Definition pool.h:213
void startRunning()
Definition pool.h:221
SOCKET getDataRecvSocket() const
Definition rtp.h:237
SOCKET getControlRecvSocket() const
Definition rtp.h:279
TRTPSessionBase RTPSessionBase
Definition pool.h:51
Generic and audio/video profile specific RTP interface of ccRTP.