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

Safe HaskellNone

Control.Monad.Trans.Crtn.Driver

Description

IO event driverzo

Synopsis

Documentation

data DrvOp e i o whereSource

signature of IO event driver

Constructors

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

type Driver e m = SObjT (DrvOp e) mSource

driver

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

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