aivika-5.0.1: A multi-method simulation library

CopyrightCopyright (c) 2009-2016 David Sorokin <david.sorokin@gmail.com>
LicenseBSD3
MaintainerDavid Sorokin <david.sorokin@gmail.com>
Stabilityexperimental
Safe HaskellNone
LanguageHaskell2010

Simulation.Aivika.Composite

Contents

Description

Tested with: GHC 8.0.1

It defines the Composite monad that allows constructing components which can be then destroyed in case of need.

Synopsis

Composite Monad

data Composite a Source #

It represents a composite which can be then destroyed in case of need.

runComposite :: Composite a -> DisposableEvent -> Event (a, DisposableEvent) Source #

Run the computation returning the result and some DisposableEvent that being applied destroys the composite, for example, unsubscribes from signals or cancels the processes.

runComposite_ :: Composite a -> Event a Source #

Like runComposite but retains the composite parts during the simulation.

runCompositeInStartTime_ :: Composite a -> Simulation a Source #

Like runComposite_ but runs the computation in the start time.

runCompositeInStopTime_ :: Composite a -> Simulation a Source #

Like runComposite_ but runs the computation in the stop time.

disposableComposite :: DisposableEvent -> Composite () Source #

When destroying the composite, the specified action will be applied.