]> dgit.raspbian.org Git - git-annex.git/commitdiff
simplify transferr protocol
authorJoey Hess <joeyh@joeyh.name>
Fri, 11 Dec 2020 16:52:22 +0000 (12:52 -0400)
committerJoey Hess <joeyh@joeyh.name>
Fri, 11 Dec 2020 16:52:22 +0000 (12:52 -0400)
Messages/Progress.hs
Messages/Serialized.hs
Types/Messages.hs
Types/Transferrer.hs

index 48cc4912d312959d65815a8ff35205b812e95db5..da60716e64712035c755cb459b0690dfc61fb1a0 100644 (file)
@@ -116,7 +116,10 @@ metered' st othermeter msize showoutput a = go st
                        a meter (combinemeter m)
                | otherwise = nometer
        go (MessageState { outputType = SerializedOutput h _ }) = do
-               liftIO $ outputSerialized h $ BeginProgressMeter msize
+               liftIO $ outputSerialized h BeginProgressMeter
+               case msize of
+                       Just sz -> liftIO $ outputSerialized h $ UpdateProgressMeterTotalSize sz
+                       Nothing -> noop
                szv <- liftIO $ newIORef msize
                meter <- liftIO $ mkMeter msize $ \_ msize' _old new -> do
                        case msize' of
index cd62e104488bdba3bd5d19badddc3947b282d6b1..ff2517a901bed29422c73c07d0e4b0260b4b0bd9 100644 (file)
@@ -63,11 +63,11 @@ relaySerializedOutput getso sendsor meterreport runannex = go Nothing
                                        outputSerialized h $ JSONObject b
                                _ -> q
                        loop st
-               Left (BeginProgressMeter sz) -> do
+               Left BeginProgressMeter -> do
                        ost <- runannex (Annex.getState Annex.output)
                        -- Display a progress meter while running, until
                        -- the meter ends or a final value is returned.
-                       metered' ost Nothing sz (runannex showOutput) 
+                       metered' ost Nothing Nothing (runannex showOutput) 
                                (\meter meterupdate -> loop (Just (meter, meterupdate)))
                                >>= \case
                                        Right r -> return (Right r)
index ffb85ac3d0805e4eaeb7c99f99e4d578350ffbda..593207be350ed5186f135e4e885b4278d1ef52bb 100644 (file)
@@ -68,9 +68,9 @@ newMessageState = do
 data SerializedOutput
        = OutputMessage S.ByteString
        | OutputError String
-       | BeginProgressMeter (Maybe TotalSize)
-       | UpdateProgressMeter BytesProcessed
+       | BeginProgressMeter
        | UpdateProgressMeterTotalSize TotalSize
+       | UpdateProgressMeter BytesProcessed
        | EndProgressMeter
        | BeginPrompt
        | EndPrompt
index 7dbcfb23be8cd7dac09c19a250b1dea3ac89e9c3..79b08951262fed904454712dcfe25c6b4ecd7429 100644 (file)
@@ -85,14 +85,12 @@ instance Proto.Sendable TransferResponse where
                ["om", Proto.serialize (encode_c (decodeBS m))]
        formatMessage (TransferOutput (OutputError e)) =
                ["oe", Proto.serialize (encode_c e)]
-       formatMessage (TransferOutput (BeginProgressMeter (Just (TotalSize n)))) =
-               ["opb", Proto.serialize n]
-       formatMessage (TransferOutput (BeginProgressMeter Nothing)) =
-               ["opbx"]
-       formatMessage (TransferOutput (UpdateProgressMeter n)) =
-               ["op", Proto.serialize n]
+       formatMessage (TransferOutput BeginProgressMeter) =
+               ["opb"]
        formatMessage (TransferOutput (UpdateProgressMeterTotalSize (TotalSize sz))) =
                ["ops", Proto.serialize sz]
+       formatMessage (TransferOutput (UpdateProgressMeter n)) =
+               ["op", Proto.serialize n]
        formatMessage (TransferOutput EndProgressMeter) =
                ["ope"]
        formatMessage (TransferOutput BeginPrompt) =
@@ -111,14 +109,12 @@ instance Proto.Receivable TransferResponse where
                TransferOutput . OutputMessage . encodeBS . decode_c
        parseCommand "oe" = Proto.parse1 $
                TransferOutput . OutputError . decode_c
-       parseCommand "opb" = Proto.parse1 $
-               TransferOutput . BeginProgressMeter . Just . TotalSize
-       parseCommand "opbx" = Proto.parse0 $
-               TransferOutput (BeginProgressMeter Nothing)
-       parseCommand "op" = Proto.parse1 $
-               TransferOutput . UpdateProgressMeter
+       parseCommand "opb" = Proto.parse0 $
+               TransferOutput BeginProgressMeter
        parseCommand "ops" = Proto.parse1 $
                TransferOutput . UpdateProgressMeterTotalSize . TotalSize
+       parseCommand "op" = Proto.parse1 $
+               TransferOutput . UpdateProgressMeter
        parseCommand "ope" = Proto.parse0 $
                TransferOutput EndProgressMeter
        parseCommand "oprb" = Proto.parse0 $