RTSPClient::RequestQueue Class Reference

Collaboration diagram for RTSPClient::RequestQueue:

Collaboration graph
[legend]

Public Member Functions

 RequestQueue ()
 RequestQueue (RequestQueue &origQueue)
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 223 of file RTSPClient.hh.


Constructor & Destructor Documentation

RTSPClient::RequestQueue::RequestQueue (  ) 

Definition at line 1707 of file RTSPClient.cpp.

01708   : fHead(NULL), fTail(NULL) {
01709 }

RTSPClient::RequestQueue::RequestQueue ( RequestQueue origQueue  ) 

Definition at line 1711 of file RTSPClient.cpp.

References dequeue(), enqueue(), and NULL.

01712   : fHead(NULL), fTail(NULL) {
01713   RequestRecord* request;
01714   while ((request = origQueue.dequeue()) != NULL) {
01715     enqueue(request);
01716   }
01717 }

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

Definition at line 1719 of file RTSPClient.cpp.

References fHead.

01719                                       {
01720   delete fHead;
01721 }


Member Function Documentation

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

Definition at line 1723 of file RTSPClient.cpp.

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

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

01723                                                            {
01724   if (fTail == NULL) {
01725     fHead = request;
01726   } else {
01727     fTail->next() = request;
01728   }
01729   fTail = request;
01730 }

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

Definition at line 1732 of file RTSPClient.cpp.

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

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

01732                                                          {
01733   RequestRecord* request = fHead;
01734   if (fHead == fTail) {
01735     fHead = NULL;
01736     fTail = NULL;
01737   } else {
01738     fHead = fHead->next();
01739   }
01740   if (request != NULL) request->next() = NULL;
01741   return request;
01742 }

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

Definition at line 1744 of file RTSPClient.cpp.

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

Referenced by RTSPClient::handleResponseBytes().

01744                                                              {
01745   request->next() = fHead;
01746   fHead = request;
01747   if (fTail == NULL) {
01748     fTail = request;
01749   }
01750 }

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

Definition at line 1752 of file RTSPClient.cpp.

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

Referenced by RTSPClient::changeResponseHandler().

01752                                                                          {
01753   RequestRecord* request;
01754   for (request = fHead; request != NULL; request = request->next()) {
01755     if (request->cseq() == cseq) return request;
01756   }
01757   return NULL;
01758 }

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

Definition at line 233 of file RTSPClient.hh.

References fHead, and NULL.

Referenced by RTSPClient::sendRequest().

00233 { return fHead == NULL; }


Field Documentation

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

Definition at line 236 of file RTSPClient.hh.

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

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

Definition at line 237 of file RTSPClient.hh.

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


The documentation for this class was generated from the following files:
Generated on Mon Apr 29 13:32:32 2013 for live by  doxygen 1.5.2