Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
System.Nix.Store.Remote.MonadStore
Synopsis
- data RemoteStoreState = RemoteStoreState {}
- data RemoteStoreError
- = RemoteStoreError_Fixme String
- | RemoteStoreError_BuildFailed
- | RemoteStoreError_ClientVersionTooOld
- | RemoteStoreError_DerivationParse String
- | RemoteStoreError_Disconnected
- | RemoteStoreError_GetAddrInfoFailed
- | RemoteStoreError_GenericIncrementalLeftovers String ByteString
- | RemoteStoreError_GenericIncrementalFail String ByteString
- | RemoteStoreError_SerializerGet SError
- | RemoteStoreError_SerializerHandshake HandshakeSError
- | RemoteStoreError_SerializerLogger LoggerSError
- | RemoteStoreError_SerializerPut SError
- | RemoteStoreError_SerializerRequest RequestSError
- | RemoteStoreError_SerializerReply ReplySError
- | RemoteStoreError_IOException SomeException
- | RemoteStoreError_LoggerError (Either BasicError ErrorInfo)
- | RemoteStoreError_LoggerLeftovers String ByteString
- | RemoteStoreError_LoggerParserFail String ByteString
- | RemoteStoreError_NoDataSourceProvided
- | RemoteStoreError_DataSourceExhausted
- | RemoteStoreError_DataSourceZeroLengthRead
- | RemoteStoreError_DataSourceReadTooLarge
- | RemoteStoreError_NoDataSinkProvided
- | RemoteStoreError_NoDataSinkSizeProvided
- | RemoteStoreError_NoNarSourceProvided
- | RemoteStoreError_OperationFailed
- | RemoteStoreError_ProtocolMismatch
- | RemoteStoreError_RapairNotSupportedByRemoteStore
- | RemoteStoreError_WorkerMagic2Mismatch
- | RemoteStoreError_WorkerError WorkerError
- | RemoteStoreError_WorkerException WorkerException
- data WorkerError
- data WorkerException
- data RemoteStoreT m a
- runRemoteStoreT :: Monad m => Socket -> RemoteStoreT m a -> m (Either RemoteStoreError a, DList Logger)
- class (MonadIO m, MonadError RemoteStoreError m) => MonadRemoteStore m where
- appendLog :: Logger -> m ()
- getConfig :: m ProtoStoreConfig
- getStoreDir :: m StoreDir
- setStoreDir :: StoreDir -> m ()
- getProtoVersion :: m ProtoVersion
- setProtoVersion :: ProtoVersion -> m ()
- getStoreSocket :: m Socket
- setNarSource :: NarSource IO -> m ()
- takeNarSource :: m (Maybe (NarSource IO))
- setDataSource :: (Word64 -> IO (Maybe ByteString)) -> m ()
- takeDataSource :: m (Maybe (Word64 -> IO (Maybe ByteString)))
- getDataSource :: m (Maybe (Word64 -> IO (Maybe ByteString)))
- clearDataSource :: m ()
- setDataSink :: (ByteString -> IO ()) -> m ()
- getDataSink :: m (Maybe (ByteString -> IO ()))
- clearDataSink :: m ()
- setDataSinkSize :: Word64 -> m ()
- getDataSinkSize :: m (Maybe Word64)
- clearDataSinkSize :: m ()
Documentation
data RemoteStoreState Source #
Constructors
RemoteStoreState | |
Fields
|
Instances
HasStoreDir RemoteStoreState Source # | |
Defined in System.Nix.Store.Remote.MonadStore Methods hasStoreDir :: RemoteStoreState -> StoreDir # | |
HasProtoVersion RemoteStoreState Source # | |
Defined in System.Nix.Store.Remote.MonadStore Methods hasProtoVersion :: RemoteStoreState -> ProtoVersion Source # |
data RemoteStoreError Source #
Constructors
Instances
data WorkerError Source #
Non-fatal (to server) errors in worker interaction
Constructors
WorkerError_SendClosed | |
WorkerError_InvalidOperation Word64 | |
WorkerError_NotYetImplemented | |
WorkerError_UnsupportedOperation |
Instances
Show WorkerError Source # | |
Defined in System.Nix.Store.Remote.MonadStore Methods showsPrec :: Int -> WorkerError -> ShowS # show :: WorkerError -> String # showList :: [WorkerError] -> ShowS # | |
Eq WorkerError Source # | |
Defined in System.Nix.Store.Remote.MonadStore | |
Ord WorkerError Source # | |
Defined in System.Nix.Store.Remote.MonadStore Methods compare :: WorkerError -> WorkerError -> Ordering # (<) :: WorkerError -> WorkerError -> Bool # (<=) :: WorkerError -> WorkerError -> Bool # (>) :: WorkerError -> WorkerError -> Bool # (>=) :: WorkerError -> WorkerError -> Bool # max :: WorkerError -> WorkerError -> WorkerError # min :: WorkerError -> WorkerError -> WorkerError # |
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 |
Instances
Show WorkerException Source # | |
Defined in System.Nix.Store.Remote.MonadStore Methods showsPrec :: Int -> WorkerException -> ShowS # show :: WorkerException -> String # showList :: [WorkerException] -> ShowS # | |
Eq WorkerException Source # | |
Defined in System.Nix.Store.Remote.MonadStore Methods (==) :: WorkerException -> WorkerException -> Bool # (/=) :: WorkerException -> WorkerException -> Bool # | |
Ord WorkerException Source # | |
Defined in System.Nix.Store.Remote.MonadStore Methods compare :: WorkerException -> WorkerException -> Ordering # (<) :: WorkerException -> WorkerException -> Bool # (<=) :: WorkerException -> WorkerException -> Bool # (>) :: WorkerException -> WorkerException -> Bool # (>=) :: WorkerException -> WorkerException -> Bool # max :: WorkerException -> WorkerException -> WorkerException # min :: WorkerException -> WorkerException -> WorkerException # |
data RemoteStoreT m a Source #
Instances
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 #
default getConfig :: (MonadTrans t, MonadRemoteStore m', m ~ t m') => 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
default getProtoVersion :: (MonadTrans t, MonadRemoteStore m', m ~ t m') => m ProtoVersion Source #
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 #