sparrow-0.0.2.1: Unified streaming dependency management for web apps

Safe HaskellNone
LanguageHaskell2010

Web.Dependencies.Sparrow.Server.Types

Contents

Synopsis

Context

data SparrowServerT http f m a Source #

Instances

MonadWriter w m => MonadWriter w (SparrowServerT http f m) Source # 

Methods

writer :: (a, w) -> SparrowServerT http f m a #

tell :: w -> SparrowServerT http f m () #

listen :: SparrowServerT http f m a -> SparrowServerT http f m (a, w) #

pass :: SparrowServerT http f m (a, w -> w) -> SparrowServerT http f m a #

MonadState s m => MonadState s (SparrowServerT http f m) Source # 

Methods

get :: SparrowServerT http f m s #

put :: s -> SparrowServerT http f m () #

state :: (s -> (a, s)) -> SparrowServerT http f m a #

MonadReader r m => MonadReader r (SparrowServerT http f m) Source # 

Methods

ask :: SparrowServerT http f m r #

local :: (r -> r) -> SparrowServerT http f m a -> SparrowServerT http f m a #

reader :: (r -> a) -> SparrowServerT http f m a #

MonadTrans (SparrowServerT http f) Source # 

Methods

lift :: Monad m => m a -> SparrowServerT http f m a #

Monad m => Monad (SparrowServerT http f m) Source # 

Methods

(>>=) :: SparrowServerT http f m a -> (a -> SparrowServerT http f m b) -> SparrowServerT http f m b #

(>>) :: SparrowServerT http f m a -> SparrowServerT http f m b -> SparrowServerT http f m b #

return :: a -> SparrowServerT http f m a #

fail :: String -> SparrowServerT http f m a #

Functor m => Functor (SparrowServerT http f m) Source # 

Methods

fmap :: (a -> b) -> SparrowServerT http f m a -> SparrowServerT http f m b #

(<$) :: a -> SparrowServerT http f m b -> SparrowServerT http f m a #

Monad m => Applicative (SparrowServerT http f m) Source # 

Methods

pure :: a -> SparrowServerT http f m a #

(<*>) :: SparrowServerT http f m (a -> b) -> SparrowServerT http f m a -> SparrowServerT http f m b #

liftA2 :: (a -> b -> c) -> SparrowServerT http f m a -> SparrowServerT http f m b -> SparrowServerT http f m c #

(*>) :: SparrowServerT http f m a -> SparrowServerT http f m b -> SparrowServerT http f m b #

(<*) :: SparrowServerT http f m a -> SparrowServerT http f m b -> SparrowServerT http f m a #

MonadIO m => MonadIO (SparrowServerT http f m) Source # 

Methods

liftIO :: IO a -> SparrowServerT http f m a #

MonadThrow m => MonadThrow (SparrowServerT http f m) Source # 

Methods

throwM :: Exception e => e -> SparrowServerT http f m a #

MonadCatch m => MonadCatch (SparrowServerT http f m) Source # 

Methods

catch :: Exception e => SparrowServerT http f m a -> (e -> SparrowServerT http f m a) -> SparrowServerT http f m a #

MonadMask m => MonadMask (SparrowServerT http f m) Source # 

Methods

mask :: ((forall a. SparrowServerT http f m a -> SparrowServerT http f m a) -> SparrowServerT http f m b) -> SparrowServerT http f m b #

uninterruptibleMask :: ((forall a. SparrowServerT http f m a -> SparrowServerT http f m a) -> SparrowServerT http f m b) -> SparrowServerT http f m b #

generalBracket :: SparrowServerT http f m a -> (a -> ExitCase b -> SparrowServerT http f m c) -> (a -> SparrowServerT http f m b) -> SparrowServerT http f m (b, c) #

data Env f m Source #

Constructors

Env 

Fields

newEnv :: IO (Env f m) Source #

execSparrowServerT :: MonadIO m => SparrowServerT http f m a -> m (Paper http, Env f m) Source #

execSparrowServerT' :: Monad m => Env f m -> SparrowServerT http f m a -> m (Paper http) Source #

tell' :: Monad m => Paper http -> SparrowServerT http f m () Source #

ask' :: Monad m => SparrowServerT http f m (Env f m) Source #

Internal Machinery

Outgoing Per-Session

unsafeBroadcastTopic :: MonadIO m => Env f m -> Topic -> Value -> m () Source #

unsafeRegisterReceive :: MonadIO m => Env f m -> SessionID -> Topic -> (Value -> Maybe (m ())) -> STM () Source #

Continuation Registration

registerOnUnsubscribe :: Env f m -> SessionID -> Topic -> m () -> STM () Source #

registerInvalidator :: forall deltaIn f m. FromJSON deltaIn => Env f m -> Topic -> Proxy deltaIn -> STM () Source #

getCallReceive :: MonadIO m => Env f m -> SessionID -> Topic -> Value -> STM (Maybe (m ())) Source #

callOnUnsubscribe :: MonadIO m => Env f m -> SessionID -> Topic -> m () Source #

Thread Management

registerOnOpenThreads :: Env f m -> SessionID -> Topic -> TVar (f (Async ())) -> STM () Source #

Bookkeeping

Exceptions