#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 | setBackgroundHandling (int socketNum, int conditionSet, BackgroundHandlerProc *handlerProc, void *clientData)=0 |
| void | disableBackgroundHandling (int socketNum) |
| virtual void | moveSocketHandling (int oldSocketNum, int newSocketNum)=0 |
| void | turnOnBackgroundReadHandling (int socketNum, BackgroundHandlerProc *handlerProc, void *clientData) |
| void | turnOffBackgroundReadHandling (int socketNum) |
Protected Member Functions | |
| BasicTaskScheduler0 () | |
Protected Attributes | |
| DelayQueue | fDelayQueue |
| HandlerSet * | fHandlers |
| 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 fHandlers.
00051 { 00052 delete fHandlers; 00053 }
| BasicTaskScheduler0::BasicTaskScheduler0 | ( | ) | [protected] |
Definition at line 46 of file BasicTaskScheduler0.cpp.
References fHandlers.
00047 : fLastHandledSocketNum(-1) { 00048 fHandlers = 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::setBackgroundHandling | ( | int | socketNum, | |
| int | conditionSet, | |||
| BackgroundHandlerProc * | handlerProc, | |||
| void * | clientData | |||
| ) | [pure virtual, inherited] |
| void TaskScheduler::disableBackgroundHandling | ( | int | socketNum | ) | [inline, inherited] |
Definition at line 128 of file UsageEnvironment.hh.
References NULL, and TaskScheduler::setBackgroundHandling().
Referenced by RTSPClient::connectionHandler1(), RTSPClient::resetTCPSockets(), and TaskScheduler::turnOffBackgroundReadHandling().
00128 { setBackgroundHandling(socketNum, 0, NULL, NULL); }
| virtual void TaskScheduler::moveSocketHandling | ( | int | oldSocketNum, | |
| int | newSocketNum | |||
| ) | [pure virtual, inherited] |
| void TaskScheduler::turnOnBackgroundReadHandling | ( | int | socketNum, | |
| BackgroundHandlerProc * | handlerProc, | |||
| void * | clientData | |||
| ) | [inline, inherited] |
Definition at line 140 of file UsageEnvironment.hh.
References TaskScheduler::setBackgroundHandling(), and SOCKET_READABLE.
Referenced by ByteStreamFileSource::doGetNextFrame(), BasicUDPSource::doGetNextFrame(), RTSPOverHTTPServer::HTTPClientConnection::HTTPClientConnection(), SIPClient::invite1(), RTSPServer::RTSPClientSession::RTSPClientSession(), RTSPOverHTTPServer::RTSPOverHTTPServer(), and RTSPServer::RTSPServer().
00140 { 00141 setBackgroundHandling(socketNum, SOCKET_READABLE, handlerProc, clientData); 00142 }
| void TaskScheduler::turnOffBackgroundReadHandling | ( | int | socketNum | ) | [inline, inherited] |
Definition at line 143 of file UsageEnvironment.hh.
References TaskScheduler::disableBackgroundHandling().
Referenced by RTCPInstance::addStreamSocket(), Socket::changePort(), SocketDescriptor::deregisterRTPInterface(), ByteStreamFileSource::doStopGettingFrames(), BasicUDPSource::doStopGettingFrames(), SIPClient::invite1(), RTPInterface::stopNetworkReading(), SocketDescriptor::tcpReadHandler1(), BasicUDPSource::~BasicUDPSource(), ByteStreamFileSource::~ByteStreamFileSource(), RTSPOverHTTPServer::HTTPClientConnection::~HTTPClientConnection(), RTSPServer::RTSPClientSession::~RTSPClientSession(), and RTSPServer::~RTSPServer().
00143 { disableBackgroundHandling(socketNum); }
DelayQueue BasicTaskScheduler0::fDelayQueue [protected] |
Definition at line 94 of file BasicUsageEnvironment0.hh.
Referenced by scheduleDelayedTask(), BasicTaskScheduler::SingleStep(), and unscheduleDelayedTask().
HandlerSet* BasicTaskScheduler0::fHandlers [protected] |
Definition at line 97 of file BasicUsageEnvironment0.hh.
Referenced by BasicTaskScheduler0(), BasicTaskScheduler::moveSocketHandling(), BasicTaskScheduler::setBackgroundHandling(), BasicTaskScheduler::SingleStep(), and ~BasicTaskScheduler0().
int BasicTaskScheduler0::fLastHandledSocketNum [protected] |
Definition at line 98 of file BasicUsageEnvironment0.hh.
Referenced by BasicTaskScheduler::SingleStep().
1.5.2