hnix-store-remote-0.7.0.0: Remote hnix store
Safe HaskellSafe-Inferred
LanguageHaskell2010

System.Nix.Store.Remote.MonadStore

Synopsis

Documentation

data RemoteStoreState Source #

Constructors

RemoteStoreState 

Fields

data RemoteStoreError Source #

Instances

Instances details
Show RemoteStoreError Source # 
Instance details

Defined in System.Nix.Store.Remote.MonadStore

Monad m => MonadError RemoteStoreError (RemoteStoreT m) Source # 
Instance details

Defined in System.Nix.Store.Remote.MonadStore

MonadRemoteStore m => MonadRemoteStore (ExceptT RemoteStoreError m) Source # 
Instance details

Defined in System.Nix.Store.Remote.MonadStore

data WorkerException Source #

fatal error in worker interaction which should disconnect client.

Constructors

WorkerException_ClientVersionTooOld 
WorkerException_ProtocolMismatch 
WorkerException_Error WorkerError

allowed error outside allowed worker state | WorkerException_DecodingError DecodingError | WorkerException_BuildFailed StorePath

data RemoteStoreT m a Source #

Instances

Instances details
MonadTrans RemoteStoreT Source # 
Instance details

Defined in System.Nix.Store.Remote.MonadStore

Methods

lift :: Monad m => m a -> RemoteStoreT m a #

Monad m => MonadError RemoteStoreError (RemoteStoreT m) Source # 
Instance details

Defined in System.Nix.Store.Remote.MonadStore

Monad m => MonadReader Socket (RemoteStoreT m) Source # 
Instance details

Defined in System.Nix.Store.Remote.MonadStore

Methods

ask :: RemoteStoreT m Socket #

local :: (Socket -> Socket) -> RemoteStoreT m a -> RemoteStoreT m a #

reader :: (Socket -> a) -> RemoteStoreT m a #

MonadIO m => MonadIO (RemoteStoreT m) Source # 
Instance details

Defined in System.Nix.Store.Remote.MonadStore

Methods

liftIO :: IO a -> RemoteStoreT m a #

Monad m => Applicative (RemoteStoreT m) Source # 
Instance details

Defined in System.Nix.Store.Remote.MonadStore

Methods

pure :: a -> RemoteStoreT m a #

(<*>) :: RemoteStoreT m (a -> b) -> RemoteStoreT m a -> RemoteStoreT m b #

liftA2 :: (a -> b -> c) -> RemoteStoreT m a -> RemoteStoreT m b -> RemoteStoreT m c #

(*>) :: RemoteStoreT m a -> RemoteStoreT m b -> RemoteStoreT m b #

(<*) :: RemoteStoreT m a -> RemoteStoreT m b -> RemoteStoreT m a #

Functor m => Functor (RemoteStoreT m) Source # 
Instance details

Defined in System.Nix.Store.Remote.MonadStore

Methods

fmap :: (a -> b) -> RemoteStoreT m a -> RemoteStoreT m b #

(<$) :: a -> RemoteStoreT m b -> RemoteStoreT m a #

Monad m => Monad (RemoteStoreT m) Source # 
Instance details

Defined in System.Nix.Store.Remote.MonadStore

Methods

(>>=) :: RemoteStoreT m a -> (a -> RemoteStoreT m b) -> RemoteStoreT m b #

(>>) :: RemoteStoreT m a -> RemoteStoreT m b -> RemoteStoreT m b #

return :: a -> RemoteStoreT m a #

MonadCatch m => MonadCatch (RemoteStoreT m) Source # 
Instance details

Defined in System.Nix.Store.Remote.MonadStore

Methods

catch :: (HasCallStack, Exception e) => RemoteStoreT m a -> (e -> RemoteStoreT m a) -> RemoteStoreT m a #

MonadMask m => MonadMask (RemoteStoreT m) Source # 
Instance details

Defined in System.Nix.Store.Remote.MonadStore

Methods

mask :: HasCallStack => ((forall a. RemoteStoreT m a -> RemoteStoreT m a) -> RemoteStoreT m b) -> RemoteStoreT m b #

uninterruptibleMask :: HasCallStack => ((forall a. RemoteStoreT m a -> RemoteStoreT m a) -> RemoteStoreT m b) -> RemoteStoreT m b #

generalBracket :: HasCallStack => RemoteStoreT m a -> (a -> ExitCase b -> RemoteStoreT m c) -> (a -> RemoteStoreT m b) -> RemoteStoreT m (b, c) #

MonadThrow m => MonadThrow (RemoteStoreT m) Source # 
Instance details

Defined in System.Nix.Store.Remote.MonadStore

Methods

throwM :: (HasCallStack, Exception e) => e -> RemoteStoreT m a #

MonadIO m => MonadRemoteStore (RemoteStoreT m) Source # 
Instance details

Defined in System.Nix.Store.Remote.MonadStore

runRemoteStoreT :: Monad m => Socket -> RemoteStoreT m a -> m (Either RemoteStoreError a, DList Logger) Source #

Runner for RemoteStoreT

class (MonadIO m, MonadError RemoteStoreError m) => MonadRemoteStore m where Source #

Minimal complete definition

Nothing

Methods

appendLog :: Logger -> m () Source #

default appendLog :: (MonadTrans t, MonadRemoteStore m', m ~ t m') => Logger -> m () Source #

getConfig :: m ProtoStoreConfig Source #

getStoreDir :: m StoreDir Source #

default getStoreDir :: (MonadTrans t, MonadRemoteStore m', m ~ t m') => m StoreDir Source #

setStoreDir :: StoreDir -> m () Source #

default setStoreDir :: (MonadTrans t, MonadRemoteStore m', m ~ t m') => StoreDir -> m () Source #

getProtoVersion :: m ProtoVersion Source #

Get ProtoVersion from state

setProtoVersion :: ProtoVersion -> m () Source #

default setProtoVersion :: (MonadTrans t, MonadRemoteStore m', m ~ t m') => ProtoVersion -> m () Source #

getStoreSocket :: m Socket Source #

default getStoreSocket :: (MonadTrans t, MonadRemoteStore m', m ~ t m') => m Socket Source #

setNarSource :: NarSource IO -> m () Source #

default setNarSource :: (MonadTrans t, MonadRemoteStore m', m ~ t m') => NarSource IO -> m () Source #

takeNarSource :: m (Maybe (NarSource IO)) Source #

default takeNarSource :: (MonadTrans t, MonadRemoteStore m', m ~ t m') => m (Maybe (NarSource IO)) Source #

setDataSource :: (Word64 -> IO (Maybe ByteString)) -> m () Source #

default setDataSource :: (MonadTrans t, MonadRemoteStore m', m ~ t m') => (Word64 -> IO (Maybe ByteString)) -> m () Source #

takeDataSource :: m (Maybe (Word64 -> IO (Maybe ByteString))) Source #

default takeDataSource :: (MonadTrans t, MonadRemoteStore m', m ~ t m') => m (Maybe (Word64 -> IO (Maybe ByteString))) Source #

getDataSource :: m (Maybe (Word64 -> IO (Maybe ByteString))) Source #

default getDataSource :: (MonadTrans t, MonadRemoteStore m', m ~ t m') => m (Maybe (Word64 -> IO (Maybe ByteString))) Source #

clearDataSource :: m () Source #

default clearDataSource :: (MonadTrans t, MonadRemoteStore m', m ~ t m') => m () Source #

setDataSink :: (ByteString -> IO ()) -> m () Source #

default setDataSink :: (MonadTrans t, MonadRemoteStore m', m ~ t m') => (ByteString -> IO ()) -> m () Source #

getDataSink :: m (Maybe (ByteString -> IO ())) Source #

default getDataSink :: (MonadTrans t, MonadRemoteStore m', m ~ t m') => m (Maybe (ByteString -> IO ())) Source #

clearDataSink :: m () Source #

default clearDataSink :: (MonadTrans t, MonadRemoteStore m', m ~ t m') => m () Source #

setDataSinkSize :: Word64 -> m () Source #

default setDataSinkSize :: (MonadTrans t, MonadRemoteStore m', m ~ t m') => Word64 -> m () Source #

getDataSinkSize :: m (Maybe Word64) Source #

default getDataSinkSize :: (MonadTrans t, MonadRemoteStore m', m ~ t m') => m (Maybe Word64) Source #

clearDataSinkSize :: m () Source #

default clearDataSinkSize :: (MonadTrans t, MonadRemoteStore m', m ~ t m') => m () Source #

Instances

Instances details
MonadIO m => MonadRemoteStore (RemoteStoreT m) Source # 
Instance details

Defined in System.Nix.Store.Remote.MonadStore

MonadRemoteStore m => MonadRemoteStore (ExceptT RemoteStoreError m) Source # 
Instance details

Defined in System.Nix.Store.Remote.MonadStore

MonadRemoteStore m => MonadRemoteStore (ReaderT r m) Source # 
Instance details

Defined in System.Nix.Store.Remote.MonadStore

MonadRemoteStore m => MonadRemoteStore (StateT s m) Source # 
Instance details

Defined in System.Nix.Store.Remote.MonadStore