class RouteWalker
|
Asynchronous RouteDB walker.
More... |
|
|
Public Types
Public Methods
Protected Methods
The RouteWalker class walks the routes in a RouteDB. It assumes
the walking is broken up into a number of shorter walks, and that
each short walk is triggered from a XorpTimer. The end of a short
walk causes state to saved and is signalled using the pause()
method. When the next short walk is ready to start, resume()
should be called. These calls save and resume state are relatively
expensive.
typedef RouteDB<A>::RouteContainer RouteContainer | RouteContainer |
typedef RouteDB<A>::Route Route | Route |
enum State { RUNNING, PAUSED }
| State |
RouteWalker (RouteDB<A>& route_db)
| RouteWalker |
~RouteWalker ()
| ~RouteWalker |
inline State state ()
| state |
[const]
Returns: current state of instance.
const Route* next_route ()
| next_route |
Move iterator to next available route.
Returns: true on success, false if route not available or instance is
not in the RUNNING state.
const Route* current_route ()
| current_route |
Get current route.
Returns: pointer to route if available, 0 if route not available or
not in RUNNING state.
void pause (uint32_t pause_ms)
| pause |
Pause route walking operation. The instance state is
transitioned from RUNNING to PAUSED on the assumption that
route walking will be resumed at some point in the future (resume). If the current route has a deletion timer associated
with it that would expire within pause_ms, the timer expiry is
pushed back so it will expire at a time after the expected
resume time. Thus in most cases a walk can safely resume from
where it was paused.
Parameters:
pause_ms | the expected time before resume is called.
|
Resume route walking. The instance state is transitioned from
PAUSED to RUNNING. The internal iterator is checked for validity and
recovery steps taken should the route pointed to have been deleted.
Effect a reset. The internal iterator is moved to the first
stored route and the state is set to RUNNING.
[protected]
[protected]
Generated by: pavlin on possum.icir.org on Thu Nov 6 23:47:08 2003, using kdoc 2.0a54+XORP. |