📄 settlingtimetable.cc
字号:
#include "common.h"#include "externDec.h"u_int32_t settlingTimeTable::getSettleTime(u_int32_t dst){ map<u_int32_t,settlingTimeEntry>::iterator iter; u_int32_t stlInterval; iter = stlTimeMap.find(dst); if(iter!= stlTimeMap.end()) {#ifdef DEBUG cout << "settlingTimeTable: an entry for dest " << getDotIP(dst) << "exists" <<endl;#endif if(iter->second.getLastStlTime() == 0) return 0; else if(iter->second.getAvgStlTime() == 0) return (iter->second.getLastStlTime()); else { stlInterval = (u_int32_t)((STL_AVG_FACTOR * iter->second.getLastStlTime())+ ((1-STL_AVG_FACTOR)*iter->second.getAvgStlTime())); return stlInterval; } } else {#ifdef DEBUG cout << "settlingTimeTable: no entry for dest " << getDotIP(dst) << "exists" <<endl;#endif return 0; }}void settlingTimeTable::deleteEntry(u_int32_t dst){ map<u_int32_t,settlingTimeEntry>::iterator iter; iter = stlTimeMap.find(dst); if(iter != stlTimeMap.end()) { stlTimeMap.erase(iter); }}void settlingTimeTable::setLastRecvTime(u_int32_t dst){ map<u_int32_t,settlingTimeEntry>::iterator iter; u_int64_t currtime=getcurrtime(); iter = stlTimeMap.find(dst); if(iter!= stlTimeMap.end()) { iter->second.setLastRecvTime(currtime); } else {#ifdef DEBUG cout << "settlingTimeTable: create a settling time entry " << endl;#endif settlingTimeEntry stlEntry; stlEntry.createEntry(dst,0,0,currtime); insertEntry(stlEntry); }}/*void settlingTimeTable::setAvgStlTime(u_int32_t dst){ map<u_int32_t,settlingTimeEntry>::iterator iter; u_int64_t currtime=getcurrtime(); u_int32_t currStlTime, new_avg_stl_time; iter = stlTimeMap.find(dst); if(iter!= stlTimeMap.end()) { currStlTime = (u_int32_t)(currtime - iter->second.getLastRecvTime()); new_avg_stl_time = (u_int32_t)((STL_AVG_FACTOR*iter->second.getAvgStlTime())+ ((1-STL_AVG_FACTOR)*currStlTime)); iter->second.setAvgStlTime(new_avg_stl_time); }}*/void settlingTimeTable::setNewStlTime(u_int32_t dst){ map<u_int32_t,settlingTimeEntry>::iterator iter; u_int64_t currtime=getcurrtime(); u_int32_t newAvgStlTime; iter = stlTimeMap.find(dst); if(iter!= stlTimeMap.end()) { if((iter->second.getAvgStlTime() == 0) && (iter->second.getLastStlTime() == 0)) { iter->second.setLastStlTime((u_int32_t)(currtime - iter->second.getLastRecvTime())); } else if(iter->second.getAvgStlTime() == 0) { iter->second.setAvgStlTime(iter->second.getLastStlTime()); iter->second.setLastStlTime((u_int32_t)(currtime - iter->second.getLastRecvTime())); } else { newAvgStlTime = (iter->second.getAvgStlTime()+iter->second.getLastStlTime())/2; iter->second.setAvgStlTime(newAvgStlTime); iter->second.setLastStlTime((u_int32_t)(currtime - iter->second.getLastRecvTime())); } }}void settlingTimeTable::insertEntry(settlingTimeEntry se){ stlTimeMap.insert(pair<u_int32_t,settlingTimeEntry>(se.getDestIP(),se)); return;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -