Package-level declarations

Types

Link copied to clipboard

Simulates connections to the outside world. Generates entities according to a provided Generator and sends them to its output channel at scheduled times. Acts as the entry point for traffic into the simulation.

Link copied to clipboard
class BoundedQueueNode<T>(label: String, source: PushInputChannel<T>, destination: PullOutputChannel<T>, val capacity: Int, policy: QueuePolicy<T> = FIFOQueuePolicy()) : ContainerNode<T> , Queue<T> , BoundedContainer<T>

A queue with a maximum capacity. Receives entities through a push channel and outputs through a pull channel.

Link copied to clipboard
abstract class ContainerNode<T>(label: String, incoming: List<InputChannel<*, *>>, outgoing: List<OutputChannel<*, *>>) : Node, Container<T>

Base class for nodes that hold entities. Provides callbacks for entity entry and exit events, allowing tracking of occupancy and behavior throughout the simulation.

Link copied to clipboard
class DeadEndNode<InputT>(label: String, inputChannel: InputChannel<InputT, *>) : Node

Dead end node closes its input channel immediately, representing a queue node that is 'closed for business', and will crash the simulator if a vehicle is dispatched to this node.

Link copied to clipboard

Base class for sink nodes that terminate entities. Tracks results and occupancy of received entities.

Link copied to clipboard
class DelayNode<T>(label: String, source: PushInputChannel<T>, destination: PushOutputChannel<T>, delayProvider: DelayProvider) : ContainerNode<T> , Delay<T> , HasProgressBars

Introduces a time delay to entities passing through. Receives entities and delays them before sending them to the destination, with the delay determined by the delayProvider.

Link copied to clipboard

A sink that represents entities lost or discarded from the system.

Link copied to clipboard

Combines entities from a main input and a side input into a single output. Each main entity is matched with a corresponding side entity using the combiner function. The node remains ready only when the side input is ready.

Link copied to clipboard
abstract class PassthroughNode<InputT, OutputT, ChannelT : ChannelType<ChannelT>>(label: String, source: InputChannel<InputT, ChannelT>, destination: OutputChannel<OutputT, ChannelT>, sources: List<InputChannel<*, *>>, destinations: List<OutputChannel<*, *>>) : Node

Base class for nodes that process entities one-to-one from input to output while managing readiness. Subclasses implement process to transform entities and isReady to control flow. Automatically adapts to push/pull channel types.

Link copied to clipboard
class PumpNode<T>(label: String, source: PullInputChannel<T>, destination: PushOutputChannel<T>) : Node

Converts from pull-based to push-based flow. Actively pulls entities from the source and pushes them to the destination when both are ready.

Link copied to clipboard
class QueueNode<T>(label: String, source: PushInputChannel<T>, destination: PullOutputChannel<T>, policy: QueuePolicy<T> = FIFOQueuePolicy()) : ContainerNode<T> , Queue<T>

A queue that receives entities through a push channel and outputs them through a pull channel. Entities are stored and ordered according to the provided QueuePolicy (defaults to FIFO). The queue remains open to receive entities and signals readiness when it contains items.

Link copied to clipboard
class ServiceNode<T>(label: String, source: PushInputChannel<T>, destination: PushOutputChannel<T>, delayProvider: DelayProvider, numServers: Int) : ContainerNode<T> , Service<T> , HasProgressBars

Processes entities through parallel servers, each introducing a delay. When all servers are busy, the input channel closes to prevent additional arrivals. Reopens when a server becomes available.

Link copied to clipboard

A sink that represents the output destination for successfully processed entities.

Link copied to clipboard

Splits entities into two outputs: a main output and a side output. Each incoming entity is processed by the splitter function to produce both outputs. The node remains ready only when the side destination is open.