INET Framework for OMNeT++/OMNEST
|
#include <TcpLwipQueues.h>
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 | |
TcpLwipConnection * | connM |
|
inline |
Ctor.
|
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().
|
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().
|
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.
|
pure virtual |
Returns the number of blocks currently buffered in queue.
Implemented in inet::tcp::TcpLwipMsgBasedReceiveQueue, inet::tcp::TcpLwipByteStreamReceiveQueue, and inet::tcp::TcpLwipVirtualDataReceiveQueue.
|
pure virtual |
Shows current queue status.
Implemented in inet::tcp::TcpLwipMsgBasedReceiveQueue, inet::tcp::TcpLwipByteStreamReceiveQueue, and inet::tcp::TcpLwipVirtualDataReceiveQueue.
|
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().
|
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().
|
inlinevirtual |
Add a connection queue.
Reimplemented in inet::tcp::TcpLwipMsgBasedReceiveQueue, inet::tcp::TcpLwipByteStreamReceiveQueue, and inet::tcp::TcpLwipVirtualDataReceiveQueue.
Referenced by inet::tcp::TcpLwipVirtualDataReceiveQueue::setConnection(), inet::tcp::TcpLwipByteStreamReceiveQueue::setConnection(), inet::tcp::TcpLwipMsgBasedReceiveQueue::setConnection(), and inet::tcp::TcpLwipConnection::TcpLwipConnection().
|
protected |