Interface IRoutingPlan
- All Known Implementing Classes:
RoutingPlan
public interface IRoutingPlan
The routing plan for a send — the first flow of Layer 2, produced before any notification leaves the server.
The router takes the send's filter, the effective policies, and the region tree, and resolves every matched subscription into a per-region, per-tier plan before dispatching anything. The plan is a first-class, inspectable object for three reasons: it is the audit record of exactly which regions a send touched; it is where the operator's authorization is checked, so an out-of-scope region fails at plan build rather than mid-send; and it lets partial, per-region failure be reported cleanly ("region X unreachable, N held") rather than lost in a flat list. The PushResult echoes the plan so the ServerAdmin UI and the audit log read from the same structure.
- Author:
- IIZI
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceOne region's slice of a routing plan.Method Summary
Modifier and TypeMethodDescriptionintGets the total number of subscriptions the filter matched, across every outcome — delivered, excluded, unauthorized, unresolved, and held.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.booleanReports whether this plan crosses more than one region — i.e.
Method Details
getSlices
List<IRoutingPlan.IRegionSlice> getSlices()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.- Returns:
- An unmodifiable list of region slices; never
null.
getMatchedCount
int getMatchedCount()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.- Returns:
- The count of matched subscriptions.
isMultiRegion
boolean isMultiRegion()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.- Returns:
trueif the plan spans more than one region slice.