User Manual, Developers Guide and API Documentation

wns::ldk::arq::CumulativeACK Class Reference

CumulativeACK implementation of the ARQ interface. More...

#include <ldk/arq/CumulativeACK.hpp>

Inheritance diagram for wns::ldk::arq::CumulativeACK:

Inheritance graph
[legend]
Collaboration diagram for wns::ldk::arq::CumulativeACK:

Collaboration graph
[legend]

List of all members.

Public Member Functions

void calculateSizes (const CommandPool *commandPool, Bit &commandPoolSize, Bit &sduSize) const
 Calculate the sizes of the PDU.
 CumulativeACK (fun::FUN *fuNet, const wns::pyconfig::View &config)
 FUNConfigCreator interface realisation.
virtual wns::ldk::CompoundPtr getACK ()
 Return an acknowledgement Compound for transmission.
virtual wns::ldk::CompoundPtr getData ()
 Return a user data Compound for transmission.
virtual const wns::ldk::CompoundPtr hasACK () const
 ARQ interface realization.
virtual bool hasCapacity () const
 Return true, if the FunctionalUnit is still accepting compounds.
virtual const wns::ldk::CompoundPtr hasData () const
 Return a user data Compound that should be considered for transmission.
virtual bool onSuspend () const
virtual void onTimeout ()
 CanTimeout interface realisation.
virtual void processIncoming (const CompoundPtr &compound)
 Process compounds on uplink.
virtual void processOutgoing (const CompoundPtr &sdu)
 Process compounds on downlink.
 ~CumulativeACK ()

Protected Member Functions

virtual void doDelayDelivery ()
virtual void doDeliver ()

Protected Attributes

wns::ldk::CompoundPtr ackCompound
 ACK PDU.
int delayedDeliveryNR
bool delayingDelivery
logger::Logger logger
unsigned long int NR
 Sequence number of the next packet expected to be received.
unsigned long int NS
 Sequence number of the next packet to be sent.
unsigned long int NSack
 Sequence number of the first packet expected to be acknowledged.
CAElements receivingCompounds
 Container for compounds with their Atributes.
double resendTimeout
 Time between two transmissions of the same PDU.
CAElements sendingCompounds
int sequenceNumberSize
 Divisor for Sequence Numbers.
unsigned long int wS
 Window size.

Private Types

typedef std::vector< CAElementCAElements
 Container for the compounds and their Attributes.

Classes

class  CAElement
 An element for a PDU and its ARQ-Attributes . More...


Detailed Description

Todo:
Piggyback feasibility
Todo:
Implementation of SREJ Function if a SelectiveRejectFct is needed
Todo:
check if default copy c'tor is ok here

Definition at line 85 of file CumulativeACK.hpp.


Member Typedef Documentation

typedef std::vector<CAElement> wns::ldk::arq::CumulativeACK::CAElements [private]

Definition at line 135 of file CumulativeACK.hpp.


Constructor & Destructor Documentation

CumulativeACK::CumulativeACK ( fun::FUN fuNet,
const wns::pyconfig::View config 
)

Definition at line 41 of file CumulativeACK.cpp.

CumulativeACK::~CumulativeACK (  ) 

Definition at line 67 of file CumulativeACK.cpp.


Member Function Documentation

void CumulativeACK::calculateSizes ( const CommandPool commandPool,
Bit commandPoolSize,
Bit dataSize 
) const [virtual]

During size calculation, each FunctionalUnit is asked for the size of the PCI and SDU. Calculation begins with the layer the PDU last visited. To be able to calculate the sizes, a FunctionalUnit may in turn need to know the sizes as calculated by the FunctionalUnit right above itself.

It can do that by simply asking the CommandProxy, giving itself as questioner. The CommandProxy will then delegate the calculation request to the next higher FunctionalUnit in the path of the PDU.

Implements wns::ldk::CommandTypeSpecifierInterface.

Definition at line 289 of file CumulativeACK.cpp.

void CumulativeACK::doDelayDelivery (  )  [protected, virtual]

Implements wns::ldk::DelayedDeliveryInterface.

Definition at line 307 of file CumulativeACK.cpp.

void CumulativeACK::doDeliver (  )  [protected, virtual]

Implements wns::ldk::DelayedDeliveryInterface.

Definition at line 314 of file CumulativeACK.cpp.

wns::ldk::CompoundPtr CumulativeACK::getACK (  )  [virtual]

getACK will only get called after a call to hasACK. Every implementation of this interface /must/ return the same Compound for subsequent hasACK/getACK calls.

Implements wns::ldk::arq::ARQ.

Definition at line 130 of file CumulativeACK.cpp.

wns::ldk::CompoundPtr CumulativeACK::getData (  )  [virtual]

getData will only get called after a call to hasData. Every implementation of this interface /must/ return the same Compound for subsequent hasData/getData calls.

Implements wns::ldk::arq::ARQ.

Definition at line 142 of file CumulativeACK.cpp.

const wns::ldk::CompoundPtr CumulativeACK::hasACK (  )  const [virtual]

Implements wns::ldk::arq::ARQ.

Definition at line 107 of file CumulativeACK.cpp.

bool CumulativeACK::hasCapacity (  )  const [virtual]

While hasCapacity returns false, processIncoming will never be called.

Implements wns::ldk::DelayedInterface.

Definition at line 75 of file CumulativeACK.cpp.

const wns::ldk::CompoundPtr CumulativeACK::hasData (  )  const [virtual]

Every implementation should return CompoundPtr() in case there is no user data Compound scheduled for transmission.

Implements wns::ldk::arq::ARQ.

Definition at line 114 of file CumulativeACK.cpp.

bool CumulativeACK::onSuspend (  )  const [virtual]

Implements wns::ldk::SuspendSupport.

Definition at line 301 of file CumulativeACK.cpp.

virtual void wns::ldk::arq::CumulativeACK::onTimeout (  )  [inline, virtual]

Implements wns::events::CanTimeout.

Definition at line 143 of file CumulativeACK.hpp.

void CumulativeACK::processIncoming ( const CompoundPtr compound  )  [virtual]

Override this method to handle incoming compounds.

Implements wns::ldk::DelayedInterface.

Definition at line 165 of file CumulativeACK.cpp.

void CumulativeACK::processOutgoing ( const CompoundPtr  )  [virtual]

Override this method to handle outgoing compounds.

Implements wns::ldk::DelayedInterface.

Definition at line 87 of file CumulativeACK.cpp.


Member Data Documentation

Definition at line 168 of file CumulativeACK.hpp.

Definition at line 186 of file CumulativeACK.hpp.

Definition at line 185 of file CumulativeACK.hpp.

Definition at line 188 of file CumulativeACK.hpp.

unsigned long int wns::ldk::arq::CumulativeACK::NR [protected]

Definition at line 176 of file CumulativeACK.hpp.

unsigned long int wns::ldk::arq::CumulativeACK::NS [protected]

Definition at line 172 of file CumulativeACK.hpp.

unsigned long int wns::ldk::arq::CumulativeACK::NSack [protected]

Definition at line 174 of file CumulativeACK.hpp.

Definition at line 180 of file CumulativeACK.hpp.

Definition at line 183 of file CumulativeACK.hpp.

Definition at line 181 of file CumulativeACK.hpp.

Definition at line 178 of file CumulativeACK.hpp.

unsigned long int wns::ldk::arq::CumulativeACK::wS [protected]

Definition at line 170 of file CumulativeACK.hpp.


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

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