25 LinkMod(
const LinkMod& lm) { (*this) = lm; }
26 void set(
int l,
int c, RateSpec& rs1) {
95 void addPath(
int,list<LinkMod>&);
115 string& comtStatus22string(
int,
string&)
const;
120 bool checkLinkCounts(
int);
121 bool checkSubtreeRates(
int);
122 bool checkLinkRates(
int);
141 subtreeRates.
set(0); plnkRates.
set(0); };
162 pthread_cond_t busyCond;
264 return (p !=
comtree[ctx].coreSet->end() ? *p : 0);
276 return (p !=
comtree[ctx].coreSet->end() ? *p : 0);
285 map<fAdr_t,ComtRtrInfo>::iterator p =
comtree[ctx].
rtrMap->begin();
286 return (p !=
comtree[ctx].rtrMap->end() ? p->first : 0);
296 map<fAdr_t,ComtRtrInfo>::iterator p =
comtree[ctx].
rtrMap->find(rtr);
298 return (p !=
comtree[ctx].rtrMap->end() ? p->first : 0);
307 map<fAdr_t,ComtLeafInfo>::iterator p =
comtree[ctx].
leafMap->begin();
308 return (p !=
comtree[ctx].leafMap->end() ? p->first : 0);
318 map<fAdr_t,ComtLeafInfo>::iterator p =
comtree[ctx].
leafMap->find(leaf);
320 return (p !=
comtree[ctx].leafMap->end() ? p->first : 0);
358 map<fAdr_t,ComtRtrInfo>::iterator rp;
360 if (rp !=
comtree[ctx].rtrMap->end())
361 return rp->second.plnk;
362 map<fAdr_t,ComtLeafInfo>::iterator lp;
364 return lp->second.llnk;
373 map<fAdr_t,ComtRtrInfo>::iterator rp;
375 if (rp !=
comtree[ctx].rtrMap->end()) {
376 if (rp->second.plnk == 0)
return 0;
380 map<fAdr_t,ComtLeafInfo>::iterator lp;
382 return lp->second.parent;
397 map<fAdr_t,ComtRtrInfo>::iterator rp;
399 return (rp->second.plnk == lnk ? leftAdr : rightAdr);
409 map<fAdr_t,ComtRtrInfo>::iterator rp;
411 return rp->second.lnkCnt;
437 map<fAdr_t,ComtRtrInfo>::iterator rp;
439 return rp->second.plnk != 0 && rp->second.frozen;
452 map<fAdr_t,ComtRtrInfo>::iterator rp;
454 if (rp !=
comtree[ctx].rtrMap->end())
return rp->second.plnkRates;
455 map<fAdr_t,ComtLeafInfo>::iterator lp;
457 return lp->second.plnkRates;
546 map<fAdr_t,ComtRtrInfo>::iterator rp;
548 if (rp->second.plnk != 0) {
553 map<fAdr_t,ComtRtrInfo>::iterator rpp;
555 rpp->second.lnkCnt--;
556 if (plnk == 0) rp->second.lnkCnt--;
557 }
else if (plnk != 0) {
560 rp->second.plnk = plnk;
561 if (plnk == 0)
return true;
578 map<fAdr_t,ComtLeafInfo>::iterator lp;
580 lp->second.parent = parent;
581 lp->second.llnk = llnk;
583 map<fAdr_t,ComtRtrInfo>::iterator rp;
596 map<fAdr_t,ComtRtrInfo>::iterator rp;
598 rp->second.frozen =
true;
607 map<fAdr_t,ComtRtrInfo>::iterator rp;
609 rp->second.frozen =
false;
623 inline void ComtInfo::unlockMap() {
624 pthread_mutex_unlock(&
mapLock);