Stop

class Stop @JvmOverloads constructor(val system: FleetSystem, val location: String, name: String? = null) : ModelElement(source)

A permanent place where loads wait to board whatever comes by.

The second of this subsystem's two waiting lines, and the one that exists because of a real difference rather than a convenience. A load that posts a transport request waits for a decision: some vehicle will be told to come for it, and the dispatcher's queue measures how long that took. A load standing at a stop waits for no decision at all. It waits for the next vehicle that comes past with room and somewhere useful to go, which is a function of headway and capacity. Putting it in a queue whose time in queue means "wait for a decision" would report a quantity that does not exist (A11).

So a stop owns its own waiting line and reports it separately. The two are both real and must not be summed: one answers how long work waits to be allocated, the other how long a rider waits for a service to turn up.

A stop is permanent and a TourStop is not. A TourStop is per-tour execution state -- a place to be and something to do there -- and it names a location. A Stop is a model element that outlives every tour, owns the waiting area, and is what per-stop statistics belong to. The two are joined by the action: a boarding action holds the Stop it draws from. Three things follow, all of them wanted:

  • A vehicle collecting a posted load needs no Stop. It collects at an arbitrary junction that nobody waits at, so requiring one per tour stop would make every such pickup declare a waiting area that never holds anybody.

  • The reference is an object rather than a name, so a boarding action cannot be pointed at a stop that does not exist.

  • Two lines may share one stop, which is what makes an interchange, a transfer point and a shared drop point expressible without any of them being a feature.

Parameters

system

the fleet whose vehicles serve it

location

the junction or station it stands at, checked against the network now

name

the element name; the location is used when none is given

Constructors

Link copied to clipboard
constructor(system: FleetSystem, location: String, name: String? = null)

Types

Link copied to clipboard

One load's intention to be carried somewhere, waiting here until a vehicle takes it.

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Who is waiting, in the order they arrived. What a boarding action draws from.

Link copied to clipboard

The reported waiting line: how many are standing here and for how long.

Functions

Link copied to clipboard

Records that a vehicle served the stop and left somebody standing for want of room.

Link copied to clipboard
open override fun toString(): String

Includes the model name, the id, the model element name, the parent name, and parent id

Link copied to clipboard
fun waitingFor(destinations: Set<String>): List<Stop.Ride>

Everyone here bound for one of destinations, longest waiting first.