42 bool isLink(
int,
int)
const;
74 typedef HashSet<int32_t,Hash::s32> Vset;
77 HashMap<uint64_t,Vset,Hash::u64> *
rteMap;
80 HashMap<uint64_t,Vset,Hash::u64> *clMap;
104 Vset& lset =
rteMap->getValue(rtx);
105 return lset.contains(cLnk);
112 Vset& lset =
rteMap->getValue(rtx);
141 return rteMap->getValue(rtx).first();
153 return rteMap->getValue(rtx).next(cLnk);
170 uint64_t kee =
rteMap->getKey(rtx);
171 return (
comt_t) (kee >> 32);
179 uint64_t kee =
rteMap->getKey(rtx);
180 return (
fAdr_t) (kee & 0xffffffff);
189 return rteMap->getValue(rtx).size();
200 Vset& lset =
rteMap->getValue(rtx);
203 int x = clMap->find(kee);
206 x = clMap->put(kee,new_routes);
208 clMap->getValue(x).insert(rtx);
220 Vset& lset =
rteMap->getValue(rtx);
223 Vset& routes = clMap->get(kee);
225 if (lset.size() == 0)
227 if (routes.size() == 0)
239 Vset& lset =
rteMap->getValue(rtx);
240 if (lset.size() != 0) {
241 int old_cLnk = lset.first();
243 Vset& routes = clMap->get(kee);
245 if (routes.size() == 0) clMap->remove(kee);
246 lset.remove(old_cLnk);
249 int x = clMap->find(kee);
252 x = clMap->put(kee,new_routes);
254 clMap->getValue(x).insert(rtx);
265 bool local = ((adr & 0xffff0000) ^ (
myAdr & 0xffff0000)) == 0;
267 return (uint64_t(comt) << 32) | (uint64_t(adr) & 0xffffffff);
276 return (uint64_t(comt) << 32) | (uint64_t(cLnk) & 0xffffffff);