HandlerSet Class Reference

#include <HandlerSet.hh>

Collaboration diagram for HandlerSet:

Collaboration graph
[legend]

Public Member Functions

 HandlerSet ()
virtual ~HandlerSet ()
void assignHandler (int socketNum, TaskScheduler::BackgroundHandlerProc *handlerProc, void *clientData)
void removeHandler (int socketNum)

Private Attributes

HandlerDescriptor fHandlers

Friends

class HandlerIterator

Detailed Description

Definition at line 42 of file HandlerSet.hh.


Constructor & Destructor Documentation

HandlerSet::HandlerSet (  ) 

Definition at line 101 of file BasicTaskScheduler0.cpp.

References fHandlers, and HandlerDescriptor::socketNum.

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

HandlerSet::~HandlerSet (  )  [virtual]

Definition at line 106 of file BasicTaskScheduler0.cpp.

References fHandlers, and HandlerDescriptor::fNextHandler.

00106                         {
00107   // Delete each handler descriptor:
00108   while (fHandlers.fNextHandler != &fHandlers) {
00109     delete fHandlers.fNextHandler; // changes fHandlers->fNextHandler
00110   }
00111 }


Member Function Documentation

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

Definition at line 114 of file BasicTaskScheduler0.cpp.

References HandlerDescriptor::clientData, fHandlers, HandlerDescriptor::fNextHandler, HandlerDescriptor::handlerProc, iter, MediaSubsessionIterator::next(), NULL, and HandlerDescriptor::socketNum.

Referenced by BasicTaskScheduler::turnOnBackgroundReadHandling().

00116                                   {
00117   // First, see if there's already a handler for this socket:
00118   HandlerDescriptor* handler;
00119   HandlerIterator iter(*this);
00120   while ((handler = iter.next()) != NULL) {
00121     if (handler->socketNum == socketNum) break;
00122   }
00123   if (handler == NULL) { // No existing handler, so create a new descr:
00124     handler = new HandlerDescriptor(fHandlers.fNextHandler);
00125     handler->socketNum = socketNum;
00126   }
00127 
00128   handler->handlerProc = handlerProc;
00129   handler->clientData = clientData;
00130 }

void HandlerSet::removeHandler ( int  socketNum  ) 

Definition at line 132 of file BasicTaskScheduler0.cpp.

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

Referenced by BasicTaskScheduler::turnOffBackgroundReadHandling().

00132                                             {
00133   HandlerDescriptor* handler;
00134   HandlerIterator iter(*this);
00135   while ((handler = iter.next()) != NULL) {
00136     if (handler->socketNum == socketNum) {
00137       delete handler;
00138       break;
00139     }
00140   }
00141 }


Friends And Related Function Documentation

friend class HandlerIterator [friend]

Definition at line 53 of file HandlerSet.hh.


Field Documentation

HandlerDescriptor HandlerSet::fHandlers [private]

Definition at line 54 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 Tue Oct 7 15:39:43 2008 for live by  doxygen 1.5.2