diff options
author | Joey Hess <joey@kitenet.net> | 2011-06-01 21:56:04 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2011-06-01 21:56:04 -0400 |
commit | 703c437bd9c6cb9e4675b65ac2b107f76b135d71 (patch) | |
tree | a6f35036bdd2b33aca50fd899448a0f6e3b60507 /RemoteClass.hs | |
parent | 971ab27e7820a3228f71dd42f3e870c0fc2f4345 (diff) |
rename modules for data types into Types/ directory
Diffstat (limited to 'RemoteClass.hs')
-rw-r--r-- | RemoteClass.hs | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/RemoteClass.hs b/RemoteClass.hs deleted file mode 100644 index f954e4ff8..000000000 --- a/RemoteClass.hs +++ /dev/null @@ -1,65 +0,0 @@ -{- git-annex remotes class - - - - Most things should not need this, using Remote instead - - - - Copyright 2011 Joey Hess <joey@kitenet.net> - - - - Licensed under the GNU GPL version 3 or higher. - -} - -module RemoteClass where - -import Control.Exception -import Data.Map as M - -import qualified GitRepo as Git -import Key - -type RemoteConfig = M.Map String String - -{- There are different types of remotes. -} -data RemoteType a = RemoteType { - -- human visible type name - typename :: String, - -- enumerates remotes of this type - enumerate :: a [Git.Repo], - -- generates a remote of this type - generate :: Git.Repo -> String -> Maybe RemoteConfig -> a (Remote a), - -- initializes or changes a remote - setup :: String -> RemoteConfig -> a RemoteConfig -} - -{- An individual remote. -} -data Remote a = Remote { - -- each Remote has a unique 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 -> a Bool, - -- retrieves a key's contents to a file - retrieveKeyFile :: Key -> FilePath -> a Bool, - -- removes a key's contents - 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 -> a (Either IOException Bool), - -- Some remotes can check hasKey without an expensive network - -- operation. - hasKeyCheap :: Bool, - -- a Remote can have a persistent configuration store - config :: Maybe RemoteConfig -} - -instance Show (Remote a) where - show remote = "Remote { name =\"" ++ name remote ++ "\" }" - --- two remotes are the same if they have the same uuid -instance Eq (Remote a) where - x == y = uuid x == uuid y - --- order remotes by cost -instance Ord (Remote a) where - compare x y = compare (cost x) (cost y) |