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.