Interface Dispatcher

All Superinterfaces:
Lifecycle

public interface Dispatcher
extends Lifecycle
This interface declares the methods a dispatcher module for the openTCS kernel must implement.

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
    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 reoruting type.
    void topologyChanged()
    Notifies the dispatcher of changes in the topology.
    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_PRIORITY
      The 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_POSITION
      The 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_POSITION
      The 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_LOCATION
      The 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_LOCATION
      The 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.
    • withdrawOrder

      void withdrawOrder​(@Nonnull TransportOrder order, boolean immediateAbort)
      Notifies the dispatcher that the given transport order is to be withdrawn/aborted.
      Parameters:
      order - The transport order to be withdrawn/aborted.
      immediateAbort - Whether the order should be aborted immediately instead of withdrawn.
    • withdrawOrder

      void withdrawOrder​(@Nonnull Vehicle vehicle, boolean immediateAbort)
      Notifies the dispatcher that any order a given vehicle might be processing is to be withdrawn.
      Parameters:
      vehicle - The vehicle whose order is withdrawn.
      immediateAbort - Whether the vehicle's order should be aborted immediately instead of withdrawn.
    • topologyChanged

      void topologyChanged()
      Notifies the dispatcher of changes in the topology.
    • 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 reoruting type.
      Parameters:
      vehicle - The vehicle to be rerouted.
      reroutingType - The type of the requested rerouting.