Package: inet.queueing.tokengenerator
QueueBasedTokenGenerator
simple moduleThis module generates tokens for a TokenBasedServer based on the observed state changes of a packet queue. It's primary purpose is to allow applications to produce traffic which completely utilizes a network interface. This is achieved by generating tokens whenever the observed packet queue becomes empty.
Available display string text format directives: %p - number of processed packets %l - processed total packet length %t - number of generated tokens
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Used in compound modules
| Name | Type | Description | 
|---|---|---|
| QueueFiller | compound module | This module produces packets in order to prevent a queue from becoming empty. | 
Extends
| Name | Type | Description | 
|---|---|---|
| TokenGeneratorBase | simple module | This is a base module for various token generator modules. | 
Parameters
| Name | Type | Default value | Description | 
|---|---|---|---|
| displayStringTextFormat | string | "generated %t tk\nto %s" | determines the text that is written on top of the submodule | 
| storageModule | string | module path of the token storage where the tokens are generated via C++ method call | |
| queueModule | string | module path of the observed packet queue | |
| minNumPackets | int | 1 | |
| minTotalLength | int | 0 b | |
| numTokens | double | 1 | number of tokens generated when the queue becomes empty | 
Properties
| Name | Value | Description | 
|---|---|---|
| display | i=block/control | |
| class | QueueBasedTokenGenerator | 
Signals
| Name | Type | Unit | 
|---|---|---|
| tokensCreated | double | 
Statistics
| Name | Title | Source | Record | Unit | Interpolation Mode | 
|---|---|---|---|---|---|
| tokensCreated | tokens created | count(tokensCreated) | count | tk | |
| numTokensCreated | number of created tokens | tokensCreated | sum, vector | tk | none | 
Direct method calls (observed)
| call to | function | info | 
|---|---|---|
| TokenBasedServer | inet::queueing::TokenBasedServer::addTokens | addTokens | 
| QueueBasedTokenGenerator | inet::queueing::QueueBasedTokenGenerator::receiveSignal | packetPulled | 
Called methods (observed)
| function | info | call from | 
|---|---|---|
| inet::queueing::QueueBasedTokenGenerator::receiveSignal | packetPulled | PacketQueue, QueueBasedTokenGenerator | 
Source code
// // This module generates tokens for a ~TokenBasedServer based on the observed state // changes of a packet queue. It's primary purpose is to allow applications to // produce traffic which completely utilizes a network interface. This is achieved // by generating tokens whenever the observed packet queue becomes empty. // // Available display string text format directives: // %p - number of processed packets // %l - processed total packet length // %t - number of generated tokens // simple QueueBasedTokenGenerator extends TokenGeneratorBase { parameters: string queueModule; // module path of the observed packet queue int minNumPackets = default(1); int minTotalLength @unit(b) = default(0 b); volatile double numTokens = default(1); // number of tokens generated when the queue becomes empty @class(QueueBasedTokenGenerator); @display("i=block/control"); }File: src/inet/queueing/tokengenerator/QueueBasedTokenGenerator.ned