Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

TCPReceiveQueue Class Reference

#include <TCPReceiveQueue.h>

Inheritance diagram for TCPReceiveQueue:

TCPVirtualDataRcvQueue TCPMsgBasedRcvQueue List of all members.

Detailed Description

Abstract base class for TCP receive queues. This class represents data received by TCP but not yet passed up to the application. The class also accomodates for selective retransmission, i.e. also acts as a segment buffer.

This class goes hand-in-hand with TCPSendQueue.

This class is polymorphic because depending on where and how you use the TCP model you might have different ideas about "sending data" on a simulated connection: you might want to transmit real bytes, "dummy" (byte count only), cMessage objects, etc; see discussion at TCPSendQueue. Different subclasses can be written to accomodate different needs.

See also:
TCPSendQueue


Public Member Functions

 TCPReceiveQueue ()
virtual ~TCPReceiveQueue ()
virtual void init (uint32 startSeq)=0
virtual uint32 insertBytesFromSegment (TCPSegment *tcpseg)=0
virtual cMessage * extractBytesUpTo (uint32 seq)=0

Protected Attributes

TCPConnectionconn


Constructor & Destructor Documentation

TCPReceiveQueue::TCPReceiveQueue  )  [inline]
 

Ctor.

00056 {conn=NULL;}

virtual TCPReceiveQueue::~TCPReceiveQueue  )  [inline, virtual]
 

Virtual dtor.

00061 {}


Member Function Documentation

virtual cMessage* TCPReceiveQueue::extractBytesUpTo uint32  seq  )  [pure virtual]
 

Should create a packet to be passed up to the app, up to (but NOT including) the given sequence no (usually rcv_nxt). It should return NULL if there's no more data to be passed up -- this method is called several times until it returns NULL.

Implemented in TCPMsgBasedRcvQueue, and TCPVirtualDataRcvQueue.

virtual void TCPReceiveQueue::init uint32  startSeq  )  [pure virtual]
 

Set initial receive sequence number.

Implemented in TCPMsgBasedRcvQueue, and TCPVirtualDataRcvQueue.

virtual uint32 TCPReceiveQueue::insertBytesFromSegment TCPSegment tcpseg  )  [pure virtual]
 

Called when a TCP segment arrives, it should extract the payload from the segment and store it in the receive queue. The segment object should *not* be deleted.

The method should return the sequence number to be ACKed.

Implemented in TCPMsgBasedRcvQueue, and TCPVirtualDataRcvQueue.


Member Data Documentation

TCPConnection* TCPReceiveQueue::conn [protected]
 


The documentation for this class was generated from the following file:
Generated on Sat Apr 1 20:52:25 2006 for INET Framework for OMNeT++/OMNEST by  doxygen 1.4.1