INET Framework for OMNeT++/OMNEST
inet::tcp::TcpLwipReceiveQueue Class Referenceabstract

#include <TcpLwipQueues.h>

Inheritance diagram for inet::tcp::TcpLwipReceiveQueue:
inet::tcp::TcpLwipByteStreamReceiveQueue inet::tcp::TcpLwipMsgBasedReceiveQueue inet::tcp::TcpLwipVirtualDataReceiveQueue

Public Member Functions

 TcpLwipReceiveQueue ()
 Ctor. More...
 
virtual ~TcpLwipReceiveQueue ()
 Virtual dtor. More...
 
virtual void setConnection (TcpLwipConnection *connP)
 Add a connection queue. More...
 
virtual void notifyAboutIncomingSegmentProcessing (TCPSegment *tcpsegP, uint32 seqNo, const void *bufferP, size_t bufferLengthP)=0
 Called when a TCP segment arrives, it should extract the payload from the segment and store it in the receive queue. More...
 
virtual void enqueueTcpLayerData (void *dataP, unsigned int dataLengthP)=0
 The method called when data received from LWIP The method should set status of the data in queue to received called after socket->read_data() successfull. More...
 
virtual cPacket * extractBytesUpTo ()=0
 Should create a packet to be passed up to the app, up to (but NOT including) the given sequence no (usually rcv_nxt). More...
 
virtual uint32 getAmountOfBufferedBytes () const =0
 Returns the number of bytes (out-of-order-segments) currently buffered in queue. More...
 
virtual uint32 getQueueLength () const =0
 Returns the number of blocks currently buffered in queue. More...
 
virtual void getQueueStatus () const =0
 Shows current queue status. More...
 
virtual void notifyAboutSending (const TCPSegment *tcpsegP)=0
 notify the queue about output messages More...
 

Protected Attributes

TcpLwipConnectionconnM
 

Constructor & Destructor Documentation

inet::tcp::TcpLwipReceiveQueue::TcpLwipReceiveQueue ( )
inline

Ctor.

154 : connM(nullptr) {};
TcpLwipConnection * connM
Definition: TcpLwipQueues.h:216
virtual inet::tcp::TcpLwipReceiveQueue::~TcpLwipReceiveQueue ( )
inlinevirtual

Virtual dtor.

159 {}

Member Function Documentation

virtual void inet::tcp::TcpLwipReceiveQueue::enqueueTcpLayerData ( void *  dataP,
unsigned int  dataLengthP 
)
pure virtual

The method called when data received from LWIP The method should set status of the data in queue to received called after socket->read_data() successfull.

Implemented in inet::tcp::TcpLwipMsgBasedReceiveQueue, inet::tcp::TcpLwipByteStreamReceiveQueue, and inet::tcp::TcpLwipVirtualDataReceiveQueue.

Referenced by inet::tcp::TCP_lwIP::tcp_event_recv().

virtual cPacket* inet::tcp::TcpLwipReceiveQueue::extractBytesUpTo ( )
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 nullptr if there's no more data to be passed up – this method is called several times until it returns nullptr.

called after socket->read_data() successfull

Implemented in inet::tcp::TcpLwipMsgBasedReceiveQueue, inet::tcp::TcpLwipByteStreamReceiveQueue, and inet::tcp::TcpLwipVirtualDataReceiveQueue.

Referenced by inet::tcp::TCP_lwIP::tcp_event_recv().

virtual uint32 inet::tcp::TcpLwipReceiveQueue::getAmountOfBufferedBytes ( ) const
pure virtual

Returns the number of bytes (out-of-order-segments) currently buffered in queue.

Implemented in inet::tcp::TcpLwipMsgBasedReceiveQueue, inet::tcp::TcpLwipByteStreamReceiveQueue, and inet::tcp::TcpLwipVirtualDataReceiveQueue.

virtual uint32 inet::tcp::TcpLwipReceiveQueue::getQueueLength ( ) const
pure virtual

Returns the number of blocks currently buffered in queue.

Implemented in inet::tcp::TcpLwipMsgBasedReceiveQueue, inet::tcp::TcpLwipByteStreamReceiveQueue, and inet::tcp::TcpLwipVirtualDataReceiveQueue.

virtual void inet::tcp::TcpLwipReceiveQueue::getQueueStatus ( ) const
pure virtual
virtual void inet::tcp::TcpLwipReceiveQueue::notifyAboutIncomingSegmentProcessing ( TCPSegment tcpsegP,
uint32  seqNo,
const void *  bufferP,
size_t  bufferLengthP 
)
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. //FIXME revise this comment

Implemented in inet::tcp::TcpLwipMsgBasedReceiveQueue, inet::tcp::TcpLwipByteStreamReceiveQueue, and inet::tcp::TcpLwipVirtualDataReceiveQueue.

Referenced by inet::tcp::TCP_lwIP::notifyAboutIncomingSegmentProcessing().

virtual void inet::tcp::TcpLwipReceiveQueue::notifyAboutSending ( const TCPSegment tcpsegP)
pure virtual

notify the queue about output messages

called when connM send out a packet. for read AckNo, if have

Implemented in inet::tcp::TcpLwipMsgBasedReceiveQueue, inet::tcp::TcpLwipByteStreamReceiveQueue, and inet::tcp::TcpLwipVirtualDataReceiveQueue.

Referenced by inet::tcp::TcpLwipConnection::notifyAboutSending().

Member Data Documentation


The documentation for this class was generated from the following file: