#include <source.h>
Public Member Functions | |
Source (int16u id, int16u prior, pct_size_t pct_sz, pct_size_t preamble) | |
virtual | ~Source () |
void | Reset (void) |
virtual void | SetLoad (DOUBLE load)=0 |
bytestamp_t | GetID (void) |
bytestamp_t | GetPriority (void) |
bytestamp_t | GetArrival (void) |
pct_size_t | GetPctSize (void) |
Trace | GetTrace (void) |
void | GetTrace (Trace &trc) |
void | ExtractPacket (Trace &trc) |
void | ExtractPacket (void) |
Protected Member Functions | |
virtual int32u | GetBurstSize (void)=0 |
virtual bytestamp_t | GetGapSize (void)=0 |
bytestamp_t | SetGap (bytestamp_t gap) |
Protected Attributes | |
pct_size_t | PctSize |
pct_size_t | Preamble |
pct_size_t | PctSpace |
int32u | BurstSize |
Private Attributes | |
int16u | ID |
int16u | Priority |
bytestamp_t | Elapsed |
Definition at line 29 of file source.h.
Source::Source | ( | int16u | id, | |
int16u | prior, | |||
pct_size_t | pct_sz, | |||
pct_size_t | preamble | |||
) | [inline] |
void Source::ExtractPacket | ( | void | ) | [inline] |
Definition at line 112 of file source.h.
00113 { 00114 if( BurstSize == 0 ) 00115 { 00116 BurstSize = GetBurstSize(); 00117 //ev<<"BurstSize es cero "<<endl; 00118 //ev<<"BurstSize nueva generada: "<<BurstSize<<endl; 00119 //ev<<"Elapsed: "<<Elapsed<<endl; 00120 Elapsed += GetGapSize(); 00121 //ev<<"Elapsed nuevo creado"<<Elapsed<<endl; 00122 } 00123 BurstSize--; 00124 Elapsed += PctSpace; 00125 //ev<<"Al Elapsed debemos sumarle el PctSpace: "<<Elapsed<<" BurstSize: "<<BurstSize<<endl; 00126 }
void Source::ExtractPacket | ( | Trace & | trc | ) | [inline] |
Definition at line 106 of file source.h.
00107 { 00108 GetTrace( trc ); 00109 ExtractPacket(); 00110 }
bytestamp_t Source::GetArrival | ( | void | ) | [inline] |
virtual int32u Source::GetBurstSize | ( | void | ) | [inline, protected, pure virtual] |
Implemented in SourcePareto, SourceExpon, and SourceCBR.
virtual bytestamp_t Source::GetGapSize | ( | void | ) | [inline, protected, pure virtual] |
Implemented in SourcePareto, SourceExpon, and SourceCBR.
bytestamp_t Source::GetID | ( | void | ) | [inline] |
pct_size_t Source::GetPctSize | ( | void | ) | [inline] |
bytestamp_t Source::GetPriority | ( | void | ) | [inline] |
void Source::GetTrace | ( | Trace & | trc | ) | [inline] |
Trace Source::GetTrace | ( | void | ) | [inline] |
void Source::Reset | ( | void | ) | [inline] |
Definition at line 62 of file source.h.
00063 { 00064 // quick start: simulate start at random time during ON- or OFF- period 00065 bytestamp_t burst_size = GetBurstSize() * PctSpace; 00066 bytestamp_t period = burst_size + GetGapSize(); 00067 bytestamp_t start_time = _uniform_real_( 0, period ); 00068 //ev<<"burst_size: "<<burst_size<<endl; 00069 //ev<<"period: "<<period<<endl; 00070 //ev<<"start_time: "<<start_time<<endl; 00071 00072 if( start_time > burst_size ) // time started during OFF period 00073 { 00074 BurstSize = GetBurstSize(); 00075 Elapsed = period - start_time; 00076 } 00077 else // time started during ON period 00078 { 00079 BurstSize = (int32s)( ( burst_size - start_time )/PctSpace + 1 ); 00080 Elapsed = 0.0; 00081 } 00082 }
bytestamp_t Source::SetGap | ( | bytestamp_t | gap | ) | [inline, protected] |
virtual void Source::SetLoad | ( | DOUBLE | load | ) | [inline, pure virtual] |
Implemented in SourcePareto, SourceExpon, and SourceCBR.
int32u Source::BurstSize [protected] |
bytestamp_t Source::Elapsed [private] |
int16u Source::ID [private] |
pct_size_t Source::PctSize [protected] |
pct_size_t Source::PctSpace [protected] |
pct_size_t Source::Preamble [protected] |
int16u Source::Priority [private] |