Interface Dispatcher
- All Superinterfaces:
Lifecycle
public interface Dispatcher extends Lifecycle
A dispatcher manages the distribution of transport orders among the vehicles in a system. It is basically event-driven, where an event can be a new transport order being introduced into the system or a vehicle becoming available for processing existing orders.
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
PROPKEY_ASSIGNED_PARKING_POSITION
The key of a vehicle property defining the name of the vehicle's assigned parking position.static java.lang.String
PROPKEY_ASSIGNED_RECHARGE_LOCATION
The key of a vehicle property defining the name of the vehicle's assigned recharge location.static java.lang.String
PROPKEY_PARKING_POSITION_PRIORITY
The key of a parking position property defining its priority.static java.lang.String
PROPKEY_PREFERRED_PARKING_POSITION
The key of a vehicle property defining the name of the vehicle's preferred parking position.static java.lang.String
PROPKEY_PREFERRED_RECHARGE_LOCATION
The key of a vehicle property defining the name of the vehicle's preferred recharge location. -
Method Summary
Modifier and Type Method Description default void
assignNow(TransportOrder transportOrder)
Notifies the dispatcher that it should assign the given transport order (to its intended vehicle) now.void
dispatch()
Notifies the dispatcher that it should start the dispatching process.default void
reroute(Vehicle vehicle, ReroutingType reroutingType)
Notifies the dispatcher of a request to reroute the given vehicle considering the given rerouting type.default void
rerouteAll(ReroutingType reroutingType)
Notifies the dispatcher to reroute all vehicles considering the given rerouting type.default void
topologyChanged()
Deprecated.UsererouteAll(org.opentcs.data.order.ReroutingType)
instead.void
withdrawOrder(Vehicle vehicle, boolean immediateAbort)
Notifies the dispatcher that any order a given vehicle might be processing is to be withdrawn.void
withdrawOrder(TransportOrder order, boolean immediateAbort)
Notifies the dispatcher that the given transport order is to be withdrawn/aborted.Methods inherited from interface org.opentcs.components.Lifecycle
initialize, isInitialized, terminate
-
Field Details
-
PROPKEY_PARKING_POSITION_PRIORITY
static final java.lang.String PROPKEY_PARKING_POSITION_PRIORITYThe key of a parking position property defining its priority.Whether and in what way this is respected for assigning a parking position to a vehicle is implementation-specific.
- See Also:
- Constant Field Values
-
PROPKEY_ASSIGNED_PARKING_POSITION
static final java.lang.String PROPKEY_ASSIGNED_PARKING_POSITIONThe key of a vehicle property defining the name of the vehicle's assigned parking position.Whether and in what way this is respected for selecting a parking position is implementation-specific.
- See Also:
- Constant Field Values
-
PROPKEY_PREFERRED_PARKING_POSITION
static final java.lang.String PROPKEY_PREFERRED_PARKING_POSITIONThe key of a vehicle property defining the name of the vehicle's preferred parking position.Whether and in what way this is respected for selecting a parking position is implementation-specific.
- See Also:
- Constant Field Values
-
PROPKEY_ASSIGNED_RECHARGE_LOCATION
static final java.lang.String PROPKEY_ASSIGNED_RECHARGE_LOCATIONThe key of a vehicle property defining the name of the vehicle's assigned recharge location.Whether and in what way this is respected for selecting a recharge location is implementation-specific.
- See Also:
- Constant Field Values
-
PROPKEY_PREFERRED_RECHARGE_LOCATION
static final java.lang.String PROPKEY_PREFERRED_RECHARGE_LOCATIONThe key of a vehicle property defining the name of the vehicle's preferred recharge location.Whether and in what way this is respected for selecting a recharge location is implementation-specific.
- See Also:
- Constant Field Values
-
-
Method Details
-
dispatch
void dispatch()Notifies the dispatcher that it should start the dispatching process.This method is supposed to be called only from the kernel executor thread.
-
withdrawOrder
Notifies the dispatcher that the given transport order is to be withdrawn/aborted.This method is supposed to be called only from the kernel executor thread.
- Parameters:
order
- The transport order to be withdrawn/aborted.immediateAbort
- Whether the order should be aborted immediately instead of withdrawn.
-
withdrawOrder
Notifies the dispatcher that any order a given vehicle might be processing is to be withdrawn.This method is supposed to be called only from the kernel executor thread.
- Parameters:
vehicle
- The vehicle whose order is withdrawn.immediateAbort
- Whether the vehicle's order should be aborted immediately instead of withdrawn.
-
topologyChanged
@Deprecated @ScheduledApiChange(when="6.0", details="Will be removed.") default void topologyChanged()Deprecated.UsererouteAll(org.opentcs.data.order.ReroutingType)
instead.Notifies the dispatcher of changes in the topology.This method is supposed to be called only from the kernel executor thread.
-
reroute
@ScheduledApiChange(when="6.0", details="Default implementation will be removed.") default void reroute(@Nonnull Vehicle vehicle, @Nonnull ReroutingType reroutingType)Notifies the dispatcher of a request to reroute the given vehicle considering the given rerouting type.This method is supposed to be called only from the kernel executor thread.
- Parameters:
vehicle
- The vehicle to be rerouted.reroutingType
- The type of the requested rerouting.
-
rerouteAll
@ScheduledApiChange(when="6.0", details="Default implementation will be removed.") default void rerouteAll(@Nonnull ReroutingType reroutingType)Notifies the dispatcher to reroute all vehicles considering the given rerouting type.This method is supposed to be called only from the kernel executor thread.
- Parameters:
reroutingType
- The type of the requested rerouting.
-
assignNow
@ScheduledApiChange(when="6.0", details="Default implementation will be removed.") default void assignNow(@Nonnull TransportOrder transportOrder) throws TransportOrderAssignmentExceptionNotifies the dispatcher that it should assign the given transport order (to its intended vehicle) now.This method is supposed to be called only from the kernel executor thread.
- Parameters:
transportOrder
- The transport order to be assigned.- Throws:
TransportOrderAssignmentException
- If the given transport order could not be assigned to its intended vehicle.
-