Package org.opentcs.components.kernel

# 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.
  `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.