RTP Trace System
1.0
|
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