aboutsummaryrefslogtreecommitdiff
path: root/Types/Remote.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2015-10-09 12:36:04 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2015-10-09 12:36:04 -0400
commit7788d302397096c85fe70c35f2661d76a8d2f511 (patch)
treebe835fdaab4fb0abdb751fb856d7b00d5c4b86fa /Types/Remote.hs
parent00ba3ec15d8e3a51545aed4c6e43771f2630a0f8 (diff)
finish and use lockContent interface
Diffstat (limited to 'Types/Remote.hs')
-rw-r--r--Types/Remote.hs6
1 files changed, 4 insertions, 2 deletions
diff --git a/Types/Remote.hs b/Types/Remote.hs
index 9e5f9f735..511a85afa 100644
--- a/Types/Remote.hs
+++ b/Types/Remote.hs
@@ -30,6 +30,7 @@ import Types.GitConfig
import Types.Availability
import Types.Creds
import Types.UrlContents
+import Types.NumCopies
import Config.Cost
import Utility.Metered
import Git.Types
@@ -77,9 +78,10 @@ data RemoteA a = Remote {
-- Removes a key's contents (succeeds if the contents are not present)
removeKey :: Key -> a Bool,
-- Uses locking to prevent removal of a key's contents,
- -- and runs the passed action while it's locked.
+ -- thus producing a VerifiedCopy.
+ -- The action must be run whether or not the locking succeeds.
-- This is optional; remotes do not have to support locking.
- lockContent :: forall r. Maybe (Key -> a r -> a r),
+ lockContent :: forall r. Maybe (Key -> (Maybe VerifiedCopy -> a r) -> a r),
-- Checks if a key is present in the remote.
-- Throws an exception if the remote cannot be accessed.
checkPresent :: Key -> a Bool,