Controller class that takes routes from RedistTable and passes them on via RedistOutput.
Instances of this class are constructed when one routing protocol requests route distribution from another. Instances walk the routes available in the RedistTable route index, resolve them, and announce them via the RedistOutput. Future updates received from the RedistTable are propagated via the Redistributor instances associated with it.
| Redistributor (EventLoop& e, const string& name)
| ~Redistributor ()
|const string& name ()
|void set_redist_table (RedistTable<A>* rt)
|void set_output (RedistOutput<A>* output)
Bind RedistOutput to Redistributor instance. The output should be dynamically allocated with new. When a new redistributor output is set, the existing output is removed via delete. The RedistOutput is deleted by the Redistributor when the Redistributor is destructed.
|void set_policy (RedistPolicy<A>* policy)
Bind policy object to Redistributor instance. The policy should be dynamically allocated with new. When a new policy is set, the existing policy is removed via delete. The policy is deleted by the Redistributor when the Redistributor is destructed.
|bool policy_accepts (const IPRouteEntry<A>& ipr)
Determine if policy accepts updates to route.
Returns: true if associated property accepts update to route or if no policy is enforced, false otherwise.
|RedistEventInterface& redist_event ()
Method available to instances of RedistTable to announce events to the Redistributor instance.
|OutputEventInterface& output_event ()
Method available to instances of RedistOutput to announce transport events to the Redistributor instance.
|bool dumping ()
Indicate dump status. When Redistributor is first connected it dumps existing routes to it's RedistOutput.
Returns: true if route dump is in process, false if route dump is either not started or finished.