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

TCP send queue that stores actual bytes. More...

#include <TCPByteStreamRcvQueue.h>

Inheritance diagram for inet::tcp::TCPByteStreamRcvQueue:
inet::tcp::TCPVirtualDataRcvQueue inet::tcp::TCPReceiveQueue

Classes

class  Region
 

Public Member Functions

 TCPByteStreamRcvQueue ()
 Ctor. More...
 
virtual ~TCPByteStreamRcvQueue ()
 Virtual dtor. More...
 
virtual std::string info () const override
 Returns a string with region stored. More...
 
cPacket * extractBytesUpTo (uint32 seq) override
 Method inherited from TCPReceiveQueue. More...
 
virtual TCPVirtualDataRcvQueue::RegioncreateRegionFromSegment (TCPSegment *tcpseg) override
 Create a new Region from tcpseg. More...
 
- Public Member Functions inherited from inet::tcp::TCPVirtualDataRcvQueue
 TCPVirtualDataRcvQueue ()
 Ctor. More...
 
virtual ~TCPVirtualDataRcvQueue ()
 Virtual dtor. More...
 
virtual void init (uint32 startSeq) override
 Method inherited from TCPReceiveQueue. More...
 
virtual uint32 insertBytesFromSegment (TCPSegment *tcpseg) override
 Method inherited from TCPReceiveQueue. More...
 
virtual uint32 getAmountOfBufferedBytes () override
 Method inherited from TCPReceiveQueue. More...
 
virtual uint32 getAmountOfFreeBytes (uint32 maxRcvBuffer) override
 Method inherited from TCPReceiveQueue. More...
 
virtual uint32 getQueueLength () override
 Method inherited from TCPReceiveQueue. More...
 
virtual void getQueueStatus () override
 Method inherited from TCPReceiveQueue. More...
 
virtual uint32 getLE (uint32 fromSeqNum) override
 Method inherited from TCPReceiveQueue. More...
 
virtual uint32 getRE (uint32 toSeqNum) override
 Method inherited from TCPReceiveQueue. More...
 
virtual uint32 getFirstSeqNo () override
 Returns the minimum of first byte seq.no. More...
 
- Public Member Functions inherited from inet::tcp::TCPReceiveQueue
 TCPReceiveQueue ()
 Ctor. More...
 
virtual ~TCPReceiveQueue ()
 Virtual dtor. More...
 
virtual void setConnection (TCPConnection *_conn)
 Set the connection that owns this queue. More...
 

Additional Inherited Members

- Protected Types inherited from inet::tcp::TCPVirtualDataRcvQueue
typedef std::list< Region * > RegionList
 
- Protected Member Functions inherited from inet::tcp::TCPVirtualDataRcvQueue
void merge (TCPVirtualDataRcvQueue::Region *region)
 Merge segment byte range into regionList, the parameter region must created by 'new' operator. More...
 
TCPVirtualDataRcvQueue::RegionextractTo (uint32 toSeq)
 
- Protected Attributes inherited from inet::tcp::TCPVirtualDataRcvQueue
uint32 rcv_nxt = 0
 
RegionList regionList
 
- Protected Attributes inherited from inet::tcp::TCPReceiveQueue
TCPConnectionconn
 

Detailed Description

TCP send queue that stores actual bytes.

See also
TCPSendQueue

Constructor & Destructor Documentation

inet::tcp::TCPByteStreamRcvQueue::TCPByteStreamRcvQueue ( )
inline

Ctor.

TCPVirtualDataRcvQueue()
Ctor.
Definition: TCPVirtualDataRcvQueue.cc:79
inet::tcp::TCPByteStreamRcvQueue::~TCPByteStreamRcvQueue ( )
virtual

Virtual dtor.

88 {
89 }

Member Function Documentation

TCPVirtualDataRcvQueue::Region * inet::tcp::TCPByteStreamRcvQueue::createRegionFromSegment ( TCPSegment tcpseg)
overridevirtual

Create a new Region from tcpseg.

Called from insertBytesFromSegment()

Reimplemented from inet::tcp::TCPVirtualDataRcvQueue.

119 {
120  ASSERT(tcpseg->getPayloadLength() == tcpseg->getByteArray().getDataArraySize());
121 
122  Region *region = new Region(tcpseg->getSequenceNo(),
123  tcpseg->getSequenceNo() + tcpseg->getPayloadLength(), tcpseg->getByteArray());
124 
125  return region;
126 }
cPacket * inet::tcp::TCPByteStreamRcvQueue::extractBytesUpTo ( uint32  seq)
overridevirtual

Method inherited from TCPReceiveQueue.

Reimplemented from inet::tcp::TCPVirtualDataRcvQueue.

107 {
108  cPacket *msg = nullptr;
109  TCPVirtualDataRcvQueue::Region *reg = extractTo(seq);
110  if (reg) {
111  msg = new RawPacket("data");
112  reg->copyTo(msg);
113  delete reg;
114  }
115  return msg;
116 }
TCPVirtualDataRcvQueue::Region * extractTo(uint32 toSeq)
Definition: TCPVirtualDataRcvQueue.cc:189
std::string inet::tcp::TCPByteStreamRcvQueue::info ( ) const
overridevirtual

Returns a string with region stored.

Reimplemented from inet::tcp::TCPVirtualDataRcvQueue.

92 {
93  std::stringstream os;
94 
95  os << "rcv_nxt=" << rcv_nxt;
96 
97  for (const auto & elem : regionList) {
98  os << " [" << (elem)->getBegin() << ".." << (elem)->getEnd() << ")";
99  }
100 
101  os << " " << regionList.size() << "msgs";
102 
103  return os.str();
104 }
RegionList regionList
Definition: TCPVirtualDataRcvQueue.h:77
uint32 rcv_nxt
Definition: TCPVirtualDataRcvQueue.h:41

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