Package-level declarations

Types

Link copied to clipboard
class AlternatingArbiter(val walkTime: Double, val driveTime: Double) : CrossingArbiterIfc

Turn and turn about: a signal with a cycle.

Link copied to clipboard
class BoundedBatchArbiter(val batchSize: Int, val maxWait: Double) : CrossingArbiterIfc

Gap acceptance: this group finishes, new arrivals hold.

Link copied to clipboard

Sends whichever idle transporter has the shortest journey to the pickup.

Link copied to clipboard

Who gets the crossing next, and for how long.

Link copied to clipboard

Sends idle transporters in rotation, beginning after whichever was chosen last.

Link copied to clipboard

Releases the zone behind after travelling a fixed distance into the next one: the general case, with release at the start and release at the end as its two extremes.

Link copied to clipboard

Releases the zone behind only on arrival in the next one. The default, because it is the conservative choice: it keeps transporters a zone further apart, and the separation is rarely critical to how a system performs.

Link copied to clipboard

Gives the zone to whoever has been waiting longest.

Link copied to clipboard

Sends whichever idle transporter has the longest journey to the pickup.

Link copied to clipboard

Chooses which idle transporter is sent to collect an entity.

Link copied to clipboard
sealed class IdleDisposition

What an unallocated transporter should do.

Link copied to clipboard

Decides what a transporter does when it has nothing to carry.

Link copied to clipboard

Sends whichever idle transporter has been allocated fewest times, spreading work across a fleet.

Link copied to clipboard

Gives the zone to a transporter carrying something, in preference to an empty one, and otherwise to whoever has waited longest.

Link copied to clipboard

Sends every released transporter to one shared waiting place.

Link copied to clipboard

Leaves a released transporter where it is.

Link copied to clipboard

People cross whenever they arrive; traffic waits.

Link copied to clipboard

Sends an idle transporter chosen at random.

Link copied to clipboard

Sends a released transporter back to its own home base, so that it waits somewhere chosen rather than wherever its last job happened to end.

Link copied to clipboard
fun interface RouteSelectionRuleIfc

Chooses which way a transporter goes.

Link copied to clipboard

Sends every transporter along the shortest path, ignoring where other transporters are.

Link copied to clipboard

Releases the zone behind at the moment travel into the next begins, letting a follower close up immediately. Use it where the real control system frees a zone as soon as the vehicle's tail crosses the boundary.

Link copied to clipboard

Traffic goes whenever it arrives; people wait for a gap.

Link copied to clipboard
fun interface ZoneContentionRuleIfc

Chooses which of the transporters waiting for a zone gets it when it comes free.

Link copied to clipboard
fun interface ZoneControlRuleIfc

Decides when a transporter releases the zone behind it.

Link copied to clipboard
sealed class ZoneReleaseTiming

When a transporter gives up the zone behind it, relative to entering the next one.

Properties

Link copied to clipboard

The crossing disciplines a name can select, in the order an interface should offer them.

Link copied to clipboard

The idle dispositions a name can select, in the order an interface should offer them.

Link copied to clipboard

The allocation rules a name can select, in the order an interface should offer them.

Link copied to clipboard

The contention rules a name can select, in the order an interface should offer them.

Functions

Link copied to clipboard

The arbiter a name stands for, made fresh.

Link copied to clipboard

The rule a name stands for, made fresh.

Link copied to clipboard

The rule a name stands for, made fresh -- which matters for CyclicalTransporterRule, whose turn-taking is state that must not be inherited from a rule the pool used before.

Link copied to clipboard

The rule a name stands for, made fresh.

Link copied to clipboard

The name of an arbiter, or null when it is one no name stands for.

Link copied to clipboard

The name of a rule, or null when it is one no name stands for.

Link copied to clipboard

The name of a rule, or null when it is one no name stands for.

Link copied to clipboard

The name of a rule, or null when it is one no name stands for.