#include <HandlerSet.hh>
Collaboration diagram for HandlerSet:

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 | |
| HandlerDescriptor * | lookupHandler (int socketNum) |
Private Attributes | |
| HandlerDescriptor | fHandlers |
Friends | |
| class | HandlerIterator |
Definition at line 47 of file HandlerSet.hh.
| 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 }
| 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 }
friend class HandlerIterator [friend] |
Definition at line 60 of file HandlerSet.hh.
HandlerDescriptor HandlerSet::fHandlers [private] |
Definition at line 61 of file HandlerSet.hh.
Referenced by assignHandler(), HandlerSet(), HandlerIterator::next(), HandlerIterator::reset(), and ~HandlerSet().
1.5.2