class <Application/MediaApp/QA> QA : public MediaApp


Inheritance:


Public Methods

virtual AppData* get_data(int& size, AppData* req_data = 0)
QA(const char *page)
double UpdateInterval()
void UpdateState()
virtual ~QA()

Protected Fields

double avgrate_
Average transmission rate and its moving average weight Measured whenever a segment is sent out (XXX why??)
double buffer_[MAX_LAYER]
Internal state info for QA
double bw_[MAX_LAYER]
int debug_
OTcl-bound variables Turn on/off debug output
double drained_[MAX_LAYER]
int layer_
Data members
int LAYERBW_
int MAXACTIVELAYERS_
int MAXBKOFF_
MediaSegmentList outlist_[MAX_LAYER]
Linked list keeping track of holes between poffset_ and current transmission pointer
int playing_[MAX_LAYER]
double playTime_
playout time of the receiver
int poffset_
Variables related to playout buffer management The playout offset: estimation of client playout time
int pref_[MAX_LAYER]
The end offset of the prefetch requests. Used to avoid redundant prefetching requests
double pref_srtt_
Prefetching SRTT
double rate_weight_
int sending_[MAX_LAYER]
int SMOOTHFACTOR_
double SRTTWEIGHT_
double startTime_
Absoloute time when playout started
QATimer* updTimer_

Protected Methods

int AllZero(double *arr, int len)
inline double BufNeed(double side, double slope)
Calculate area of a triangle for a given side and slope
double bufOptScen1(int layer, int layers, double currrate, double slope, int backoffs)
double bufOptScen2(int layer, int layers, double currrate, double slope, int backoffs)
void check_availability(int layer, const MediaSegment& s)
Helper functions
void check_layers(int layer, MediaSegment& tmp)
virtual int command(int argc, const char*const* argv)
void debug(const char* fmt, ...)
Debugging output
void drain_buf(double* DrainArr, double bufToDrain, double* FinalDrainArray, double* bufAvail, int layers, double rate, double srtt)
void DrainBuffers()
Ack feedback information
void DrainPacket(double bufToDrain, double* FinalDrainArray, int layers, double rate, double srtt, double* FinalBuffer)
void DumpInfo(double t, double last_t, double rate, double avgrate, double srtt)
inline double MWM(double srtt)
Misc helpers
AppData* output(int& size, int layer)
void panic(const char* fmt, ...)
RapAgent* rap()
inline double rate()
virtual void stop()
double TotalBuf(int n, double *buffer)

Inherited from MediaApp:

Public Methods

void log(const char* fmt, ...)
virtual void process_data(int size, AppData* data)
void set_page(const char* pg)

Protected Fields

MediaSegment data_[MAX_LAYER]
Tcl_Channel log_
int num_layer_
char page_[HTTP_MAXURLLEN]
int seg_size_

Protected Methods

virtual void start()

Private Fields

int last_layer_

Inherited from Application:

Public Methods

virtual void recv(int nbytes)
virtual void resume()
virtual void send(int nbytes)

Protected Fields

Agent* agent_
int enableRecv_
int enableResume_

Inherited from Process:

Public Methods

virtual void send_data(int size, AppData* data = 0)
inline Process*& target()

Protected Fields

Process* target_

Documentation

QA(const char *page)

virtual ~QA()

virtual AppData* get_data(int& size, AppData* req_data = 0)

void UpdateState()

double UpdateInterval()

virtual int command(int argc, const char*const* argv)

virtual void stop()

void check_availability(int layer, const MediaSegment& s)
Helper functions

RapAgent* rap()

inline double MWM(double srtt)
Misc helpers

inline double rate()

inline double BufNeed(double side, double slope)
Calculate area of a triangle for a given side and slope

int AllZero(double *arr, int len)

double TotalBuf(int n, double *buffer)

AppData* output(int& size, int layer)

void DumpInfo(double t, double last_t, double rate, double avgrate, double srtt)

double bufOptScen1(int layer, int layers, double currrate, double slope, int backoffs)

double bufOptScen2(int layer, int layers, double currrate, double slope, int backoffs)

void drain_buf(double* DrainArr, double bufToDrain, double* FinalDrainArray, double* bufAvail, int layers, double rate, double srtt)

void DrainPacket(double bufToDrain, double* FinalDrainArray, int layers, double rate, double srtt, double* FinalBuffer)

void DrainBuffers()
Ack feedback information

void debug(const char* fmt, ...)
Debugging output

void panic(const char* fmt, ...)

void check_layers(int layer, MediaSegment& tmp)

int layer_
Data members

double playTime_
playout time of the receiver

double startTime_
Absoloute time when playout started

double buffer_[MAX_LAYER]
Internal state info for QA

double drained_[MAX_LAYER]

double bw_[MAX_LAYER]

int playing_[MAX_LAYER]

int sending_[MAX_LAYER]

QATimer* updTimer_

double avgrate_
Average transmission rate and its moving average weight Measured whenever a segment is sent out (XXX why??)

double rate_weight_

int poffset_
Variables related to playout buffer management The playout offset: estimation of client playout time

MediaSegmentList outlist_[MAX_LAYER]
Linked list keeping track of holes between poffset_ and current transmission pointer

int pref_[MAX_LAYER]
The end offset of the prefetch requests. Used to avoid redundant prefetching requests

int debug_
OTcl-bound variables Turn on/off debug output

double pref_srtt_
Prefetching SRTT

int LAYERBW_

int MAXACTIVELAYERS_

double SRTTWEIGHT_

int SMOOTHFACTOR_

int MAXBKOFF_


This class has no child classes.

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

Adapted for the NS documentation page

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de