User Manual, Developers Guide and API Documentation

tcp::CumulativeACK Class Reference

#include <CumulativeACK.hpp>

Inheritance diagram for tcp::CumulativeACK:

Inheritance graph
[legend]
Collaboration diagram for tcp::CumulativeACK:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 CumulativeACK (wns::ldk::fun::FUN *_fun, const wns::pyconfig::View &_pyco)
virtual bool doIsAccepting (const wns::ldk::CompoundPtr &_compound) const
 Implementation of the CompoundHandlerInterface.
virtual void doOnData (const wns::ldk::CompoundPtr &_compound)
virtual void doSendData (const wns::ldk::CompoundPtr &_compound)
simTimeType getRetransmissionTimeout ()
virtual void onFUNCreated ()
 Resolve inter-FU dependencies.
unsigned long int sendCredit () const
 Return the number of compounds being allowed to be sent.
virtual ~CumulativeACK ()
 Component's destructor.

Private Types

typedef
wns::container::Registry
< unsigned long int,
wns::ldk::CompoundPtr,
wns::container::registry::NoneOnErase
Compounds
 Container for the compounds.
typedef
wns::container::Registry
< unsigned long int, Timeout
*, wns::container::registry::DeleteOnErase
Timeouts
 Container for the time out events.

Private Member Functions

void doWakeup ()
unsigned long int min (const unsigned long int x, const unsigned long int y) const
void retransmitData (const unsigned long int seqNr)
void updateTCPHeader (const wns::ldk::CompoundPtr &_compound)

Private Attributes

wns::ldk::CompoundPtr ackCompound
 Acknowledgement compound of the last in order received TCP segement.
unsigned long int ackNR
 The sequence number of the next segment to be received/acknowledged.
unsigned long int advertisedWindowSize
 The receiver's buffer size being capable of processing incoming TCP segments.
CongestionControlccStrategy
 The congestion control instance which guaranties slow start behaviour and is recalculating window size from the sender's point of view.
wns::ldk::CompoundPtr copiedACKCompound
wns::ldk::fun::FUNfun
unsigned long int instanceID
unsigned long int lastACKInOrder
 The last successfully received acknowledgment number.
wns::logger::Logger logger
unsigned long int probeNumber
bool probingEnabled
const wns::pyconfig::Viewpyco
Compounds receivingCompounds
 Container for received compounds.
simTimeType retransmissionTimeout
 Time between retransmitting a TCP segment given in seconds.
wns::probe::bus::ContextCollectorPtr sendCreditContextCollector
Compounds sendingCompounds
 All the compounds that have been sent but not acknowledged yet.
unsigned long int sequenceNR
 The sequence number of the next segment to be sent.
wns::ldk::CommandReaderInterfacetcpHeaderReader
 Reader for the TCP Header.
Timeouts timeoutSendingCompounds
 Timeout events of compounds sent out.
wns::probe::bus::ContextCollectorPtr windowSizeContextCollector

Classes

class  Timeout
 An element for a compound. More...


Detailed Description

Definition at line 103 of file CumulativeACK.hpp.


Member Typedef Documentation

Definition at line 163 of file CumulativeACK.hpp.

Definition at line 158 of file CumulativeACK.hpp.


Constructor & Destructor Documentation

CumulativeACK::CumulativeACK ( wns::ldk::fun::FUN _fun,
const wns::pyconfig::View _pyco 
)

Definition at line 51 of file CumulativeACK.cpp.

CumulativeACK::~CumulativeACK (  )  [virtual]

Definition at line 94 of file CumulativeACK.cpp.


Member Function Documentation

virtual bool tcp::CumulativeACK::doIsAccepting ( const wns::ldk::CompoundPtr _compound  )  const [virtual]

virtual void tcp::CumulativeACK::doOnData ( const wns::ldk::CompoundPtr _compound  )  [virtual]

virtual void tcp::CumulativeACK::doSendData ( const wns::ldk::CompoundPtr _compound  )  [virtual]

void CumulativeACK::doWakeup (  )  [private]

Definition at line 384 of file CumulativeACK.cpp.

simTimeType tcp::CumulativeACK::getRetransmissionTimeout (  )  [inline]

Definition at line 198 of file CumulativeACK.hpp.

unsigned long int CumulativeACK::min ( const unsigned long int  x,
const unsigned long int  y 
) const [private]

Definition at line 394 of file CumulativeACK.cpp.

void CumulativeACK::onFUNCreated (  )  [virtual]

Often FunctionalUnits require the collaboration with other FunctionalUnits to accomplish their task. For the collaboration between FunctionalUnits we coined the term "friendship".

The onFUNCreated method is a hook being called after the complete FUN has been set up. FunctionalUnits requiring the collaboration with other FunctionalUnits should resolve these dependencies by implementing this hook accordingly.

Finding friends is usually done calling wns::ldk::fun::FUN::findFriend.

When building reconfigurable FUNs, this method may get called multiple times (e.g., after each FUN reconfiguration). Keep that in mind when allocating resources in your onFUNCreated implementation.

Reimplemented from wns::ldk::FunctionalUnit.

Definition at line 115 of file CumulativeACK.cpp.

void CumulativeACK::retransmitData ( const unsigned long int  seqNr  )  [private]

Definition at line 348 of file CumulativeACK.cpp.

unsigned long int CumulativeACK::sendCredit (  )  const

Definition at line 401 of file CumulativeACK.cpp.

void tcp::CumulativeACK::updateTCPHeader ( const wns::ldk::CompoundPtr _compound  )  [private]


Member Data Documentation

Definition at line 271 of file CumulativeACK.hpp.

unsigned long int tcp::CumulativeACK::ackNR [private]

Definition at line 240 of file CumulativeACK.hpp.

Definition at line 230 of file CumulativeACK.hpp.

Definition at line 224 of file CumulativeACK.hpp.

Definition at line 272 of file CumulativeACK.hpp.

Definition at line 217 of file CumulativeACK.hpp.

unsigned long int tcp::CumulativeACK::instanceID [private]

Definition at line 281 of file CumulativeACK.hpp.

unsigned long int tcp::CumulativeACK::lastACKInOrder [private]

Definition at line 245 of file CumulativeACK.hpp.

Definition at line 215 of file CumulativeACK.hpp.

unsigned long int tcp::CumulativeACK::probeNumber [private]

Definition at line 279 of file CumulativeACK.hpp.

Definition at line 283 of file CumulativeACK.hpp.

Definition at line 213 of file CumulativeACK.hpp.

Definition at line 255 of file CumulativeACK.hpp.

Definition at line 250 of file CumulativeACK.hpp.

Definition at line 286 of file CumulativeACK.hpp.

Definition at line 260 of file CumulativeACK.hpp.

unsigned long int tcp::CumulativeACK::sequenceNR [private]

Definition at line 235 of file CumulativeACK.hpp.

Definition at line 277 of file CumulativeACK.hpp.

Definition at line 265 of file CumulativeACK.hpp.

Definition at line 285 of file CumulativeACK.hpp.


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

Generated on Sat May 26 03:32:39 2012 for openWNS by  doxygen 1.5.5