diff options
Diffstat (limited to 'Remote/External')
-rw-r--r-- | Remote/External/Types.hs | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/Remote/External/Types.hs b/Remote/External/Types.hs index 4000f3f49..ff93af0ec 100644 --- a/Remote/External/Types.hs +++ b/Remote/External/Types.hs @@ -30,11 +30,12 @@ module Remote.External.Types ( ) where import Common.Annex -import Types.Key -import Utility.Metered -import Logs.Transfer -import Config.Cost import Annex.Exception +import Types.Key (file2key, key2file) +import Utility.Metered (BytesProcessed(..)) +import Logs.Transfer (Direction(..)) +import Config.Cost (Cost) +import Types.Remote (RemoteConfig) import Data.Char import Control.Concurrent.STM @@ -47,13 +48,16 @@ data External = External , externalState :: TMVar ExternalState -- Empty when a remote is in use. , externalLock :: TMVar ExternalLock + -- Never left empty. + , externalConfig :: TMVar RemoteConfig } -newExternal :: ExternalType -> Annex External -newExternal externaltype = liftIO $ External +newExternal :: ExternalType -> RemoteConfig -> Annex External +newExternal externaltype c = liftIO $ External <$> pure externaltype <*> atomically newEmptyTMVar <*> atomically (newTMVar ExternalLock) + <*> atomically (newTMVar c) type ExternalType = String |