RTP Trace System  1.0
servicelevelagreement.h
Go to the documentation of this file.
00001 // ##########################################################################
00002 // ####                                                                  ####
00003 // ####                    Master Thesis Implementation                  ####
00004 // ####  Management of Layered Variable Bitrate Multimedia Streams over  ####
00005 // ####                  DiffServ with A Priori Knowledge                ####
00006 // ####                                                                  ####
00007 // #### ================================================================ ####
00008 // ####                                                                  ####
00009 // ####                                                                  ####
00010 // #### Service Level Agreement                                          ####
00011 // ####                                                                  ####
00012 // #### Version 1.00  --  February 19, 2001                              ####
00013 // ####                                                                  ####
00014 // #### Copyright (C) 2000/2001 Thomas Dreibholz                         ####
00015 // #### University of Bonn, Department of Computer Science IV            ####
00016 // #### EMail: dreibh@iem.uni-due.de                                     ####
00017 // #### WWW:   https://www.uni-due.de/~be0001/diplom/index.html          ####
00018 // ####                                                                  ####
00019 // ##########################################################################
00020 
00021 
00022 #ifndef SERVICELEVELAGREEMENT_H
00023 #define SERVICELEVELAGREEMENT_H
00024 
00025 
00026 #include "system.h"
00027 #include "bandwidthinfo.h"
00028 #include "trafficclassvalues.h"
00029 #include "abstractlayerdescription.h"
00030 
00031 
00032 namespace Coral {
00033 
00034 
00042 struct DiffServClass
00043 {
00047    card64 BytesPerSecond;
00048 
00052    double MaxTransferDelay;
00053 
00057    double MaxLossRate;
00058 
00062    double MaxJitter;
00063 
00067    double CostFactor;
00068 
00072    double DelayVariability;
00073 
00077    card8 TrafficClass;
00078 };
00079 
00080 
00081 
00089 class ServiceLevelAgreement
00090 {
00091    // ====== Constructor/Destructor =========================================
00092    public:
00096    ServiceLevelAgreement();
00097 
00101    ~ServiceLevelAgreement();
00102 
00103 
00104    // ====== Load SLA =======================================================
00108    bool load(const char* fileName);
00109 
00110 
00111    // ====== SLA access =====================================================
00119    cardinal getPossibleClassesForBandwidthInfo(
00120                const AbstractLayerDescription* ald,
00121                cardinal*                       classList) const;
00122 
00123 
00124    // ====== Public data ====================================================
00125    public:
00126    card64        TotalBandwidth;
00127    cardinal      BestEffort;
00128    cardinal      Classes;
00129    DiffServClass Class[TrafficClassValues::MaxValues];
00130 };
00131 
00132 
00136 ostream& operator<<(ostream& os, const ServiceLevelAgreement config);
00137 
00138 
00139 }
00140 
00141 
00142 #include "servicelevelagreement.icc"
00143 
00144 
00145 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines