RTP Trace System  1.0
Coral::AbstractQoSDescription Class Reference

Abstract QoS Description. More...

#include <abstractqosdescription.h>

Inheritance diagram for Coral::AbstractQoSDescription:
Coral::FrameRateScalabilityInterface Coral::TraceQoSDescription Coral::H263QoSDescription Coral::MP3QoSDescription Coral::MPEGQoSDescription Coral::H263WriterQoSDescription Coral::MP3WriterQoSDescription Coral::MPEGWriterQoSDescription

List of all members.

Public Member Functions

 AbstractQoSDescription ()
virtual ~AbstractQoSDescription ()
void initDescription (const double frameRate)
virtual void updateDescription (const cardinal pktHeaderSize, const cardinal pktMaxSize)=0
double getFrameRate () const
double setFrameRate (const double frameRate)
double getNextFrameRate () const
double getPrevFrameRate () const
double getFrameRateScaleFactor () const
card64 getMinBandwidth () const
card64 getMaxBandwidth () const
card64 getPosition () const
void setPosition (const card64 position)
virtual cardinal getLayers () const =0
virtual AbstractLayerDescriptiongetLayer (const cardinal layer) const =0
double getResources (ResourceUtilizationPoint &rup) const
double setResources (const ResourceUtilizationPoint &rup)
virtual double calculateUtilizationForLayerBandwidths (const double frameRate, const cardinal layers, const card64 *bandwidth) const
virtual cardinal getPrecomputedResourceUtilizationList (ResourceUtilizationPoint *rup, const card64 bwThreshold, const double utThreshold, const cardinal maxPoints) const =0
virtual cardinal calculateResourceUtilizationList (ResourceUtilizationPoint *rup, const card64 bwThreshold, const double utThreshold, const cardinal maxPoints) const
double calculateMaxUtilizationForBandwidth (const card64 totalBandwidth, ResourceUtilizationPoint &rup) const
virtual void calculateMaxUtilizationForBandwidthArray (const card64 *totalBandwidthArray, ResourceUtilizationPoint *rupArray, const cardinal points) const
double getWantedUtilization () const
void setWantedUtilization (const double utilization)
card64 getMinWantedBandwidth () const
card64 getMaxWantedBandwidth () const
void setMinWantedBandwidth (const card64 bandwidth)
void setMaxWantedBandwidth (const card64 bandwidth)
int8 getStreamPriority () const
void setStreamPriority (const int8 priority)
int8 getSessionPriority () const
void setSessionPriority (const int8 priority)

Protected Attributes

double WantedUtilization
card64 MinWantedBandwidth
card64 MaxWantedBandwidth
double FrameRate
card64 Position
cardinal PktHeaderSize
cardinal PktMaxSize
int8 StreamPriority
int8 SessionPriority

Private Member Functions

void doResourceUtilizationIteration (ResourceUtilizationPoint *rup, const card64 bwThreshold, const double utThreshold, double *utilizationCache, card64 *bandwidthCache, const cardinal maxPoints, const cardinal maxCachePoints, const cardinal start, const cardinal end, const card64 startBandwidth, const card64 endBandwidth, const cardinal level, const cardinal maxLevel, cardinal &count) const
void calculateBandwidthInfo (const cardinal layer, BandwidthInfo &bandwidthInfo) const

Detailed Description

Abstract QoS Description.

This class contains a stream's QoS requirements.

Author:
Thomas Dreibholz
Version:
1.0

Constructor & Destructor Documentation


Member Function Documentation

void Coral::AbstractQoSDescription::calculateBandwidthInfo ( const cardinal  layer,
BandwidthInfo bandwidthInfo 
) const [private]
double Coral::AbstractQoSDescription::calculateMaxUtilizationForBandwidth ( const card64  totalBandwidth,
ResourceUtilizationPoint rup 
) const [inline]

Calculate maximum utilization for given bandwidth. This is the single-point version of calculateMaxUtilizationForBandwidthArray().

Parameters:
totalBandwidthTotal bandwidth.
rupResourceUtilizationPoint reference to store result.
Returns:
Utilization.
See also:
calculateMaxUtilizationForBandwidthArray
void Coral::AbstractQoSDescription::calculateMaxUtilizationForBandwidthArray ( const card64 totalBandwidthArray,
ResourceUtilizationPoint rupArray,
const cardinal  points 
) const [virtual]

Calculate maximum utilizations for given bandwidth array.

Parameters:
totalBandwidthArrayTotal bandwidth array.
rupArrayResourceUtilizationPoint array to store results.
pointsNumber of points in arrays.

Reimplemented in Coral::H263QoSDescription, Coral::MP3QoSDescription, and Coral::MPEGQoSDescription.

cardinal Coral::AbstractQoSDescription::calculateResourceUtilizationList ( ResourceUtilizationPoint rup,
const card64  bwThreshold,
const double  utThreshold,
const cardinal  maxPoints 
) const [virtual]

Calculate resource utilization list. To use a precomputed list, call getPrecomputedResourceUtilizationList().

Parameters:
rupResourceUtilizationPoint array capable of storing maxPoints entries.
bwThresholdBandwidth threshold.
utThresholdUtilization threshold.
maxPointsMaximum number of ResourceUtilizationPoint to generate.
See also:
getPrecomputedResourceUtilizationList
double Coral::AbstractQoSDescription::calculateUtilizationForLayerBandwidths ( const double  frameRate,
const cardinal  layers,
const card64 bandwidth 
) const [virtual]

Calculate utilization for given frame rate and layers bandwidths.

Parameters:
frameRateFrame rate.
layersNumber of layers.
bandwidthBandwidth array with entry for each layer.
Returns:
Utilization.

Reimplemented in Coral::TraceQoSDescription.

void Coral::AbstractQoSDescription::doResourceUtilizationIteration ( ResourceUtilizationPoint rup,
const card64  bwThreshold,
const double  utThreshold,
double *  utilizationCache,
card64 bandwidthCache,
const cardinal  maxPoints,
const cardinal  maxCachePoints,
const cardinal  start,
const cardinal  end,
const card64  startBandwidth,
const card64  endBandwidth,
const cardinal  level,
const cardinal  maxLevel,
cardinal count 
) const [private]

Get frame rate.

Returns:
Frame rate.

Get frame rate scale factor: (frameRate - MinFrameRate) / (MaxFrameRate - MinFrameRate).

Returns:
Frame rate scale factor (out of [0,1]).
virtual AbstractLayerDescription* Coral::AbstractQoSDescription::getLayer ( const cardinal  layer) const [pure virtual]

Get layer.

Parameters:
layerLayer number.
Returns:
Layer.

Implemented in Coral::TraceQoSDescription.

virtual cardinal Coral::AbstractQoSDescription::getLayers ( ) const [pure virtual]

Get number of layers.

Returns:
Number of layers.

Implemented in Coral::TraceQoSDescription.

Get maximum required total bandwidth.

Returns:
Maximum total bandwidth.

Get maximum wanted bandwidth.

Returns:
Maximum wanted bandwidth.

Get minimum required total bandwidth.

Returns:
Minimum total bandwidth.

Get minimum wanted bandwidth.

Returns:
Minimum wanted bandwidth.

Get next higher frame rate.

Returns:
Frame rate.

Get position.

Returns:
Position.
virtual cardinal Coral::AbstractQoSDescription::getPrecomputedResourceUtilizationList ( ResourceUtilizationPoint rup,
const card64  bwThreshold,
const double  utThreshold,
const cardinal  maxPoints 
) const [pure virtual]

Get precomputed resource utilization list. This method tries to use a precomputed list instead of calculating all points like calculateResourceUtilizationList().

Parameters:
rupResourceUtilizationPoint array capable of storing maxPoints entries.
bwThresholdBandwidth threshold.
utThresholdUtilization threshold.
maxPointsMaximum number of ResourceUtilizationPoint to generate.
See also:
calculateResourceUtilizationList

Implemented in Coral::TraceQoSDescription.

Get next lower frame rate.

Returns:
Frame rate.

Get resources.

Parameters:
rupResourceUtilizationPoint reference to store resources.
Returns:
Utilization.

Get session priority.

Returns:
Session priority.

Get stream priority.

Returns:
Stream priority.

Get wanted utilization.

Returns:
Wanted utilization.
void Coral::AbstractQoSDescription::initDescription ( const double  frameRate) [inline]

Initialize description.

Parameters:
frameRateFrame rate.
double Coral::AbstractQoSDescription::setFrameRate ( const double  frameRate) [inline]

Set frame rate.

Parameters:
frameRateFrame rate.
Returns:
Frame rate set.

Set maximum wanted bandwidth.

Parameters:
wantedbandwidth Maximum wanted bandwidth.

Set minimum wanted bandwidth.

Parameters:
wantedbandwidth Minimum wanted bandwidth.
void Coral::AbstractQoSDescription::setPosition ( const card64  position) [inline]

Set position.

Parameters:
positionPosition.

Set resources.

Parameters:
rupResourceUtilizationPoint reference containing resources.
Returns:
Utilization.
void Coral::AbstractQoSDescription::setSessionPriority ( const int8  priority) [inline]

Set session priority.

Parameters:
prioritySession priority.
void Coral::AbstractQoSDescription::setStreamPriority ( const int8  priority) [inline]

Set stream priority.

Parameters:
priorityStream priority.
void Coral::AbstractQoSDescription::setWantedUtilization ( const double  utilization) [inline]

Set wanted utilization.

Parameters:
utilizationWanted utilization.
virtual void Coral::AbstractQoSDescription::updateDescription ( const cardinal  pktHeaderSize,
const cardinal  pktMaxSize 
) [pure virtual]

Update description.

Parameters:
pktHeaderSizePacket header size.
pktMaxSizeMaximum packet size.

Implemented in Coral::TraceQoSDescription.


Member Data Documentation


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines