24 index(i), rate(r), spaceRate(sr), spaceVar(sv), dropProb(p){}
30 priority(prio), probability(prob) {}
39 double t = 0, lim = uniform(NULL,0,1);
43 if(t > lim) {
break; }
50 return a.index < b.index;
54 serveT(0), spaceT(0) {}
57 serveT(se), spaceT(sp) {}
62 limit(lim), space(spa), vl(v), dl(d) {
63 sort(
vl.begin(),
vl.end(), compareIndex<ILimVals>);
64 sort(
dl.begin(),
dl.end(), compareIndex<IDropProb>);
81 long long rate = LLONG_MAX;
82 long long sprate = LLONG_MAX;
86 std::cout <<
"Holas?" <<
this << endl;
91 sprate = lv.spaceRate;
97 if(rate!=LLONG_MAX){ t.
serveT = ((double)size)/((double)rate); }
98 if(
space && sprate!=LLONG_MAX){
99 double avg = ((double)size)/((double)sprate);
100 t.
spaceT = avg*uniform(NULL, 1-spvar, 1+spvar);
109 double tw = 0, ts = 0;
111 if(wt >= it->index) { tw = it->dropProb; }
115 if(ws >= it->index) { ts = it->prob; }
126 defaultDropProb(dd), dl(d) {
127 sort(
dl.begin(),
dl.end(), compareIndex<IDropProb>);
133 if(s >= it->index) { t = it->prob; }
142 defaultPriority(dp), degrad(deg), rate(r), dl(d){
143 sort(
dl.begin(),
dl.end(), compareIndex<IDegrad>);
151 if(
degrad) {
return ((
double)size)/((double)
rate); }
161 if(wt >= it->index) { pr = &(*it); }
171 queueName(
""), limit(NULL), cherish(NULL), urgency(NULL) {}
173 queueName(qn), limit(l), cherish(c), urgency(u) {}
PPlist::iterator PPlistIt
ILimVals(double i, long long r, long long sr, double sv, double p)
int getPriority(double wt)
vector< IDropProb > IDropProbList
double getDropProb(int s)
int getRandomPriority(int def)
PP(int prio, double prob)
Times getTimes(double wt, int size)
bool compareIndex(const T &a, const T &b)
IDegradList::iterator IDegradIt
IDropProbList::iterator IDropProbIt
IDropProb(int i, double p)
ILimValsList::iterator ILimValsIt
double getDropProb(double wt, int ws)
vector< ILimVals > ILimValsList
vector< IDegrad > IDegradList