Package-level declarations
Types
NodeBuilder joining two non-adjacent parts of a queue network, or spanning two otherwise separate queue networks, together.
Keeps track of metrics requested by the metrics DSL system, to be installed into a given scenario, and abstracts away explicit metric creation, tag walking, and metrics object handling
Interface for objects that can be built upon by the DSL functions.
NodeBuilder following on immediately from a node in the chain, usually representing the traditional left-right flow of nodes in the queue network
Keeps track of the scenario being built by the DSL system, and abstracts explicit node and connection handling required to construct the port otherwise
Functions
fun <T> arrivals(label: String, generator: Generator<T>): RegularNodeBuilder<ArrivalNode<T>, T, ChannelType.Push>
Starts the builder chain, from which more nodes can be attached using the DSL. Vehicles generated by the arrivals node will be pushed to the next node in the chain.
fun <T> arrivalsWithLoss(label: String, generator: Generator<T>): NodeBuilder<T, ChannelType.Push>
Starts the builder chain, from which more nodes can be attached using the DSL. Vehicles generated by the arrivals node will be pushed to the next node in the chain.
Builds a scenario using the DSL system.
Creates a new connection generic of whether it will be push or pull
Creates a new pull Connection
Creates a new push Connection
Tags the immediate previous node in the builder chain with the tag supplied.
Adds to the list of tags, a tag for the immediate previous node in the builder chain.
Attaches a buffered queue (of limited max capacity) into the builder chain, which can then be continued after this call. If a bounded queue reaches maximum capacity, the node will not accept anymore pushes, or will not pull from the upstream node, until something has left the bounded queue
Ends the current NodeBuilder chain, and all objects processed by the nodes in the chain will be fed to the opposite end of the connection supplied.
Attaches a dead end node and terminates the builder chain. This represents a node whose push input channel is always closed, or never pulls.
Attaches a delay node to the builder chain, applying a delay to all vehicles passing through the node. Vehicles that has passed through the delay node are pushed to the next node in the chain.
Attaches a fork node to the builder chain, which splits the current builder chain to numLanes parallel lanes, whose behaviour is determined by laneAction. The subsequent lanes will commence with a pull input connection from the fork.
Attaches a fork node to the builder chain, which splits the current builder chain to numLanes parallel lanes, whose behaviour is determined by laneAction. The subsequent lanes will commence with a push input connection from the fork.
Attaches a join node to the builder chain to join together a list of builder chains (with push output connections). The subsequent connection out of the join node will be a push connection.
Attaches a join node to the builder chain to join together a list of builder chains (with pull output connections). The subsequent connection out of the join node will be a pull connection.
Attaches a loss sink, a special loss node that is hidden from certain metrics, to be used to simulate loss / dropped items
Attaches a match node into the builder chain, which can then be continued after this call.
Ends the current NodeBuilder chain, and all objects processed by the nodes in the chain will be fed to the destination of the OutputRef provided. For compound node, outputRef connects the internal output of the builder chain to the output of the compound node in the main flow
Attaches a pump node to the builder chain, converting the builder chain from a pull output to a push output.
Attaches a fork node to the builder chain, which splits the current builder chain to numLanes parallel lanes, whose behaviour is determined by laneAction. The subsequent lanes will commence with a push input connection from the fork.
Attaches a join node to the builder chain to join together a list of builder chains. The subsequent connection out of the join node will be a push connection.
Attaches an unbuffered queue (infinite capacity) into the builder chain, which can then be continued after this call.
Attaches a service node into the builder chain, which can then be continued after this call.
Attaches a split node into the builder chain. Then the different pathways for the splitter node outputs are defined. Split node simulates a location where one item splits into two items, such as
fun <BuilderT : RegularNodeBuilder<NodeT, *, *>, NodeT : NodeGroup> BuilderT.track(metricFactory: MetricFactory<NodeT>): BuilderT
Used inline with the NodeBuilder DSL system.
inline fun <NodeT> trackAll(metricFactory: MetricFactory<NodeT>)
Tracks all applicable nodes in the scenario stored in the contextual MetricsBuilderScope with the metric factory provided.
Tracks global metrics in the scenario stored in the contextual MetricsBuilderScope with the metric factory provided.
Attaches the metrics DSL calls within builder to this scenario