Skip to main content

MultiEngineRouter

Struct MultiEngineRouter 

Source
pub struct MultiEngineRouter<Policy, Effects> { /* private fields */ }

Implementations§

Source§

impl<Policy, Effects> MultiEngineRouter<Policy, Effects>

Source

pub fn new( local_node_id: NodeId, policy_engine: Policy, effects: Effects, topology: Observation<Configuration>, policy_inputs: RoutingPolicyInputs, ) -> Self

Source

pub fn register_engine( &mut self, extension: Box<dyn RouterManagedEngine>, ) -> Result<(), RouteError>

Source

pub fn ingest_shared_topology_observation( &mut self, topology: &Arc<Observation<Configuration>>, )

Source

pub fn ingest_topology_observation( &mut self, topology: Observation<Configuration>, )

Source

pub fn ingest_policy_inputs(&mut self, inputs: RoutingPolicyInputs)

Source

pub fn ingest_transport_observation( &mut self, observation: &TransportObservation, ) -> Result<(), RouteError>

Source

pub fn recover_checkpointed_routes(&mut self) -> Result<usize, RouteError>

Source

pub fn effects(&self) -> &Effects

Source

pub fn effects_mut(&mut self) -> &mut Effects

Source

pub fn local_node_id(&self) -> NodeId

Source

pub fn registered_engine_ids(&self) -> Vec<RoutingEngineId>

Source

pub fn registered_engine_capabilities( &self, engine_id: &RoutingEngineId, ) -> Option<RoutingEngineCapabilities>

Source

pub fn active_route(&self, route_id: &RouteId) -> Option<&MaterializedRoute>

Source

pub fn active_route_count(&self) -> usize

Source

pub fn active_routes_snapshot(&self) -> Vec<MaterializedRoute>

Source

pub fn engine_analysis_snapshot( &self, engine_id: &RoutingEngineId, ) -> Option<Box<dyn Any>>

Source

pub fn activate_route_without_tick( &mut self, objective: &RoutingObjective, ) -> Result<MaterializedRoute, RouteError>

Proof-bearing action: selects, admits, materializes, and publishes one canonical route using the current policy inputs without advancing time.

Trait Implementations§

Source§

impl<Policy, Effects> Router for MultiEngineRouter<Policy, Effects>

Source§

impl<Policy, Effects> RouterEngineRegistry for MultiEngineRouter<Policy, Effects>

Source§

impl<Policy, Effects> RoutingControlPlane for MultiEngineRouter<Policy, Effects>

Source§

fn activate_route( &mut self, objective: RoutingObjective, ) -> Result<MaterializedRoute, RouteError>

Source§

fn maintain_route( &mut self, route_id: &RouteId, trigger: RouteMaintenanceTrigger, ) -> Result<RouterMaintenanceOutcome, RouteError>

Source§

fn advance_round(&mut self) -> Result<RouterRoundOutcome, RouteError>

Synchronous router round: consume explicit host-delivered ingress that was queued through router ingestion APIs, refresh engine-wide adaptive state, expire leases, and report canonical mutation plus host-facing progress hints.
Source§

impl<Policy, Effects> RoutingDataPlane for MultiEngineRouter<Policy, Effects>

Source§

fn forward_payload( &mut self, route_id: &RouteId, payload: &[u8], ) -> Result<(), RouteError>

Source§

fn observe_route_health( &self, route_id: &RouteId, ) -> Result<Observation<RouteHealth>, RouteError>

Health reads are observational. They must not silently become canonical route truth without an explicit control-plane publication step.
Source§

impl<Policy, Effects> RoutingMiddleware for MultiEngineRouter<Policy, Effects>

Auto Trait Implementations§

§

impl<Policy, Effects> Freeze for MultiEngineRouter<Policy, Effects>
where Policy: Freeze, Effects: Freeze,

§

impl<Policy, Effects> !RefUnwindSafe for MultiEngineRouter<Policy, Effects>

§

impl<Policy, Effects> !Send for MultiEngineRouter<Policy, Effects>

§

impl<Policy, Effects> !Sync for MultiEngineRouter<Policy, Effects>

§

impl<Policy, Effects> Unpin for MultiEngineRouter<Policy, Effects>
where Policy: Unpin, Effects: Unpin,

§

impl<Policy, Effects> UnsafeUnpin for MultiEngineRouter<Policy, Effects>
where Policy: UnsafeUnpin, Effects: UnsafeUnpin,

§

impl<Policy, Effects> !UnwindSafe for MultiEngineRouter<Policy, Effects>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.