BasicTaskScheduler0 Class Reference

#include <BasicUsageEnvironment0.hh>

Inheritance diagram for BasicTaskScheduler0:

Inheritance graph
[legend]
Collaboration diagram for BasicTaskScheduler0:

Collaboration graph
[legend]

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
HandlerSetfHandlers
int fLastHandledSocketNum

Detailed Description

Definition at line 72 of file BasicUsageEnvironment0.hh.


Member Typedef Documentation

typedef void TaskScheduler::BackgroundHandlerProc(void *clientData, int mask) [inherited]

Definition at line 121 of file UsageEnvironment.hh.


Constructor & Destructor Documentation

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 }


Member Function Documentation

virtual void BasicTaskScheduler0::SingleStep ( unsigned  maxDelayTime = 0  )  [pure virtual]

Implemented in BasicTaskScheduler.

Referenced by doEventLoop().

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]

Referenced by RTSPClient::connectionHandler1(), RTSPClient::connectToServer(), TaskScheduler::disableBackgroundHandling(), RTSPClient::openConnection(), and TaskScheduler::turnOnBackgroundReadHandling().

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]

Implemented in BasicTaskScheduler.

Referenced by Socket::changePort().

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); }


Field Documentation

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().


The documentation for this class was generated from the following files:
Generated on Fri Sep 3 02:37:09 2010 for live by  doxygen 1.5.2