diff options
author | Joey Hess <joeyh@joeyh.name> | 2016-12-07 14:25:01 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2016-12-07 14:25:01 -0400 |
commit | 51b648ac6e11d0d5a9e617e45d236bd850894285 (patch) | |
tree | 15a28ce8095bba46d704ac2ac68448c5e1bf81eb /Remote | |
parent | 84023bbceb672c757a0cbd93571b303f154f8001 (diff) |
more p2p progress meters
Display progress meter on send and receive from remote.
Added a new hGetMetered that can read an exact number of bytes (or
less), updating a meter as it goes.
This commit was sponsored by Andreas on Patreon.
Diffstat (limited to 'Remote')
-rw-r--r-- | Remote/P2P.hs | 11 | ||||
-rw-r--r-- | Remote/S3.hs | 2 |
2 files changed, 8 insertions, 5 deletions
diff --git a/Remote/P2P.hs b/Remote/P2P.hs index 8286a9a18..1d7ede30f 100644 --- a/Remote/P2P.hs +++ b/Remote/P2P.hs @@ -24,6 +24,7 @@ import Annex.UUID import Config import Config.Cost import Remote.Helper.Git +import Messages.Progress import Utility.Metered import Utility.AuthToken import Types.NumCopies @@ -74,12 +75,14 @@ chainGen addr r u c gc = do return (Just this) store :: UUID -> P2PAddress -> ConnectionPool -> Key -> AssociatedFile -> MeterUpdate -> Annex Bool -store u addr connpool k af p = fromMaybe False - <$> runProto u addr connpool (P2P.put k af p) +store u addr connpool k af p = + metered (Just p) k $ \p' -> fromMaybe False + <$> runProto u addr connpool (P2P.put k af p') retrieve :: UUID -> P2PAddress -> ConnectionPool -> Key -> AssociatedFile -> FilePath -> MeterUpdate -> Annex (Bool, Verification) -retrieve u addr connpool k af dest _p = unVerified $ fromMaybe False - <$> runProto u addr connpool (P2P.get dest k af) +retrieve u addr connpool k af dest p = unVerified $ + metered (Just p) k $ \p' -> fromMaybe False + <$> runProto u addr connpool (P2P.get dest k af p') remove :: UUID -> P2PAddress -> ConnectionPool -> Key -> Annex Bool remove u addr connpool k = fromMaybe False diff --git a/Remote/S3.hs b/Remote/S3.hs index c6f23333f..4c1bd5784 100644 --- a/Remote/S3.hs +++ b/Remote/S3.hs @@ -193,7 +193,7 @@ store _r info h = fileStorer $ \k f p -> do uploadid <- S3.imurUploadId <$> sendS3Handle h startreq -- The actual part size will be a even multiple of the - -- 32k chunk size that hGetUntilMetered uses. + -- 32k chunk size that lazy ByteStrings use. let partsz' = (partsz `div` toInteger defaultChunkSize) * toInteger defaultChunkSize -- Send parts of the file, taking care to stream each part |