| NextHopResolver (XrlStdRouter *xrl_router, EventLoop& eventloop,
		    BGPMain& bgp) | NextHopResolver | 
| ~NextHopResolver () | ~NextHopResolver | 
[virtual]
| void  add_decision (DecisionTable<A> *decision) | add_decision | 
Add decision.
Pass a pointer to the decision table into the next hop resolver. This pointer is used to notify the decision table when a next hop metric changes.
Parameters:
| decision | Pointer to the decision table. | 
| bool  register_ribname (const string& r) | register_ribname | 
Set the rib's name, allows for having a dummy rib or not having a RIB at all.
| bool  register_nexthop (A nexthop, IPNet<A> net_from_route,
				  NhLookupTable<A> *requester) | register_nexthop | 
[virtual]
Register interest in this nexthop.
Parameters:
| nexthop | Nexthop. | 
| net_from_route | The net that is associated with this nexthop in the NextHopLookupTable. Treated as an opaque id. | 
| requester | Once the registration with the RIB suceeds the requester is called back. | 
Returns: True if the registration succeed.
| void  deregister_nexthop (A nexthop, IPNet<A> net_from_route,
				    NhLookupTable<A> *requester) | deregister_nexthop | 
[virtual]
De-Register interest in this nexthop.
Parameters:
| nexthop | Nexthop. | 
| net_from_route | The net that is associated with this nexthop in the NextHopLookupTable. Treated as an opaque id. | 
| requester | Original requester, not used. | 
Returns: True if the registration succeed.
| bool  lookup (const A nexthop, bool& resolvable,
			uint32_t& metric) | lookup | 
[const virtual]
Lookup next hop.
If a "register_nexthop" request has been made and callback has taken place via the "requester" pointer, then the lookup is guaranteed to work.
Parameters:
| nexthop | Next hop. | 
| resolvable | Is this route resolvable. | 
| metric | If this route is resolvable the metric of this route. | 
Returns: True if this next hop is found.
| bool  rib_client_route_info_changed (const A& addr,
				       const uint32_t& prefix_len,
				       const A& nexthop,
				       const uint32_t& metric) | rib_client_route_info_changed | 
Call from the RIB to notify us that a metric has changed.
| bool  rib_client_route_info_invalid (const A&	addr,
				       const uint32_t&	prefix_len) | rib_client_route_info_invalid | 
Call from the RIB to notify us that any registrations with this address and prefix_len are now invalid.
| void  next_hop_changed (A nexthop) | next_hop_changed | 
Next hop changed.
Whenever a next hop changes this method should be called and the change will be rippled up to the decision process.
Parameters:
| nexthop | The next hop that has changed. | 
| void  next_hop_changed (A nexthop, bool old_resolves, uint32_t old_metric) | next_hop_changed | 
Next hop changed.
Whenever a next hop changes this method should be called and the change will be rippled up to the decision process. However if a change occurs but the metrics don't change don't bother to ripple up the change there is no point.
Parameters:
| nexthop | The next hop that has changed. | 
| old_resolves | The old resolve value. | 
| old_metric | The old metric value. | 
| NextHopRibRequest<A> * get_next_hop_rib_request () | get_next_hop_rib_request | 
Get NextHopRibRequest pointer.
| EventLoop&  eventloop () | eventloop | 
Get a reference to the main timer list
| list<DecisionTable<A> *> _decision | _decision | 
[protected]