forked from jepst/CloudHaskell
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Remote.hs
78 lines (57 loc) · 2.67 KB
/
Remote.hs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
-- | Cloud Haskell (previously Remote Haskell) is a distributed computing
-- framework for Haskell. We can describe its interface
-- as roughly two levels: the /process layer/, consisting of
-- processes, messages, and fault monitoring; and the
-- /task layer/, consisting of tasks, promises, and fault recovery.
-- This summary module provides the most common interface
-- functions for both layers, although advanced users might want to import names
-- from the other constituent modules, as well.
module Remote ( -- * The process layer
remoteInit,
ProcessM, NodeId, ProcessId, MatchM,
getSelfPid, getSelfNode,
send,sendQuiet,
spawn, spawnLocal, spawnAnd,
spawnLink,
callRemote, callRemotePure, callRemoteIO,
AmSpawnOptions(..), defaultSpawnOptions,
terminate,
expect, receive, receiveWait, receiveTimeout,
match, matchIf, matchUnknown, matchUnknownThrow, matchProcessDown,
logS, say, LogSphere, LogTarget(..), LogFilter(..), LogConfig(..), LogLevel(..),
setLogConfig, setNodeLogConfig, getLogConfig, defaultLogConfig, getCfgArgs,
UnknownMessageException(..), ServiceException(..),
TransmitException(..), TransmitStatus(..),
nameSet, nameQuery, nameQueryOrStart,
linkProcess, monitorProcess, unmonitorProcess,
withMonitor, MonitorAction(..),
ProcessMonitorException(..),
getPeers, findPeerByRole, PeerInfo,
remotable, RemoteCallMetaData, Lookup,
Closure, makeClosure, invokeClosure,
Payload, genericPut, genericGet, Serializable,
-- * Channels
SendPort, ReceivePort,
newChannel, sendChannel, receiveChannel,
CombinedChannelAction, combinedChannelAction,
combinePortsBiased, combinePortsRR, mergePortsBiased, mergePortsRR,
terminateChannel,
-- * The task layer
TaskM, runTask, Promise,
newPromise, newPromiseHere, newPromiseAtRole, newPromiseNear,
toPromise, toPromiseNear, toPromiseImm,
readPromise,
tlogS, tsay,
TaskException(..),
MapReduce(..), mapReduce,
chunkify, shuffle,
) where
import Remote.Init
import Remote.Encoding
import Remote.Process
import Remote.Channel
import Remote.Call
import Remote.Task
import Remote.Peer
import Remote.Reg
import Remote.Closure