#include <aggreg.h>
Public Member Functions | |
Generator (void) | |
virtual | ~Generator () |
void | Reset (void) |
int32s | GetPackets (void) |
bytestamp_t | GetBytes (void) |
bytestamp_t | GetTime (void) |
bytestamp_t | GetByteStamp (void) |
DOUBLE | GetLoad (void) |
int32s | GetSources (void) |
void | AddSource (Source *pSrc) |
void | RemoveSource (Source *pSrc) |
Source * | RemoveSource (void) |
void | SetLoad (DOUBLE load) |
Trace | PeekNextPacket (void) |
Trace | GetNextPacket (void) |
Public Attributes | |
int16u | Preamble |
Private Member Functions | |
Source * | InsertInOrder (Source *pSrc) |
Private Attributes | |
DList | SRC |
Trace | NextPacket |
bytestamp_t | TotalBytes |
int32s | TotalPackets |
bytestamp_t | Elapsed |
bytestamp_t | ByteStamp |
Definition at line 24 of file aggreg.h.
Generator::Generator | ( | void | ) | [inline] |
virtual Generator::~Generator | ( | ) | [inline, virtual] |
void Generator::AddSource | ( | Source * | pSrc | ) | [inline] |
bytestamp_t Generator::GetBytes | ( | void | ) | [inline] |
bytestamp_t Generator::GetByteStamp | ( | void | ) | [inline] |
DOUBLE Generator::GetLoad | ( | void | ) | [inline] |
Trace Generator::GetNextPacket | ( | void | ) | [inline] |
Definition at line 153 of file aggreg.h.
00154 { 00155 Trace trc = NextPacket; 00156 if( SRC.GetHead() ) 00157 { 00158 Elapsed = NextPacket.ByteStamp; 00159 //ev<<"Elapsed de GetNextPacket: "<<Elapsed<<endl; 00160 TotalBytes += NextPacket.PacketSize; 00161 //ev<<"TotalBytes: "<<TotalBytes<<endl; 00162 TotalPackets++; 00163 //ev<<"TotalPackets: "<<TotalPackets<<endl; // TOTAL DE PAQUETES QUE GENERA LA FUENTE 00164 00165 Source* pSrc = (Source*)SRC.RemoveHead(); /* Extract packet from the first source */ 00166 pSrc->ExtractPacket(); /* receive new packet */ 00167 InsertInOrder( pSrc ); /* place the source in the linked list */ 00168 } 00169 return trc; 00170 }
int32s Generator::GetPackets | ( | void | ) | [inline] |
int32s Generator::GetSources | ( | void | ) | [inline] |
bytestamp_t Generator::GetTime | ( | void | ) | [inline] |
Definition at line 41 of file aggreg.h.
00042 { 00043 bytestamp_t arrival = pSrc->GetArrival(); 00044 //ev<<"arrival de InsertInOrder: "<<arrival<<endl; 00045 DLinkable* pPrv = NULL; 00046 DLinkable* pNxt = SRC.GetHead(); 00047 00048 for( ; pNxt && arrival > ((Source*)pNxt)->GetArrival(); pNxt = pNxt->GetNext()) 00049 pPrv = pNxt; 00050 00051 SRC.Insert( pPrv, pSrc, pNxt ); /* insert new source */ 00052 NextPacket = ((Source*)SRC.GetHead())->GetTrace(); /* get the next packet */ 00053 ByteStamp= NextPacket.Append( Elapsed + Preamble ); /* prevent overlap with previous packet */ 00054 return pSrc; 00055 }
Trace Generator::PeekNextPacket | ( | void | ) | [inline] |
Source* Generator::RemoveSource | ( | void | ) | [inline] |
void Generator::RemoveSource | ( | Source * | pSrc | ) | [inline] |
void Generator::Reset | ( | void | ) | [inline] |
Definition at line 85 of file aggreg.h.
00086 { 00087 TotalBytes = 0.0; 00088 Elapsed = 0.0; 00089 TotalPackets = 0; 00090 00091 DList lst = SRC; 00092 SRC.Clear(); 00093 00094 Source* ptr; 00095 while( ( ptr = (Source*)lst.RemoveHead() ) != NULL ) 00096 { 00097 ptr->Reset(); 00098 InsertInOrder( ptr ); 00099 } 00100 }
void Generator::SetLoad | ( | DOUBLE | load | ) | [inline] |
bytestamp_t Generator::ByteStamp [private] |
bytestamp_t Generator::Elapsed [private] |
Trace Generator::NextPacket [private] |
DList Generator::SRC [private] |
bytestamp_t Generator::TotalBytes [private] |
int32s Generator::TotalPackets [private] |