-----------------------------------------------------------------------------
--
-- Module : Transient.Move
-- Copyright :
-- License : GPL-3
--
-- Maintainer : agocorona@gmail.com
-- Stability :
-- Portability :
--
-- | see <https://www.fpcomplete.com/user/agocorona/moving-haskell-processes-between-nodes-transient-effects-iv>
-----------------------------------------------------------------------------
{-# LANGUAGE CPP #-}
module Transient.Move(
-- * running the Cloud monad
Cloud(..),runCloud, runCloudIO, runCloudIO', local, onAll, lazy, loggedc, lliftIO,localIO,
listen, Transient.Move.Internals.connect, connect', fullStop,
-- * primitives for communication
wormhole, teleport, copyData,
-- * single node invocation
beamTo, forkTo, callTo, runAt, atRemote,
-- * invocation of many nodes
clustered, mclustered, callNodes,
-- * messaging
putMailbox, putMailbox',getMailbox,getMailbox',cleanMailbox,cleanMailbox',
-- * thread control
single, unique,
#ifndef ghcjs_HOST_OS
-- * buffering control
setBuffSize, getBuffSize,
#endif
#ifndef ghcjs_HOST_OS
-- * REST API
api, HTTPMethod(..), PostParams,
#endif
-- * node management
createNode, createWebNode, createNodeServ, getMyNode, getNodes,
addNodes, shuffleNodes,
-- * low level
getWebServerNode, Node(..), nodeList, Connection(..), Service(),
isBrowserInstance,
defConnection,
ConnectionData(..),
#ifndef ghcjs_HOST_OS
ParseContext(..)
#endif
) where
import Transient.Move.Internals