From 300935948503d671ad91b943787d71dc1f6e421e Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sun, 27 Jul 2014 12:33:46 -0400 Subject: add key stability checking interface Needed for resuming from chunks. Url keys are considered not stable. I considered treating url keys with a known size as stable, but just don't feel that is enough information. --- Types/Backend.hs | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'Types/Backend.hs') diff --git a/Types/Backend.hs b/Types/Backend.hs index 7eb59b6e2..5c5855bc3 100644 --- a/Types/Backend.hs +++ b/Types/Backend.hs @@ -15,9 +15,16 @@ import Types.KeySource data BackendA a = Backend { name :: String , getKey :: KeySource -> a (Maybe Key) + -- Checks the content of a key. , fsckKey :: Maybe (Key -> FilePath -> a Bool) + -- Checks if a key can be upgraded to a better form. , canUpgradeKey :: Maybe (Key -> Bool) + -- Checks if there is a fast way to migrate a key to a different + -- backend (ie, without re-hashing). , fastMigrate :: Maybe (Key -> BackendA a -> Maybe Key) + -- Checks if a key is known (or assumed) to always refer to the + -- same data. + , isStableKey :: Key -> Bool } instance Show (BackendA a) where -- cgit v1.2.3