IT++ Logo Newcom Logo

itpp::TCP_Receiver_Buffer Class Reference

#include <itpp/protocol/tcp.h>

List of all members.

Public Member Functions

 TCP_Receiver_Buffer ()
 TCP_Receiver_Buffer (const TCP_Receiver_Buffer &)
 ~TCP_Receiver_Buffer ()
void reset ()
 clears internal list structure
void write (TCP_Segment newBlock)
 add segment to the queue
void read (unsigned noOfBytes)
 read up to "noOfBytes" bytes from queue
unsigned first_block_size () const
 size of first complete block
Sequence_Number first_byte () const
 first byte stored or missing
Sequence_Number last_byte () const
 highest byte received (+1)
Sequence_Number next_expected () const
 first byte missing
unsigned window () const
std::ostream & info (std::ostream &os, int detail=0) const
 print info

Protected Attributes

Sequence_Number fFirstByte
 first byte stored or missing
std::list< TCP_SegmentfBufList


Detailed Description

TTCPReceiverBuffer is an important part of TTCPReceiver. It is much more complex than the buffer model at the sender side as it has to keep track of out of order segments. The segments received are combined if possible and the resulting non-contiguous segments are stored in a linked list. Moreover TTCPReceiverBuffer stores the smallest sequence number that has not (yet) been read out by the TCP receiver ("first byte").

Data is written to the buffer by TTCPReceiver using method Write and read out using method Read. Before reading data the TCP receiver has to check whether a data block in the stream is available by calling FirstBlockSize.

Furthermore, TTCPReceiver requires information from TTCPReceiverBuffer, e.g. about the next sequence number that is missing in the stream (NextExpected) or the receiver window that can be advertised to the sender (Window).

See also:
TTCPReceiver
Author:
Bodamer

Kutter

Definition at line 438 of file tcp.h.


Member Function Documentation

void itpp::TCP_Receiver_Buffer::reset (  ) 

clears internal list structure

Definition at line 1298 of file tcp.cpp.

void itpp::TCP_Receiver_Buffer::write ( TCP_Segment  newBlock  ) 

add segment to the queue

Definition at line 1310 of file tcp.cpp.

void itpp::TCP_Receiver_Buffer::read ( unsigned  noOfBytes  ) 

read up to "noOfBytes" bytes from queue

Definition at line 1371 of file tcp.cpp.

unsigned itpp::TCP_Receiver_Buffer::first_block_size (  )  const

size of first complete block

Definition at line 1390 of file tcp.cpp.

Referenced by next_expected().

Sequence_Number itpp::TCP_Receiver_Buffer::first_byte (  )  const [inline]

first byte stored or missing

Definition at line 586 of file tcp.h.

References fFirstByte.

Sequence_Number itpp::TCP_Receiver_Buffer::last_byte (  )  const [inline]

highest byte received (+1)

Definition at line 592 of file tcp.h.

References fBufList, and fFirstByte.

Sequence_Number itpp::TCP_Receiver_Buffer::next_expected (  )  const [inline]

first byte missing

Definition at line 602 of file tcp.h.

References fFirstByte, and first_block_size().

std::ostream & itpp::TCP_Receiver_Buffer::info ( std::ostream &  os,
int  detail = 0 
) const

print info

Definition at line 1400 of file tcp.cpp.


Member Data Documentation

Sequence_Number itpp::TCP_Receiver_Buffer::fFirstByte [protected]

first byte stored or missing

Definition at line 458 of file tcp.h.

Referenced by first_byte(), last_byte(), and next_expected().


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

Generated on Fri Jun 8 02:09:06 2007 for IT++ by Doxygen 1.5.2