package process
The process
package contains classes, traits and objects for process-oriented
simulation models (for example, process-interaction).
- Alphabetic
- By Inheritance
- process
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- trait Component extends Identifiable with Locatable
The
Component
trait provides basic common feature for simulation components.The
Component
trait provides basic common feature for simulation components. The list of subparts is empty for atomic components and nonempty for composite components. - abstract class Coroutine extends Runnable with Error
The
Coroutine
class supports (one-at-a-time) quasi-concurrent programming.The
Coroutine
class supports (one-at-a-time) quasi-concurrent programming. A coroutine runs/acts until it yields control from 'this' to 'that' coroutine. When resumed, a coroutines continues its execution where it left off. - class Gate extends SimActor with Component
The
Gate
class models the operation of gate that can open and shut.The
Gate
class models the operation of gate that can open and shut. When the gate is open, entities can flow through and when shut, they cannot. They may wait in a queue or go elsewhere. A gate can model a traffic light (green => open, red => shut). - class Junction extends Component
The
Junction
class provides a connector between twoTransport
s/Route
s.The
Junction
class provides a connector between twoTransport
s/Route
s. SinceLines
andQCurves
have limitations (e.g., hard to make a loop back), a junction may be needed. - class Model extends Coroutine with Modelable with Component
The
Model
class maintains a list of components making up the model and controls the flow of entities (SimActor
s) through the model, following the process-interaction world-view.The
Model
class maintains a list of components making up the model and controls the flow of entities (SimActor
s) through the model, following the process-interaction world-view. It maintains a time-ordered priority queue to activate/re-activate each of the entities. Each entity (SimActor
) is implemented as a ScalaActor
and may be thought of as running in its own thread. - class Resource extends Component
The
Resource
class provides services to entities (SimActors
).The
Resource
class provides services to entities (SimActors
). It may or may not have an associated waiting queue. - class Route extends Component
The
Route
class provides a multi-lane pathway between two other components.The
Route
class provides a multi-lane pathway between two other components. The components in aModel
conceptually form a graph in which the edges areTransport
s and the nodes are otherComponent
s. ARoute
is a composite component that bundles severalTransport
s. - abstract class SimActor extends Coroutine with PQItem with Ordered[SimActor] with Locatable with Error
The
SimActor
abstract class represents entities that are active in the model.The
SimActor
abstract class represents entities that are active in the model. The 'act' abstract method, which specifies entity behavior, must be defined for each subclass. EachSimActor
extends Scala'sActor
class and may be roughly thought of as running in its own thread. - class Sink extends Component
The
Sink
class is used to terminate entitiesSimActor
s when they are finished. - class Source extends SimActor with Component
The
Source
class is used to periodically inject entities (SimActors
) into a running simulation model.The
Source
class is used to periodically inject entities (SimActors
) into a running simulation model. May act as an arrival generator. Source is both a simulationComponent
and specialSimActor
and therefore runs in own thread. - class Transport extends Component
The
Transport
class provides a pathway between two other components.The
Transport
class provides a pathway between two other components. The components in aModel
conceptually form a 'graph' in which the 'edges' areTransport
s and the 'nodes' are otherComponent
s. - class WaitQueue extends Queue[SimActor] with Component
The
WaitQueue
class is a wrapper for Scala'sQueue
class, which supports First-Come, First-Serve 'FCSC' Queues.The
WaitQueue
class is a wrapper for Scala'sQueue
class, which supports First-Come, First-Serve 'FCSC' Queues. It adds monitoring capabilities and optional capacity restrictions. If the queue is full, entities (SimActor
s) attempting to enter the queue are 'barred'. At the model level, such entities may be (1) held in place, (2) take an alternate route, or (3) be lost (e.g., dropped call/packet).
Value Members
- object Coroutine extends Error
The
Coroutine
companion object provides functions to start-up and shutdown the coroutine system as well as counters for theCoroutine
class. - object CoroutineTest extends App
The
CoroutineTest
object is used to test theCoroutine
class.The
CoroutineTest
object is used to test theCoroutine
class. Should print:Cor1
: phase 1Cor2
: phase 1Cor1
: phase 2Cor2
: phase 2 - object Gate
The
Gate
companion object provides a builder method for gates. - object Junction
The
Junction
companion object provides a builder method for sinks. - object Model
The
Model
companion object provides a shutdown method. - object ModelTest extends App
The
ModelTest
object is used to test theModel
class.The
ModelTest
object is used to test theModel
class. Caveat: must add 'from' and 'to' components before transport!! - object Resource
The
Resource
companion object provides a builder method for resources. - object RouteTest extends App
The
RouteTest
object is used to test theRoute
class, which is a composite class.The
RouteTest
object is used to test theRoute
class, which is a composite class. It simulates a two-lane road in one direction. - object Sink
The
Sink
companion object provides a builder method for sinks. - object Source
The
Source
companion object provides a builder method for sources. - object WaitQueue extends Serializable
The
WaitQueue
companion object provides a builder method for wait-queues.