INET Framework for OMNeT++/OMNEST
inet::tcp::TCP_NSC_VirtualDataReceiveQueue Class Reference

Send/Receive queue that manages "virtual bytes", that is, byte counts only. More...

#include <TCP_NSC_VirtualDataQueues.h>

Inheritance diagram for inet::tcp::TCP_NSC_VirtualDataReceiveQueue:
inet::tcp::TCP_NSC_ReceiveQueue

Public Member Functions

 TCP_NSC_VirtualDataReceiveQueue ()
 Ctor. More...
 
virtual ~TCP_NSC_VirtualDataReceiveQueue ()
 Virtual dtor. More...
 
virtual void setConnection (TCP_NSC_Connection *connP) override
 Add a connection queue. More...
 
virtual void notifyAboutIncomingSegmentProcessing (TCPSegment *tcpsegP) override
 Called when a TCP segment arrives. More...
 
virtual void enqueueNscData (void *dataP, int dataLengthP) override
 The method called when data received from NSC The method should set status of the data in queue to received called after socket->read_data() successfull. More...
 
virtual cPacket * extractBytesUpTo () override
 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 override
 Returns the number of bytes (out-of-order-segments) currently buffered in queue. More...
 
virtual uint32 getQueueLength () const override
 Returns the number of blocks currently buffered in queue. More...
 
virtual void getQueueStatus () const override
 Shows current queue status. More...
 
virtual void notifyAboutSending (const TCPSegment *tcpsegP) override
 notify the queue about output messages More...
 
- Public Member Functions inherited from inet::tcp::TCP_NSC_ReceiveQueue
 TCP_NSC_ReceiveQueue ()
 Ctor. More...
 
virtual ~TCP_NSC_ReceiveQueue ()
 Virtual dtor. More...
 

Protected Attributes

long int bytesInQueueM
 
- Protected Attributes inherited from inet::tcp::TCP_NSC_ReceiveQueue
TCP_NSC_ConnectionconnM
 

Detailed Description

Send/Receive queue that manages "virtual bytes", that is, byte counts only.

Constructor & Destructor Documentation

inet::tcp::TCP_NSC_VirtualDataReceiveQueue::TCP_NSC_VirtualDataReceiveQueue ( )

Ctor.

95  :
96  bytesInQueueM(0)
97 {
98 }
long int bytesInQueueM
Definition: TCP_NSC_VirtualDataQueues.h:97
inet::tcp::TCP_NSC_VirtualDataReceiveQueue::~TCP_NSC_VirtualDataReceiveQueue ( )
virtual

Virtual dtor.

101 {
102  // nothing to do here
103 }

Member Function Documentation

void inet::tcp::TCP_NSC_VirtualDataReceiveQueue::enqueueNscData ( void *  dataP,
int  dataLengthP 
)
overridevirtual

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

Implements inet::tcp::TCP_NSC_ReceiveQueue.

119 {
120  bytesInQueueM += dataLengthP;
121 }
long int bytesInQueueM
Definition: TCP_NSC_VirtualDataQueues.h:97
cPacket * inet::tcp::TCP_NSC_VirtualDataReceiveQueue::extractBytesUpTo ( )
overridevirtual

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

Implements inet::tcp::TCP_NSC_ReceiveQueue.

124 {
125  ASSERT(connM);
126 
127  cPacket *dataMsg = nullptr;
128 
129  if (bytesInQueueM) {
130  dataMsg = new cPacket("DATA");
131  dataMsg->setKind(TCP_I_DATA);
132  dataMsg->setByteLength(bytesInQueueM);
133  bytesInQueueM -= dataMsg->getByteLength();
134  }
135 
136  return dataMsg;
137 }
TCP_NSC_Connection * connM
Definition: TCP_NSC_Queues.h:229
Definition: TCPCommand_m.h:98
long int bytesInQueueM
Definition: TCP_NSC_VirtualDataQueues.h:97
uint32 inet::tcp::TCP_NSC_VirtualDataReceiveQueue::getAmountOfBufferedBytes ( ) const
overridevirtual

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

Implements inet::tcp::TCP_NSC_ReceiveQueue.

140 {
141  return bytesInQueueM;
142 }
long int bytesInQueueM
Definition: TCP_NSC_VirtualDataQueues.h:97
uint32 inet::tcp::TCP_NSC_VirtualDataReceiveQueue::getQueueLength ( ) const
overridevirtual

Returns the number of blocks currently buffered in queue.

Implements inet::tcp::TCP_NSC_ReceiveQueue.

145 {
146  return bytesInQueueM ? 1 : 0;
147 }
long int bytesInQueueM
Definition: TCP_NSC_VirtualDataQueues.h:97
void inet::tcp::TCP_NSC_VirtualDataReceiveQueue::getQueueStatus ( ) const
overridevirtual

Shows current queue status.

Implements inet::tcp::TCP_NSC_ReceiveQueue.

150 {
151  // TODO
152 }
void inet::tcp::TCP_NSC_VirtualDataReceiveQueue::notifyAboutIncomingSegmentProcessing ( TCPSegment tcpsegP)
overridevirtual

Called when a TCP segment arrives.

The segment object should not be deleted.

For remove and store payload messages if need.

called before nsc_stack->if_receive_packet() called

Implements inet::tcp::TCP_NSC_ReceiveQueue.

114 {
115  ASSERT(tcpsegP);
116 }
void inet::tcp::TCP_NSC_VirtualDataReceiveQueue::notifyAboutSending ( const TCPSegment tcpsegP)
overridevirtual

notify the queue about output messages

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

Implements inet::tcp::TCP_NSC_ReceiveQueue.

155 {
156  // nothing to do
157 }
void inet::tcp::TCP_NSC_VirtualDataReceiveQueue::setConnection ( TCP_NSC_Connection connP)
overridevirtual

Add a connection queue.

Reimplemented from inet::tcp::TCP_NSC_ReceiveQueue.

106 {
107  ASSERT(connP);
108 
109  bytesInQueueM = 0;
111 }
virtual void setConnection(TCP_NSC_Connection *connP)
Add a connection queue.
Definition: TCP_NSC_Queues.h:176
long int bytesInQueueM
Definition: TCP_NSC_VirtualDataQueues.h:97

Member Data Documentation

long int inet::tcp::TCP_NSC_VirtualDataReceiveQueue::bytesInQueueM
protected

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