Copyright | Copyright (c) 2015-2016 David Sorokin <david.sorokin@gmail.com> |
---|---|
License | BSD3 |
Maintainer | David Sorokin <david.sorokin@gmail.com> |
Stability | experimental |
Safe Haskell | None |
Language | Haskell98 |
Tested with: GHC 7.10.3
This module defines DIO
as an instance of the MonadDES
and EventIOQueueing
type classes.
- data DIO a
- data DIOParams = DIOParams {}
- runDIO :: DIO a -> DIOParams -> ProcessId -> Process (ProcessId, Process a)
- defaultDIOParams :: DIOParams
- dioParams :: DIO DIOParams
- messageInboxId :: DIO ProcessId
- timeServerId :: DIO ProcessId
- logDIO :: Priority -> String -> DIO ()
- terminateDIO :: DIO ()
- registerDIO :: DIO ()
- unregisterDIO :: DIO ()
Documentation
The distributed computation based on IO
.
The parameters for the DIO
computation.
DIOParams | |
|
runDIO :: DIO a -> DIOParams -> ProcessId -> Process (ProcessId, Process a) Source #
Run the computation using the specified parameters along with time server process identifier and return the inbox process identifier and a new simulation process.
defaultDIOParams :: DIOParams Source #
The default parameters for the DIO
computation
messageInboxId :: DIO ProcessId Source #
Return the process identifier of the inbox that receives messages.
timeServerId :: DIO ProcessId Source #
Return the time server process identifier.
terminateDIO :: DIO () Source #
Terminate the simulation including the processes in all nodes connected to the time server.
registerDIO :: DIO () Source #
Register the simulation process in the time server, which requires some initial quorum to start synchronizing the global time.
unregisterDIO :: DIO () Source #
Unregister the simulation process from the time server without affecting the processes in other nodes connected to the corresponding time server.