HandlerSet Class Reference

#include <HandlerSet.hh>

Collaboration diagram for HandlerSet:

Collaboration graph
[legend]

Public Member Functions

 HandlerSet ()
virtual ~HandlerSet ()
void assignHandler (int socketNum, int conditionSet, TaskScheduler::BackgroundHandlerProc *handlerProc, void *clientData)
void clearHandler (int socketNum)
void moveHandler (int oldSocketNum, int newSocketNum)

Private Member Functions

HandlerDescriptorlookupHandler (int socketNum)

Private Attributes

HandlerDescriptor fHandlers

Friends

class HandlerIterator

Detailed Description

Definition at line 47 of file HandlerSet.hh.


Constructor & Destructor Documentation

HandlerSet::HandlerSet (  ) 

Definition at line 167 of file BasicTaskScheduler0.cpp.

References fHandlers, and HandlerDescriptor::socketNum.

00168   : fHandlers(&fHandlers) {
00169   fHandlers.socketNum = -1; // shouldn't ever get looked at, but in case...
00170 }

HandlerSet::~HandlerSet (  )  [virtual]

Definition at line 172 of file BasicTaskScheduler0.cpp.

References fHandlers, and HandlerDescriptor::fNextHandler.

00172                         {
00173   // Delete each handler descriptor:
00174   while (fHandlers.fNextHandler != &fHandlers) {
00175     delete fHandlers.fNextHandler; // changes fHandlers->fNextHandler
00176   }
00177 }


Member Function Documentation

void HandlerSet::assignHandler ( int  socketNum,
int  conditionSet,
TaskScheduler::BackgroundHandlerProc handlerProc,
void *  clientData 
)

Definition at line 180 of file BasicTaskScheduler0.cpp.

References HandlerDescriptor::clientData, HandlerDescriptor::conditionSet, fHandlers, HandlerDescriptor::fNextHandler, HandlerDescriptor::handlerProc, lookupHandler(), NULL, and HandlerDescriptor::socketNum.

Referenced by BasicTaskScheduler::setBackgroundHandling().

00180                                                                                                                   {
00181   // First, see if there's already a handler for this socket:
00182   HandlerDescriptor* handler = lookupHandler(socketNum);
00183   if (handler == NULL) { // No existing handler, so create a new descr:
00184     handler = new HandlerDescriptor(fHandlers.fNextHandler);
00185     handler->socketNum = socketNum;
00186   }
00187 
00188   handler->conditionSet = conditionSet;
00189   handler->handlerProc = handlerProc;
00190   handler->clientData = clientData;
00191 }

void HandlerSet::clearHandler ( int  socketNum  ) 

Definition at line 193 of file BasicTaskScheduler0.cpp.

References lookupHandler().

Referenced by BasicTaskScheduler::setBackgroundHandling().

00193                                            {
00194   HandlerDescriptor* handler = lookupHandler(socketNum);
00195   delete handler;
00196 }

void HandlerSet::moveHandler ( int  oldSocketNum,
int  newSocketNum 
)

Definition at line 198 of file BasicTaskScheduler0.cpp.

References lookupHandler(), NULL, and HandlerDescriptor::socketNum.

Referenced by BasicTaskScheduler::moveSocketHandling().

00198                                                                {
00199   HandlerDescriptor* handler = lookupHandler(oldSocketNum);
00200   if (handler != NULL) {
00201     handler->socketNum = newSocketNum;
00202   }
00203 }

HandlerDescriptor * HandlerSet::lookupHandler ( int  socketNum  )  [private]

Definition at line 205 of file BasicTaskScheduler0.cpp.

References iter, MediaSubsessionIterator::next(), NULL, and HandlerDescriptor::socketNum.

Referenced by assignHandler(), clearHandler(), and moveHandler().

00205                                                           {
00206   HandlerDescriptor* handler;
00207   HandlerIterator iter(*this);
00208   while ((handler = iter.next()) != NULL) {
00209     if (handler->socketNum == socketNum) break;
00210   }
00211   return handler;
00212 }


Friends And Related Function Documentation

friend class HandlerIterator [friend]

Definition at line 60 of file HandlerSet.hh.


Field Documentation

HandlerDescriptor HandlerSet::fHandlers [private]

Definition at line 61 of file HandlerSet.hh.

Referenced by assignHandler(), HandlerSet(), HandlerIterator::next(), HandlerIterator::reset(), and ~HandlerSet().


The documentation for this class was generated from the following files:
Generated on Mon Apr 29 13:31:39 2013 for live by  doxygen 1.5.2