OnePointMeter and TwoPointMeter, respectively, are base classes for meters
that measure on one port, or between two ports.
Within those base classes, a further distinction between meters that can be
attached to only one port or to more than one port is made in the base
classes OnePortXXXPointMeter, MultiPortXXXPointMeter.
CreateMessageFilter can be overridden to attach different filters to ports.
CDV Meter
Upon construction,
CDVMeter
and
StdCDVMeter
require a (fixed) rate which is taken to
calculate the cell delay variation (CDV) of the measured values. In addition,
DistCDVMeter
also requires the array size for the distribution as well as the lower and upper limit of variation
from the specified rate that has to be captured in during simulation.
CDVMeter
overwrites the method
evaluateMessage()
which - after calling
useMessage()
to filter special messages - calculates the CDV which is used to update an internal
StdSampleStatistic
object.
Interarrival Time Meter
The class
IATMeter
is the base class of
StdIATMeter
and
DistIATMeter
.
IATMeter
overwrites the method
evaluateMessage()
which - after calling
useMessage()
to filter special messages - calls the method
evaluateSample()
which is overwritten in its
derived classes.
evaluateSample()
updates the appropriate statistic.
Thus,
DistIATMeter
updates a distribution statistic and
StdIATMeter
updates a sample
statistic.
According to the respective statistics, different parameters are required upon constructor call.
-
StdIATMeter
does not require special parameters besides name and owner.
-
DistIATMeter
also needs the array size of measures as well as the lower and upper limit
of the interarrival time that has to be captured during simulation.
Message Length Meter
The class
MessageLengthMeter
is the base class of
StdMessageLengthMeter
.
MessageLengthMeter
overwrites the method
evaluateMessage()
which - after calling
useMessage()
to filter special messages -
calls the method
evaluateMessageLength()
. The
StdMessageLengthMeter
uses
a
StdSampleStatistic
.
Count Meter
The class
CountMeter
defines the method
handleGetMessage()
. This method calls the
virtual method
countMessage()
which simply increases a counter by one. Upon constructor
call, no further parameters are required.
The class
SimulationControlCounter
derived from
CountMeter
which is implemented
with the help of the class
SimNotifier
(private derivation) and in the frame of the
sequence control is used to indicate the end of a phase/partial phase of the simulation. The
countMessage()
method has been overwritten in such a way that one of the methods
endOfTransientPhase()
or
endOfBatch()
, both inherited from
SimNotifier
, are
called depending on the partial phase which is currently active in the simulation (warm-up
phase or the n-th batch), if the counter has reached a certain value. Upon constructor
call, the number of messages in the transient phase, the number of messages during a
batch as well as the number of batches are required.
Rate Meter
The class
RateMeter
defines the method
evaluateMessage()
, which update a rate statistic.
Before the update, the method
useMessage()
is called to allow the implementation of
filters. Upon constructor call, no further parameters are required.
Distribution Rate Meter
The class
DistributionRateMeter
can be used to measure the distribution of short term
throughput measurements. For this purpose, the short term average during a given short term
period is calculated, which is then used to update an internal
StdDistributionStatistic
at the end of each short term measurement period. The
constructor expects the parameters
arraySize (unsigned integer),
lowerLimit (double)
and
upperLimit (double), which are similar to the parameters of the
StdDistributionStatistic
. Additionally, it expects the
shortTermPeriod
(Time), a
name, and an
owner. Finally, the parameter
measurePortsIndividually
(boolean) lets you specify, whether the data rate on each port shall be measured separately, or
whether an aggreagate data rate shall be measured. If it is measured separately, the distribution
statistic will be updated with all individual short term throughputs at the end of each update
period. Otherwise, it will only be updated with the aggregated value.
Boundary Rate Meter
The class
BoundaryTimeMeter
can be used to measure the quantile of short term throughput
measurements. For this purpose, the short term average during a given short term period is
calculated, which is then used to update an internal
JainBoundaryStatistic
at the end
of each short term measurement period. The constructor expects the parameters
quantile
(double), the
shortTermPeriod (Time), a
name, and an
owner. Additionally, the parameter
measurePortsIndividually (boolean) lets you specify, whether the data rate on each
port shall be measured separately, or whether an aggregate data rate shall be measured. If it is
measured separately, the distribution statistic will be updated with all individual short term
throughputs at the end of each update period. Otherwise, it will only be updated with the
aggregated value.