Class RoutingPlan

java.lang.Object
com.iizix.server.push.engine.RoutingPlan
All Implemented Interfaces:
IRoutingPlan

public final class RoutingPlan extends Object implements IRoutingPlan
The routing plan of a send: the resolved targets grouped into one slice per region, plus the targets the plan rejected before any dispatch and why.

On this single-server deployment every slice's dispatch target is local and reachable (RoutingPlan.LocalDispatchTarget); the region grouping is what the audit record and the progress listener report, and what a future remote dispatch will fan out over without an interface change.

Author:
Christopher Mindus
  • Method Details

    • getSlices

      public List<IRoutingPlan.IRegionSlice> getSlices()
      Description copied from interface: IRoutingPlan
      Gets the per-region slices of this plan, each naming a target region and the counts of subscriptions bound for each delivery tier within it.
      Specified by:
      getSlices in interface IRoutingPlan
      Returns:
      An unmodifiable list of region slices; never null.
    • getRegionSlices

      public List<RoutingPlan.RegionSlice> getRegionSlices()
      Gets the slices with their targets.
      Returns:
      The slices in region order.
    • getRejected

      public List<RoutingPlan.Rejected> getRejected()
      Gets the targets rejected at plan time.
      Returns:
      The unmodifiable list.
    • getMatchedCount

      public int getMatchedCount()
      Description copied from interface: IRoutingPlan
      Gets the total number of subscriptions the filter matched, across every outcome — delivered, excluded, unauthorized, unresolved, and held. This is the denominator the operator sees; every matched subscription is accounted for in exactly one bucket.
      Specified by:
      getMatchedCount in interface IRoutingPlan
      Returns:
      The count of matched subscriptions.
    • isMultiRegion

      public boolean isMultiRegion()
      Description copied from interface: IRoutingPlan
      Reports whether this plan crosses more than one region — i.e. the filter's matches split across regions and the send fans out. A single-region or single-server plan does not.
      Specified by:
      isMultiRegion in interface IRoutingPlan
      Returns:
      true if the plan spans more than one region slice.
    • getDispatchTargets

      public List<DeliveryTarget> getDispatchTargets()
      Gets every target that will be dispatched.
      Returns:
      The targets of all slices.