SingleQStation

open class SingleQStation(parent: ModelElement, activityTime: RVariableIfc = ConstantRV.ZERO, resource: SResource? = null, nextReceiver: QObjectReceiverIfc = NotImplementedReceiver, name: String? = null) : Station, SingleQStationCIfc(source)

Models a simple work station that has a single queue for holding received qObjects for processing and a simple resource that is used during the processing.

A QObject may have an object that implements the GetValueIfc attached. If so, the current value from this object is used as the processing time at the station. If not attached, then the specified processing time for the station will be used. Thus, a processed QObject instance can bring its own processing time. In addition, a QObject may have an instance of a QObjectSenderIfc interface attached. If one is attached, the sender will be used to determine where to send the qObject. If a sender is not attached, then the specified next receiver will be used. Thus, a processed QObject instance can determine where it goes to next after processing.

Parameters

parent

the model element serving as this element's parent

activityTime

the processing time at the station. The default is a 0.0 delay.

resource

the resource to use at the station. The default of null will cause a resource of capacity 1 to be created and used at the station

nextReceiver

the receiving location that will receive the processed qObjects once the processing has been completed. A default of NotImplementedReceiver, indicates that there is no receiver implemented. If no receiver is present, there will be a run-time error.

name

the name of the station

Constructors

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

Allows the single queue station to be created with an initial capacity specification for its resource.

constructor(parent: ModelElement, activityTime: RVariableIfc = ConstantRV.ZERO, resource: SResource? = null, nextReceiver: QObjectReceiverIfc = NotImplementedReceiver, name: String? = null)

Properties

Link copied to clipboard
Link copied to clipboard
open override val isQueueEmpty: Boolean

Indicates if the queue is empty.

Link copied to clipboard
open override val isQueueNotEmpty: Boolean

Indicates if the queue is not empty

Link copied to clipboard
open override val isResourceAvailable: Boolean

Indicates if the resource has units available.

Link copied to clipboard
open override val resource: SResourceCIfc
Link copied to clipboard
@set:KSLControl(controlType = ControlType.BOOLEAN)
var useQObjectForActivityTime: Boolean

If true, the instance will attempt to use the QObject that is experiencing the activity to determine the activity time by referencing the QObject's valueObject. If false (the default), the supplied activity time will be used

Link copied to clipboard