![]() |
User Manual, Developers Guide and API Documentation |
![]() |
#include <ldk/harq/HARQ.hpp>


Public Member Functions | |
| void | calculateSizes (const CommandPool *commandPool, Bit &commandPoolSize, Bit &dataSize) const |
| Calculate the sizes of the PDU. | |
| HARQFU (fun::FUN *fuNet, const wns::pyconfig::View &config) | |
| virtual void | onFUNCreated () |
| Resolve inter-FU dependencies. | |
| ~HARQFU () | |
Private Member Functions | |
| void | addToSendQueue (wns::ldk::CompoundPtr compound) |
| virtual wns::ldk::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 wns::ldk::CompoundPtr | hasSomethingToSend () const |
| Return a PDU that is ready to be sent or NULL, if none available. | |
| virtual void | processIncoming (const wns::ldk::CompoundPtr &compound) |
| Process compounds on uplink. | |
| virtual void | processOutgoing (const wns::ldk::CompoundPtr &) |
| Process compounds on downlink. | |
Private Attributes | |
| wns::logger::Logger | logger_ |
| int | numReceiverProcesses_ |
| int | numRVs_ |
| int | numSenderProcesses_ |
| std::vector < HARQFU::HARQReceiverProcess > | receiverProcesses_ |
| std::vector< HARQSenderProcess > | senderProcesses_ |
| std::list< wns::ldk::CompoundPtr > | sendQueue_ |
Classes | |
| class | HARQReceiverProcess |
| class | HARQSenderProcess |
Definition at line 74 of file HARQ.hpp.
| HARQFU::HARQFU | ( | fun::FUN * | fuNet, | |
| const wns::pyconfig::View & | config | |||
| ) |
| void HARQFU::addToSendQueue | ( | wns::ldk::CompoundPtr | compound | ) | [private] |
| void HARQFU::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.
| wns::ldk::CompoundPtr HARQFU::getSomethingToSend | ( | ) | [private, 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.
| bool HARQFU::hasCapacity | ( | ) | const [private, virtual] |
While hasCapacity returns false, processIncoming will never be called.
Implements wns::ldk::DelayedInterface.
| const wns::ldk::CompoundPtr HARQFU::hasSomethingToSend | ( | ) | const [private, virtual] |
| void HARQFU::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.
| void HARQFU::processIncoming | ( | const wns::ldk::CompoundPtr & | compound | ) | [private, virtual] |
Override this method to handle incoming compounds.
Implements wns::ldk::DelayedInterface.
| void HARQFU::processOutgoing | ( | const wns::ldk::CompoundPtr & | ) | [private, virtual] |
Override this method to handle outgoing compounds.
Implements wns::ldk::DelayedInterface.
int wns::ldk::harq::HARQFU::numRVs_ [private] |
std::vector<HARQFU::HARQReceiverProcess> wns::ldk::harq::HARQFU::receiverProcesses_ [private] |
std::vector<HARQSenderProcess> wns::ldk::harq::HARQFU::senderProcesses_ [private] |
std::list<wns::ldk::CompoundPtr> wns::ldk::harq::HARQFU::sendQueue_ [private] |
1.5.5