Safe Haskell | None |
---|---|
Language | Haskell2010 |
- installService :: HostName -> PortID -> t -> [Char] -> TransIO ()
- beamTo :: HostName -> PortID -> TransientIO ()
- forkTo :: HostName -> PortID -> TransientIO ()
- callTo :: (Show a, Read a, Typeable a) => HostName -> PortID -> TransIO a -> TransIO a
- callTo' :: (Show a, Read a, Typeable a) => HostName -> PortID -> TransIO a -> TransIO a
- data Connection = Connection PortID Handle Socket
- listen :: PortID -> TransIO ()
- beamInit :: PortID -> TransIO a -> IO b
- data Node = Node {}
- nodeList :: TVar [Node]
- myNode :: IORef (Maybe a)
- setMyNode :: MonadIO m => t -> t1 -> m ()
- getMyNode :: TransIO x
- getNodes :: TransIO [Node]
- addNodes :: [Node] -> TransIO ()
- clustered :: (Typeable a, Show a, Read a) => Monoid a => TransIO a -> TransIO a
- clustered' :: (Typeable * b, Show b, Read b) => TransIO b -> TransientIO [b]
- connect :: HostName -> PortID -> HostName -> PortID -> TransientIO ()
Documentation
installService :: HostName -> PortID -> t -> [Char] -> TransIO () Source
install in a remote node a haskell package with an executable transient service initialized with listen
the package, the git repository and the main exectable must have the same name
beamTo :: HostName -> PortID -> TransientIO () Source
continue the execution in a new node
all the previous actions from listen
to this statement must have been logged
forkTo :: HostName -> PortID -> TransientIO () Source
execute in the remote node a process with the same execution state
all the previous actions from listen
to this statement must have been logged
callTo :: (Show a, Read a, Typeable a) => HostName -> PortID -> TransIO a -> TransIO a Source
executes an action in another node.
all the previous actions from listen
to this statement must have been logged
callTo' :: (Show a, Read a, Typeable a) => HostName -> PortID -> TransIO a -> TransIO a Source
A connectionless version of callTo for long running remote calls
listen :: PortID -> TransIO () Source
Wait for messages and replay the rest of the monadic sequence with the log received.
beamInit :: PortID -> TransIO a -> IO b Source
init a Transient process in a interactive as well as in a replay mode. It is intended for twin processes that interact among them in different nodes.
Level 2: connections node lists and operations with the node list
clustered :: (Typeable a, Show a, Read a) => Monoid a => TransIO a -> TransIO a Source
execute a Transient action in each of the nodes connected. The results are aggregated with mappend
clustered' :: (Typeable * b, Show b, Read b) => TransIO b -> TransientIO [b] Source
a connectionless version of clustered for long running remote computations. Not tested
connect :: HostName -> PortID -> HostName -> PortID -> TransientIO () Source
Connect to a new node to another. The other node will notify about this connection to
all the nodes connected to him. the new connected node will receive the list of connected nodes
the nodes will be updated with this list. it can be retrieved with getNodes