coroutine-object-0.3: Object-oriented programming realization using coroutine

Safe HaskellNone
LanguageHaskell98

Control.Monad.Trans.Crtn.Driver

Description

IO event driverzo

Synopsis

Documentation

data DrvOp e i o where Source

signature of IO event driver

Constructors

Dispatch :: DrvOp e e (Maybe (ActionOrder e)) 

type Driver e m = SObjT (DrvOp e) m Source

driver

type DrvClient e m r = CObjT (DrvOp e) m r Source

driver client

driver :: forall m e. (Monad m, MonadLog m, MonadIO m) => LogServer (SObjBT (DrvOp e) m) () -> SObjT (WorldOp e (SObjBT (DrvOp e) m)) (SObjBT (DrvOp e) m) () -> Driver e m () Source

basic driver

singleDispatch :: Monad m => Either (ActionOrder e) e -> (LogServer (SObjBT (DrvOp e) m) (), World e (SObjBT (DrvOp e) m) (), [EvOrAct e]) -> SObjBT (DrvOp e) m (LogServer (SObjBT (DrvOp e) m) (), World e (SObjBT (DrvOp e) m) (), [EvOrAct e]) Source

single event dispatch

multiDispatch :: Monad m => (LogServer (SObjBT (DrvOp e) m) (), World e (SObjBT (DrvOp e) m) ()) -> [EvOrAct e] -> SObjBT (DrvOp e) m (LogServer (SObjBT (DrvOp e) m) (), World e (SObjBT (DrvOp e) m) (), [EvOrAct e]) Source

a single feedback step of multiple event dispatch

multiDispatchTillEnd :: Monad m => (LogServer (SObjBT (DrvOp e) m) (), World e (SObjBT (DrvOp e) m) ()) -> [EvOrAct e] -> SObjBT (DrvOp e) m (LogServer (SObjBT (DrvOp e) m) (), World e (SObjBT (DrvOp e) m) ()) Source

full multiple event dispatch with feedback

fire :: (Monad m, MonadLog m) => e -> EStT (Driver e m ()) m (Maybe (ActionOrder e)) Source

convenience routine for driver