{-# LANGUAGE OverloadedStrings #-} module TahoeLAFS.Storage.Backend.Null ( NullBackend (NullBackend), ) where import qualified Data.Set as Set import TahoeLAFS.Storage.API ( AllocationResult (..), CBORSet (..), Version (..), Version1Parameters (..), ) import TahoeLAFS.Storage.Backend ( Backend (..), ) data NullBackend = NullBackend deriving (Int -> NullBackend -> ShowS [NullBackend] -> ShowS NullBackend -> String (Int -> NullBackend -> ShowS) -> (NullBackend -> String) -> ([NullBackend] -> ShowS) -> Show NullBackend forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [NullBackend] -> ShowS $cshowList :: [NullBackend] -> ShowS show :: NullBackend -> String $cshow :: NullBackend -> String showsPrec :: Int -> NullBackend -> ShowS $cshowsPrec :: Int -> NullBackend -> ShowS Show) instance Backend NullBackend where version :: NullBackend -> IO Version version NullBackend NullBackend = Version -> IO Version forall (m :: * -> *) a. Monad m => a -> m a return Version :: Version1Parameters -> ShareData -> Version Version { applicationVersion :: ShareData applicationVersion = ShareData "(null)" , parameters :: Version1Parameters parameters = Version1Parameters :: Size -> Size -> Size -> Version1Parameters Version1Parameters { maximumImmutableShareSize :: Size maximumImmutableShareSize = Size 0 , maximumMutableShareSize :: Size maximumMutableShareSize = Size 0 , availableSpace :: Size availableSpace = Size 0 } } createImmutableStorageIndex :: NullBackend -> String -> Maybe [LeaseSecret] -> AllocateBuckets -> IO AllocationResult createImmutableStorageIndex NullBackend NullBackend String _ Maybe [LeaseSecret] _ AllocateBuckets _ = AllocationResult -> IO AllocationResult forall (m :: * -> *) a. Monad m => a -> m a return AllocationResult :: [ShareNumber] -> [ShareNumber] -> AllocationResult AllocationResult { alreadyHave :: [ShareNumber] alreadyHave = [ShareNumber] forall a. Monoid a => a mempty , allocated :: [ShareNumber] allocated = [ShareNumber] forall a. Monoid a => a mempty } writeImmutableShare :: NullBackend -> String -> ShareNumber -> Maybe [LeaseSecret] -> ShareData -> QueryRange -> IO () writeImmutableShare NullBackend NullBackend String _ ShareNumber _ Maybe [LeaseSecret] _ ShareData _ = IO () -> QueryRange -> IO () forall (m :: * -> *) a. Monad m => a -> m a return IO () forall a. Monoid a => a mempty adviseCorruptImmutableShare :: NullBackend -> String -> ShareNumber -> CorruptionDetails -> IO () adviseCorruptImmutableShare NullBackend NullBackend String _ ShareNumber _ CorruptionDetails _ = () -> IO () forall (m :: * -> *) a. Monad m => a -> m a return () forall a. Monoid a => a mempty getImmutableShareNumbers :: NullBackend -> String -> IO (CBORSet ShareNumber) getImmutableShareNumbers NullBackend NullBackend String _ = CBORSet ShareNumber -> IO (CBORSet ShareNumber) forall (m :: * -> *) a. Monad m => a -> m a return (Set ShareNumber -> CBORSet ShareNumber forall a. Set a -> CBORSet a CBORSet (Set ShareNumber -> CBORSet ShareNumber) -> Set ShareNumber -> CBORSet ShareNumber forall a b. (a -> b) -> a -> b $ [ShareNumber] -> Set ShareNumber forall a. Ord a => [a] -> Set a Set.fromList []) readImmutableShare :: NullBackend -> String -> ShareNumber -> QueryRange -> IO ShareData readImmutableShare NullBackend NullBackend String _ ShareNumber _ QueryRange _ = IO ShareData forall a. Monoid a => a mempty