Tour Stop Action Ifc
What a vehicle does when it gets there.
A tour names stops, and a stop is a place paired with one of these. The interface is open and the method is suspending, which together are the whole extension point of this subsystem: an action may wait for a resource, delay for a dwell, ask the dispatcher a question and wait for the answer, or do nothing at all, and the control loop that runs it does not change to accommodate any of that. The loop's job is to get the vehicle to the location; what happens on arrival is this.
The vehicle executes actions; it never invents them. An action is written by whoever builds the model and put into a tour by the dispatcher's tour policy. That division is what keeps a fleet's behaviour in one place instead of two.
A modeller writing one gets the subsystem's per-load bookkeeping by calling the verbs on StopContextIfc rather than by touching the load: StopContextIfc.takeAboard and StopContextIfc.setDown record the intervals, keep the manifest honest, tell the dispatcher and wake the load. An action that moves a load without them will run, and will be missing from every statistic the subsystem reports.
Inheritors
Properties
How many loads this stop is planned to add to the vehicle: +1 for a collection, -1 for a delivery, 0 for a stop that carries nothing either way.
The permanent stop this action serves, or null for an action that serves none.
The task this action acts on behalf of, or null for an action that acts on nobody's.
Functions
Carried out once the vehicle has arrived at StopContextIfc.stop.