aivika-1.1: A multi-paradigm simulation library

Stabilityexperimental
MaintainerDavid Sorokin <david.sorokin@gmail.com>
Safe HaskellSafe-Inferred

Simulation.Aivika.QueueStrategy

Contents

Description

Tested with: GHC 7.6.3

This module defines the queue strategies.

Synopsis

Strategy Classes

class QueueStrategy s q | s -> q whereSource

Defines the basic queue strategy.

Methods

newStrategyQueueSource

Arguments

:: s

the strategy

-> Simulation (q i)

a new queue

Create a new queue by the specified strategy.

strategyQueueNullSource

Arguments

:: s

the strategy

-> q i

the queue

-> Event Bool

the result of the test

Test whether the queue is empty.

class QueueStrategy s q => DequeueStrategy s q | s -> q whereSource

Defines a strategy with support of the dequeuing operation.

Methods

strategyDequeueSource

Arguments

:: s

the strategy

-> q i

the queue

-> Event i

the dequeued element

Dequeue the front element and return it.

class DequeueStrategy s q => EnqueueStrategy s q | s -> q whereSource

It defines a strategy when we can enqueue a single element.

Methods

strategyEnqueueSource

Arguments

:: s

the strategy

-> q i

the queue

-> i

the element to be enqueued

-> Event ()

the action of enqueuing

Enqueue an element.

class DequeueStrategy s q => PriorityQueueStrategy s q p | s -> q, s -> p whereSource

It defines a strategy when we can enqueue an element with the specified priority.

Methods

strategyEnqueueWithPrioritySource

Arguments

:: s

the strategy

-> q i

the queue

-> p

the priority

-> i

the element to be enqueued

-> Event ()

the action of enqueuing

Enqueue an element with the specified priority.

Strategy Instances

data FCFS Source

Strategy: First Come - First Served (FCFS).

Constructors

FCFS 

data LCFS Source

Strategy: Last Come - First Served (LCFS)

Constructors

LCFS 

data SIRO Source

Strategy: Service in Random Order (SIRO).

Constructors

SIRO