Source: traceqosdescription.h
|
|
|
|
// ##########################################################################
// #### ####
// #### Master Thesis Implementation ####
// #### Management of Layered Variable Bitrate Multimedia Streams over ####
// #### DiffServ with A Priori Knowledge ####
// #### ####
// #### ================================================================ ####
// #### ####
// #### ####
// #### Trace QoS Description ####
// #### ####
// #### Version 1.00 -- October 10, 2000 ####
// #### ####
// #### Copyright (C) 2000 Thomas Dreibholz ####
// #### University of Bonn, Department of Computer Science IV ####
// #### EMail: Dreibholz@bigfoot.com ####
// #### WWW: http://www.bigfoot.com/~dreibholz/diplom/index.html ####
// #### ####
// ##########################################################################
#ifndef TRACEQOSDESCRIPTION_H
#define TRACEQOSDESCRIPTION_H
#include "system.h"
#include "abstractqosdescription.h"
#include "traceframeratescalability.h"
#include "traceframesizescalability.h"
namespace Coral {
/**
* This is the QoS description of a trace layer.
*
* @short Trace Layer QoS Description
* @author Thomas Dreibholz (Dreibholz@bigfoot.com)
* @version 1.0
*/
class TraceLayerDescription : public AbstractLayerDescription,
public TraceFrameSizeScalability
{
// ====== Reimplementations ==============================================
public:
/**
* Reimplementation of GenericVariableBitrateFrameSizeScalability's getFrameSizeScalabilityClass().
*
* @see GenericVariableBitrateFrameSizeScalability#getFrameSizeScalabilityClass
* @see FrameSizeScalabilityInterface#getFrameSizeScalabilityClass
*/
const char* getFrameSizeScalabilityClass() const;
};
/**
* This is the QoS description of a trace stream.
*
* @short Trace QoS Description
* @author Thomas Dreibholz (Dreibholz@bigfoot.com)
* @version 1.0
*/
class TraceQoSDescription : public TraceFrameRateScalability,
public AbstractQoSDescription
{
// ====== Initialization and update ======================================
public:
/**
* Initialize description.
*
* @param traceReader TDTFReader.
* @param position RTP Position.
* @param position Maximum RTP Position.
* @param frameRate Frame rate.
*/
void initTraceDescription(TDTFReader* traceReader,
const card64 position,
const card64 maxPosition,
const double frameRate);
/**
* Implementation of AbstractQoSDescription's updateDescription().
*
* @see AbstractQoSDescription#updateDescription
*/
void updateDescription(const cardinal pktHeaderSize,
const cardinal pktMaxSize);
// ====== Layer methods ==================================================
/**
* Implementation of AbstractQoSDescription's getLayers().
*
* @see AbstractQoSDescription#getLayers
*/
cardinal getLayers() const;
/**
* Implementation of AbstractQoSDescription's getLayer().
*
* @see AbstractQoSDescription#getLayer
*/
AbstractLayerDescription* getLayer(const cardinal layer) const;
// ====== Reimplementations ==============================================
/**
* Reimplementation of GenericFrameRateScalability's getFrameRateScalabilityClass().
*
* @see GenericFrameRateScalability#getFrameRateScalabilityClass
* @see FrameRateScalabilityInterface#getFrameRateScalabilityClass
*/
const char* getFrameRateScalabilityClass() const;
/**
* Implementation of AbstractQoSDescription's getPrecomputedResourceUtilizationList().
*
* @see AbstractQoSDescription#getPrecomputedResourceUtilizationList
*/
cardinal getPrecomputedResourceUtilizationList(
ResourceUtilizationPoint* rup,
const cardinal bwThreshold,
const double utThreshold,
const cardinal maxPoints) const;
/**
* Implementation of AbstractQoSDescription's calculateUtilizationForLayerBandwidths().
*
* @see AbstractQoSDescription#calculateUtilizationForLayerBandwidths
*/
double calculateUtilizationForLayerBandwidths(
const double frameRate,
const cardinal layers,
const cardinal* bandwidth) const;
// ====== Protected data =================================================
protected:
void doSelectIteration(
bool* select,
const cardinal bwThreshold,
const double utThreshold,
double* utilizationCache,
cardinal* bandwidthCache,
const cardinal maxPoints,
const cardinal maxCachePoints,
const cardinal start,
const cardinal end,
const cardinal startBandwidth,
const cardinal endBandwidth,
const cardinal level,
const cardinal maxLevel,
cardinal& count) const;
static const cardinal MaxLayers = 9;
TDTFReader* TraceReader;
card64 Position;
card64 MaxPosition;
double FrameRate;
TraceLayerDescription Layer[MaxLayers];
};
}
#endif
Generated by: viper@odin on Mon Oct 16 11:49:26 2000, using kdoc 2.0a36. |