#include <itpp/protocol/tcp.h>
Public Member Functions | |
TCP_Receiver_Buffer () | |
ADD DOCUMENTATION HERE. | |
TCP_Receiver_Buffer (const TCP_Receiver_Buffer &) | |
ADD DOCUMENTATION HERE. | |
~TCP_Receiver_Buffer () | |
ADD DOCUMENTATION HERE. | |
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 |
ADD DOCUMENTATION HERE. | |
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_Segment > | fBufList |
ADD DOCUMENTATION HERE. | |
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).
Generated on Sat Jul 6 2013 10:54:34 for IT++ by Doxygen 1.8.2