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 174 of file BasicTaskScheduler0.cpp.

References fHandlers, and HandlerDescriptor::socketNum.

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

HandlerSet::~HandlerSet (  )  [virtual]

Definition at line 179 of file BasicTaskScheduler0.cpp.

References fHandlers, and HandlerDescriptor::fNextHandler.

00179                         {
00180   // Delete each handler descriptor:
00181   while (fHandlers.fNextHandler != &fHandlers) {
00182     delete fHandlers.fNextHandler; // changes fHandlers->fNextHandler
00183   }
00184 }


Member Function Documentation

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

Definition at line 187 of file BasicTaskScheduler0.cpp.

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

Referenced by BasicTaskScheduler::setBackgroundHandling().

00187                                                                                                                   {
00188   // First, see if there's already a handler for this socket:
00189   HandlerDescriptor* handler = lookupHandler(socketNum);
00190   if (handler == NULL) { // No existing handler, so create a new descr:
00191     handler = new HandlerDescriptor(fHandlers.fNextHandler);
00192     handler->socketNum = socketNum;
00193   }
00194 
00195   handler->conditionSet = conditionSet;
00196   handler->handlerProc = handlerProc;
00197   handler->clientData = clientData;
00198 }

void HandlerSet::clearHandler ( int  socketNum  ) 

Definition at line 200 of file BasicTaskScheduler0.cpp.

References lookupHandler().

Referenced by BasicTaskScheduler::setBackgroundHandling().

00200                                            {
00201   HandlerDescriptor* handler = lookupHandler(socketNum);
00202   delete handler;
00203 }

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

Definition at line 205 of file BasicTaskScheduler0.cpp.

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

Referenced by BasicTaskScheduler::moveSocketHandling().

00205                                                                {
00206   HandlerDescriptor* handler = lookupHandler(oldSocketNum);
00207   if (handler != NULL) {
00208     handler->socketNum = newSocketNum;
00209   }
00210 }

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

Definition at line 212 of file BasicTaskScheduler0.cpp.

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

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

00212                                                           {
00213   HandlerDescriptor* handler;
00214   HandlerIterator iter(*this);
00215   while ((handler = iter.next()) != NULL) {
00216     if (handler->socketNum == socketNum) break;
00217   }
00218   return handler;
00219 }


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 Thu Feb 2 23:55:07 2012 for live by  doxygen 1.5.2