User Manual, Developers Guide and API Documentation

wns::ldk::tools::Synchronizer Class Reference

A one-packet-delay. More...

#include <ldk/tools/Synchronizer.hpp>

Inheritance diagram for wns::ldk::tools::Synchronizer:

Inheritance graph
[legend]
Collaboration diagram for wns::ldk::tools::Synchronizer:

Collaboration graph
[legend]

List of all members.

Public Member Functions

virtual CompoundPtr getSomethingToSend ()
 Return the PDU that is ready to be sent.
virtual bool hasCapacity () const
 Return true, if the FunctionalUnit is still accepting compounds.
virtual const CompoundPtr hasSomethingToSend () const
 Return a PDU that is ready to be sent or NULL, if none available.
virtual void processIncoming (const CompoundPtr &compound)
 Process compounds on uplink.
virtual void processOutgoing (const CompoundPtr &)
 Process compounds on downlink.
 Synchronizer (fun::FUN *fuNet, const pyconfig::View &_config)

Public Attributes

int ind
int req

Private Attributes

CompoundPtr buffer
pyconfig::View config


Detailed Description

Use the Synchronizer to break up long isAccepting-chains. This is necessary in some situations, where lower isAccepting decisions depend on Commands that have not been activated so far. Trying to access these would fail.
U will usually have groups of functional units implementing functional blocks (for example RLC as a group consisting of functional units like an ARQ, ...). Consider separating these groups by a Synchronizer.
Todo:
bad documentation

Definition at line 56 of file Synchronizer.hpp.


Constructor & Destructor Documentation

wns::ldk::tools::Synchronizer::Synchronizer ( fun::FUN fuNet,
const pyconfig::View _config 
) [inline]

Definition at line 65 of file Synchronizer.hpp.


Member Function Documentation

CompoundPtr Synchronizer::getSomethingToSend (  )  [virtual]

This method must never return NULL. This method will only be called after a call to hasSomethingToSend returned a non-null value. The FunctionalUnit must return the same PDU as returned by hasSomethingToSend.

Implements wns::ldk::DelayedInterface.

Definition at line 72 of file Synchronizer.cpp.

bool Synchronizer::hasCapacity (  )  const [virtual]

While hasCapacity returns false, processIncoming will never be called.

Implements wns::ldk::DelayedInterface.

Definition at line 58 of file Synchronizer.cpp.

const CompoundPtr Synchronizer::hasSomethingToSend (  )  const [virtual]

Implements wns::ldk::DelayedInterface.

Definition at line 65 of file Synchronizer.cpp.

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

Override this method to handle incoming compounds.

Implements wns::ldk::DelayedInterface.

Definition at line 38 of file Synchronizer.cpp.

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

Override this method to handle outgoing compounds.

Implements wns::ldk::DelayedInterface.

Definition at line 47 of file Synchronizer.cpp.


Member Data Documentation

Definition at line 91 of file Synchronizer.hpp.

Definition at line 90 of file Synchronizer.hpp.

Definition at line 86 of file Synchronizer.hpp.

Definition at line 87 of file Synchronizer.hpp.


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

Generated on Sun May 27 03:33:00 2012 for openWNS by  doxygen 1.5.5