55 :
rModule(parent, _nAddr,_domain, _addr) {
64 if(up == NULL) {
return false; }
76 bool entryChanged =
false;
78 if(oldE->
addr == src){
79 if(oldE->
metric == newE->metric){
80 oldE->
metric = newE->metric;
82 }
else if(oldE->
metric >= newE->metric){
84 oldE->
metric = newE->metric;
90 table.erase(newE->addr);
91 }
else if(entryChanged){
106 nei[_nAddr] = _metric;
109 bool entryChangedDst =
false, entryChanged =
false;
110 if(oldE->
addr == _nAddr){
111 if(oldE->
metric != _metric){
115 }
else if (oldE->
metric >= _metric) {
119 entryChangedDst =
true;
141 tEntry * oldE = &it->second;
144 if(oldE->
addr == _nAddr){
177 ret.
entries[it->first] = it->second.addr;
188 if(msg->isSelfMessage()){
tTable::iterator tTableIt
void removeAddr(const std::string &_addr)
bool processUpdate(RoutingUpdate *update)
DV(Routing *parent, const Address &_nAddr, const std::string &_domain, const std::string &_addr)
void chSendUpdate(RoutingUpdate *update)
void addFlow(const Address &_nAddr, const std::string &_addr, const unsigned short &_metric)
std::vector< rtEntry >::iterator entriesIt
void addAddr(const std::string &_addr)
void setInfMetric(const unsigned short &inf)
void scheduleAt(const double &time, cMessage *)
void handleMessage(cMessage *msg)
void addEntry(rtEntry _e)
DVUpdate(const Address &_addr, const std::string &_domain)
Address class holds IPC Process identification.
void removeFlow(const Address &_nAddr, const std::string &_addr)
neighMetric::iterator neighMetricIt