aivika-0.7: A multi-paradigm simulation library

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

Simulation.Aivika.QueueStrategy

Description

Tested with: GHC 7.6.3

This module defines the queue strategies.

Synopsis

Documentation

class QueueStrategy s q | s -> q whereSource

Defines the basic queue strategy.

Methods

newStrategyQueue :: s -> Simulation (q i)Source

Create a new queue by the specified strategy.

strategyQueueNull :: s -> q i -> Event BoolSource

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

strategyDequeue :: s -> q i -> Event iSource

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

strategyEnqueue :: s -> q i -> i -> Event ()Source

Enqueue an element.

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

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

Methods

strategyEnqueueWithPriority :: s -> q i -> Double -> i -> Event ()Source

Enqueue an element with the specified priority.

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

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

Methods

strategyEnqueueWithDynamicPriority :: s -> q i -> Event Double -> i -> Event ()Source

Enqueue an element with the specified priority.

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