#include <BasicUsageEnvironment0.hh>
Inheritance diagram for BasicTaskScheduler0:


Public Types | |
| typedef void | BackgroundHandlerProc (void *clientData, int mask) |
Public Member Functions | |
| virtual | ~BasicTaskScheduler0 () |
| virtual void | SingleStep (unsigned maxDelayTime=0)=0 |
| virtual TaskToken | scheduleDelayedTask (int64_t microseconds, TaskFunc *proc, void *clientData) |
| virtual void | unscheduleDelayedTask (TaskToken &prevTask) |
| virtual void | doEventLoop (char *watchVariable) |
| virtual void | rescheduleDelayedTask (TaskToken &task, int64_t microseconds, TaskFunc *proc, void *clientData) |
| virtual void | turnOnBackgroundReadHandling (int socketNum, BackgroundHandlerProc *handlerProc, void *clientData)=0 |
| virtual void | turnOffBackgroundReadHandling (int socketNum)=0 |
Protected Member Functions | |
| BasicTaskScheduler0 () | |
Protected Attributes | |
| DelayQueue | fDelayQueue |
| HandlerSet * | fReadHandlers |
| int | fLastHandledSocketNum |
Definition at line 72 of file BasicUsageEnvironment0.hh.
typedef void TaskScheduler::BackgroundHandlerProc(void *clientData, int mask) [inherited] |
Definition at line 121 of file UsageEnvironment.hh.
| BasicTaskScheduler0::~BasicTaskScheduler0 | ( | ) | [virtual] |
Definition at line 51 of file BasicTaskScheduler0.cpp.
References fReadHandlers.
00051 { 00052 delete fReadHandlers; 00053 }
| BasicTaskScheduler0::BasicTaskScheduler0 | ( | ) | [protected] |
Definition at line 46 of file BasicTaskScheduler0.cpp.
References fReadHandlers.
00047 : fLastHandledSocketNum(-1) { 00048 fReadHandlers = new HandlerSet; 00049 }
| virtual void BasicTaskScheduler0::SingleStep | ( | unsigned | maxDelayTime = 0 |
) | [pure virtual] |
| TaskToken BasicTaskScheduler0::scheduleDelayedTask | ( | int64_t | microseconds, | |
| TaskFunc * | proc, | |||
| void * | clientData | |||
| ) | [virtual] |
Implements TaskScheduler.
Definition at line 55 of file BasicTaskScheduler0.cpp.
References DelayQueue::addEntry(), fDelayQueue, and DelayQueueEntry::token().
00057 { 00058 if (microseconds < 0) microseconds = 0; 00059 DelayInterval timeToDelay((long)(microseconds/1000000), (long)(microseconds%1000000)); 00060 AlarmHandler* alarmHandler = new AlarmHandler(proc, clientData, timeToDelay); 00061 fDelayQueue.addEntry(alarmHandler); 00062 00063 return (void*)(alarmHandler->token()); 00064 }
| void BasicTaskScheduler0::unscheduleDelayedTask | ( | TaskToken & | prevTask | ) | [virtual] |
Implements TaskScheduler.
Definition at line 66 of file BasicTaskScheduler0.cpp.
References fDelayQueue, NULL, and DelayQueue::removeEntry().
00066 { 00067 DelayQueueEntry* alarmHandler = fDelayQueue.removeEntry((long)prevTask); 00068 prevTask = NULL; 00069 delete alarmHandler; 00070 }
| void BasicTaskScheduler0::doEventLoop | ( | char * | watchVariable | ) | [virtual] |
Implements TaskScheduler.
Definition at line 72 of file BasicTaskScheduler0.cpp.
References NULL, and SingleStep().
00072 { 00073 // Repeatedly loop, handling readble sockets and timed events: 00074 while (1) { 00075 if (watchVariable != NULL && *watchVariable != 0) break; 00076 SingleStep(); 00077 } 00078 }
| void TaskScheduler::rescheduleDelayedTask | ( | TaskToken & | task, | |
| int64_t | microseconds, | |||
| TaskFunc * | proc, | |||
| void * | clientData | |||
| ) | [virtual, inherited] |
Definition at line 40 of file UsageEnvironment.cpp.
References TaskScheduler::scheduleDelayedTask(), and TaskScheduler::unscheduleDelayedTask().
Referenced by RTSPServer::RTSPClientSession::noteLiveness().
00042 { 00043 unscheduleDelayedTask(task); 00044 task = scheduleDelayedTask(microseconds, proc, clientData); 00045 }
| virtual void TaskScheduler::turnOnBackgroundReadHandling | ( | int | socketNum, | |
| BackgroundHandlerProc * | handlerProc, | |||
| void * | clientData | |||
| ) | [pure virtual, inherited] |
Referenced by ByteStreamFileSource::doGetNextFrame(), BasicUDPSource::doGetNextFrame(), RTSPOverHTTPServer::HTTPClientConnection::HTTPClientConnection(), SIPClient::invite1(), RTSPClient::playMediaSession(), RTSPServer::RTSPClientSession::RTSPClientSession(), RTSPOverHTTPServer::RTSPOverHTTPServer(), and RTSPServer::RTSPServer().
| virtual void TaskScheduler::turnOffBackgroundReadHandling | ( | int | socketNum | ) | [pure virtual, inherited] |
Implemented in BasicTaskScheduler.
Referenced by SocketDescriptor::deregisterRTPInterface(), ByteStreamFileSource::doStopGettingFrames(), BasicUDPSource::doStopGettingFrames(), RTSPClient::incomingRequestHandler1(), SIPClient::invite1(), RTPInterface::stopNetworkReading(), SocketDescriptor::tcpReadHandler(), BasicUDPSource::~BasicUDPSource(), ByteStreamFileSource::~ByteStreamFileSource(), RTSPOverHTTPServer::HTTPClientConnection::~HTTPClientConnection(), RTSPClient::~RTSPClient(), RTSPServer::RTSPClientSession::~RTSPClientSession(), and RTSPServer::~RTSPServer().
DelayQueue BasicTaskScheduler0::fDelayQueue [protected] |
Definition at line 94 of file BasicUsageEnvironment0.hh.
Referenced by scheduleDelayedTask(), BasicTaskScheduler::SingleStep(), and unscheduleDelayedTask().
HandlerSet* BasicTaskScheduler0::fReadHandlers [protected] |
Definition at line 97 of file BasicUsageEnvironment0.hh.
Referenced by BasicTaskScheduler0(), BasicTaskScheduler::SingleStep(), BasicTaskScheduler::turnOffBackgroundReadHandling(), BasicTaskScheduler::turnOnBackgroundReadHandling(), and ~BasicTaskScheduler0().
int BasicTaskScheduler0::fLastHandledSocketNum [protected] |
Definition at line 98 of file BasicUsageEnvironment0.hh.
Referenced by BasicTaskScheduler::SingleStep().
1.5.2