hen-0.1.1: Haskell bindings to Xen hypervisor interface

Safe HaskellNone

System.Xen.High.Internal

Synopsis

Documentation

newtype XenT m a Source

A Xen transformer. This transformers keeps connection to the Xen hypervisor interface.

Constructors

XenT 

Fields

unXenT :: ReaderT XcHandle m a
 

Instances

MonadTrans XenT 
MonadRWS r w s m => MonadRWS r w s (XenT m) 
MonadReader r m => MonadReader r (XenT m) 
MonadState s m => MonadState s (XenT m) 
MonadWriter w m => MonadWriter w (XenT m) 
Monad m => Monad (XenT m) 
Functor m => Functor (XenT m) 
Applicative m => Applicative (XenT m) 
MonadCatch m => MonadCatch (XenT m) 
MonadIO m => MonadIO (XenT m) 
(Functor m, MonadIO m, MonadCatch m) => MonadXen (XenT m) 

type Xen = XenT IOSource

Most simple XenT implementation.

class (Functor m, MonadIO m) => MonadXen m whereSource

Methods

withXenHandle :: (XcHandle -> m a) -> m aSource

Helper function for creating high-level interface functions from mid-level. Generally high-level function is just highLevel = withXenHandle midLevel.

Instances

MonadXen m => MonadXen (IdentityT m) 
(Functor m, MonadIO m, MonadCatch m) => MonadXen (XenT m) 
MonadXen m => MonadXen (ContT r m) 
(MonadXen m, Error e) => MonadXen (ErrorT e m) 
MonadXen m => MonadXen (ReaderT r m) 
MonadXen m => MonadXen (StateT s m) 
MonadXen m => MonadXen (StateT s m) 
(MonadXen m, Monoid w) => MonadXen (WriterT w m) 
(MonadXen m, Monoid w) => MonadXen (WriterT w m) 
(MonadXen m, Monoid w) => MonadXen (RWST r w s m) 
(MonadXen m, Monoid w) => MonadXen (RWST r w s m) 

runXenT :: (Functor m, MonadIO m, MonadCatch m) => XenT m a -> m (Either SomeException a)Source

Open new connection to the hypervisor, run any Xen action and close connection if nessesary. This function can fail with Either SomeException with XcHandleOpenError and any error of providing Xen action.