summaryrefslogtreecommitdiff
path: root/RemoteClass.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2011-03-27 16:17:56 -0400
committerGravatar Joey Hess <joey@kitenet.net>2011-03-27 16:17:56 -0400
commitf30320aa75d6fa590f60030f13df6b3899816196 (patch)
tree8152163ab2170de227566c42f196051a94ef5e91 /RemoteClass.hs
parentb40f253d6e126d699e9f298bf670fc5e875bfd86 (diff)
add remotes slot to Annex
This required parameterizing the type for Remote, to avoid a cycle.
Diffstat (limited to 'RemoteClass.hs')
-rw-r--r--RemoteClass.hs24
1 files changed, 11 insertions, 13 deletions
diff --git a/RemoteClass.hs b/RemoteClass.hs
index df2aefb71..9fef0e44a 100644
--- a/RemoteClass.hs
+++ b/RemoteClass.hs
@@ -9,38 +9,36 @@ module RemoteClass where
import Control.Exception
-import Annex
-import UUID
import Key
-data Remote = Remote {
+data Remote a = Remote {
-- each Remote has a unique uuid
- uuid :: UUID,
+ uuid :: String,
-- each Remote has a human visible name
name :: String,
-- Remotes have a use cost; higher is more expensive
cost :: Int,
-- Transfers a key to the remote.
- storeKey :: Key -> Annex Bool,
+ storeKey :: Key -> a Bool,
-- retrieves a key's contents to a file
- retrieveKeyFile :: Key -> FilePath -> Annex Bool,
+ retrieveKeyFile :: Key -> FilePath -> a Bool,
-- removes a key's contents
- removeKey :: Key -> Annex Bool,
+ removeKey :: Key -> a Bool,
-- Checks if a key is present in the remote; if the remote
-- cannot be accessed returns a Left error.
- hasKey :: Key -> Annex (Either IOException Bool),
+ hasKey :: Key -> a (Either IOException Bool),
-- Some remotes can check hasKey without an expensive network
-- operation.
hasKeyCheap :: Bool
}
-instance Show Remote where
+instance Show (Remote a) where
show remote = "Remote { uuid =\"" ++ uuid remote ++ "\" }"
-- two remotes are the same if they have the same uuid
-instance Eq Remote where
- a == b = uuid a == uuid b
+instance Eq (Remote a) where
+ x == y = uuid x == uuid y
-- order remotes by cost
-instance Ord Remote where
- compare a b = compare (cost a) (cost b)
+instance Ord (Remote a) where
+ compare x y = compare (cost x) (cost y)