|  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]