RTSPClient::RequestQueue Class Reference

Collaboration diagram for RTSPClient::RequestQueue:

Collaboration graph
[legend]

Public Member Functions

 RequestQueue ()
virtual ~RequestQueue ()
void enqueue (RequestRecord *request)
RequestRecorddequeue ()
void putAtHead (RequestRecord *request)
RequestRecordfindByCSeq (unsigned cseq)
Boolean isEmpty () const

Private Attributes

RequestRecordfHead
RequestRecordfTail

Detailed Description

Definition at line 205 of file RTSPClient.hh.


Constructor & Destructor Documentation

RTSPClient::RequestQueue::RequestQueue (  ) 

Definition at line 1599 of file RTSPClient.cpp.

01600   : fHead(NULL), fTail(NULL) {
01601 }

RTSPClient::RequestQueue::~RequestQueue (  )  [virtual]

Definition at line 1603 of file RTSPClient.cpp.

References fHead.

01603                                       {
01604   delete fHead;
01605 }


Member Function Documentation

void RTSPClient::RequestQueue::enqueue ( RequestRecord request  ) 

Definition at line 1607 of file RTSPClient.cpp.

References fHead, fTail, RTSPClient::RequestRecord::next(), and NULL.

Referenced by RTSPClient::connectionHandler1(), RTSPClient::responseHandlerForHTTP_GET1(), and RTSPClient::sendRequest().

01607                                                            {
01608   if (fTail == NULL) {
01609     fHead = request;
01610   } else {
01611     fTail->next() = request;
01612   }
01613   fTail = request;
01614 }

RTSPClient::RequestRecord * RTSPClient::RequestQueue::dequeue (  ) 

Definition at line 1616 of file RTSPClient.cpp.

References fHead, fTail, RTSPClient::RequestRecord::next(), and NULL.

Referenced by RTSPClient::connectionHandler1(), RTSPClient::handleResponseBytes(), and RTSPClient::responseHandlerForHTTP_GET1().

01616                                                          {
01617   RequestRecord* request = fHead;
01618   if (fHead == fTail) {
01619     fHead = NULL;
01620     fTail = NULL;
01621   } else {
01622     fHead = fHead->next();
01623   }
01624   if (request != NULL) request->next() = NULL;
01625   return request;
01626 }

void RTSPClient::RequestQueue::putAtHead ( RequestRecord request  ) 

Definition at line 1628 of file RTSPClient.cpp.

References fHead, fTail, RTSPClient::RequestRecord::next(), and NULL.

Referenced by RTSPClient::handleResponseBytes().

01628                                                              {
01629   request->next() = fHead;
01630   fHead = request;
01631   if (fTail == NULL) {
01632     fTail = request;
01633   }
01634 }

RTSPClient::RequestRecord * RTSPClient::RequestQueue::findByCSeq ( unsigned  cseq  ) 

Definition at line 1636 of file RTSPClient.cpp.

References RTSPClient::RequestRecord::cseq(), fHead, RTSPClient::RequestRecord::next(), and NULL.

Referenced by RTSPClient::changeResponseHandler().

01636                                                                          {
01637   RequestRecord* request;
01638   for (request = fHead; request != NULL; request = request->next()) {
01639     if (request->cseq() == cseq) return request;
01640   }
01641   return NULL;
01642 }

Boolean RTSPClient::RequestQueue::isEmpty (  )  const [inline]

Definition at line 214 of file RTSPClient.hh.

References fHead, and NULL.

Referenced by RTSPClient::sendRequest().

00214 { return fHead == NULL; }


Field Documentation

RequestRecord* RTSPClient::RequestQueue::fHead [private]

Definition at line 217 of file RTSPClient.hh.

Referenced by dequeue(), enqueue(), findByCSeq(), isEmpty(), putAtHead(), and ~RequestQueue().

RequestRecord* RTSPClient::RequestQueue::fTail [private]

Definition at line 218 of file RTSPClient.hh.

Referenced by dequeue(), enqueue(), and putAtHead().


The documentation for this class was generated from the following files:
Generated on Thu Feb 2 23:55:51 2012 for live by  doxygen 1.5.2