ResourcePoolStation

open class ResourcePoolStation(parent: ModelElement, pool: SResourcePool, activityTime: RVariableIfc = ConstantRV.ZERO, nextReceiver: QObjectReceiverIfc = NotImplementedReceiver, name: String? = null) : Station, ActivityStationCIfc(source)

A single-queue station that seizes units from a shared SResourcePool rather than from its own resource. Several such stations sharing one pool model a set of servers (the pool) serving several distinct queues; a unit freed by any station can serve whichever waiting station the pool notifies first.

Activity-time determination mirrors SingleQStation (a fixed random variable, the QObject's value object, or a supplied StationActivityTimeIfc).

Parameters

parent

the model element serving as this station's parent

pool

the shared resource pool to seize from

activityTime

the processing time at the station

nextReceiver

the receiver of processed instances

name

the name of the station

Constructors

Link copied to clipboard
constructor(parent: ModelElement, pool: SResourcePool, activityTime: RVariableIfc = ConstantRV.ZERO, nextReceiver: QObjectReceiverIfc = NotImplementedReceiver, name: String? = null)

Properties

Link copied to clipboard

If set, supplies the activity time when not using the QObject value object.

Link copied to clipboard
Link copied to clipboard

The shared pool this station seizes from.

Link copied to clipboard

If true, the station uses the QObject's value object for the activity time.

Link copied to clipboard

Functions

Link copied to clipboard
protected open fun activityTime(qObject: ModelElement.QObject): Double
Link copied to clipboard
protected open override fun process(arrivingQObject: ModelElement.QObject)