transient-0.1.0.4: A monad for extensible effects and primitives for unrestricted composability of applications

Safe HaskellNone
LanguageHaskell2010

Transient.Move

Contents

Description

Synopsis

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

data Node Source

Constructors

Node 

Instances

setMyNode :: MonadIO m => t -> t1 -> m () Source

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