RTPSessionPool Class Reference

This class is a base class for classes that define a group of RTP sessions that will be served by one or more execution threads. More...

#include <pool.h>

Inheritance diagram for RTPSessionPool:

RTPSessionBaseHandler SingleRTPSessionPool

List of all members.

Public Member Functions

 RTPSessionPool ()
virtual ~RTPSessionPool ()
bool addSession (RTPSessionBase &session)
bool removeSession (RTPSessionBase &session)
size_t getPoolLength () const
virtual void startRunning ()=0
bool isActive ()

Protected Types

typedef std::list
< SessionListElement * >
::iterator 
PoolIterator

Protected Member Functions

void setActive ()
timeval getPoolTimeout ()
void setPoolTimeout (int sec, int usec)
void setPoolTimeout (struct timeval to)

Protected Attributes

std::list< SessionListElement * > sessionList
ThreadLock poolLock
fd_set recvSocketSet
SOCKET highestSocket


Detailed Description

This class is a base class for classes that define a group of RTP sessions that will be served by one or more execution threads.

Derived classes are responsible for serving each RTP session with a thread at least.

In order to use the RTP session "pool" you just have to build RTPSessionBase objects for each RTP session (instead of RTPSession objects). Then, add the RTPSessionBase objects to an RTP session "pool" and call startRunning() method of the session pool.

Author:
Federico Montesino Pouzols <fedemp@altern.org>

Member Typedef Documentation

typedef std::list<SessionListElement*>::iterator RTPSessionPool::PoolIterator [protected]


Constructor & Destructor Documentation

RTPSessionPool::RTPSessionPool (  ) 

virtual RTPSessionPool::~RTPSessionPool (  )  [inline, virtual]


Member Function Documentation

bool RTPSessionPool::addSession ( RTPSessionBase session  ) 

bool RTPSessionPool::removeSession ( RTPSessionBase session  ) 

size_t RTPSessionPool::getPoolLength (  )  const

virtual void RTPSessionPool::startRunning (  )  [pure virtual]

Implemented in SingleRTPSessionPool.

bool RTPSessionPool::isActive (  )  [inline]

void RTPSessionPool::setActive (  )  [inline, protected]

timeval RTPSessionPool::getPoolTimeout (  )  [inline, protected]

void RTPSessionPool::setPoolTimeout ( int  sec,
int  usec 
) [inline, protected]

void RTPSessionPool::setPoolTimeout ( struct timeval  to  )  [inline, protected]


Member Data Documentation

ThreadLock RTPSessionPool::poolLock [mutable, protected]

fd_set RTPSessionPool::recvSocketSet [protected]

SOCKET RTPSessionPool::highestSocket [protected]


The documentation for this class was generated from the following file:

Generated on Tue Jun 17 07:33:18 2008 for ccRTP by  doxygen 1.5.5