packages feed

skylark-client 0.1.1 → 0.1.2

raw patch · 3 files changed

+23/−22 lines, 3 filesdep −resourcet

Dependencies removed: resourcet

Files

main/skylark-client.hs view
@@ -18,4 +18,4 @@ main :: IO () main = do   args <- getRecord "Skylark Client"-  runResourceT $ runSkylark (url args) (device args) (sourceHandle stdin) (sinkHandle stdout)+  runSkylark (url args) (device args) (sourceHandle stdin) (sinkHandle stdout)
skylark-client.cabal view
@@ -1,5 +1,5 @@ name:                  skylark-client-version:               0.1.1+version:               0.1.2 synopsis:              Skylark client. description:           Skylark network client. homepage:              https://github.com/githubuser/skylark-client#readme@@ -22,7 +22,6 @@                      , http-types                      , lifted-async                      , preamble-                     , resourcet                      , stm                      , stm-conduit 
src/Network/Skylark/Client.hs view
@@ -8,7 +8,6 @@  import Control.Concurrent.Async.Lifted import Control.Concurrent.STM-import Control.Monad.Trans.Resource import Data.Conduit import Data.Conduit.TQueue import Network.HTTP.Conduit@@ -16,7 +15,6 @@ import Network.HTTP.Types.Header import Preamble - {-# ANN module ("HLint: ignore Redundant flip"::String) #-}  -- | Device-Uid Header@@ -31,18 +29,20 @@  -- | Download data from Skylark to sink. ---download :: MonadResource m => ByteString -> Manager -> Request -> Sink ByteString m () -> m ()-download device manager request sink = do-  response <- flip http manager request-    { method = methodGet-    , requestHeaders =-        [ (hAccept, sbpContentType)-        , (hDevice, device)-        , (hPragma, "proxy")-        ]-    }-  responseBody response $$+- sink+download :: MonadIO m => ByteString -> Manager -> Request -> TBQueue ByteString -> m ()+download device manager request queue =+  liftIO $ runResourceT $ do+    response <- flip http manager request+      { method = methodGet+      , requestHeaders =+          [ (hAccept, sbpContentType)+          , (hDevice, device)+          , (hPragma, "proxy")+          ]+      }+    responseBody response $$+- sinkTBQueue queue + -- | Upload data to Skylark from source. -- upload :: MonadIO m => ByteString -> Manager -> Request -> TBQueue ByteString -> m ()@@ -58,10 +58,12 @@  -- | Run Skylark client. ---runSkylark :: MonadMain m => String -> ByteString -> Source m ByteString -> Sink ByteString m () -> m ()+runSkylark :: MonadControl m => String -> ByteString -> Source m ByteString -> Sink ByteString m () -> m () runSkylark url device source sink = do-  manager <- liftIO $ newManager tlsManagerSettings-  request <- parseRequest url-  queue   <- liftIO $ atomically $ newTBQueue 8192-  void $ concurrently (download device manager request sink) $-    concurrently (source $$ sinkTBQueue queue) (upload device manager request queue)+  manager   <- liftIO $ newManager tlsManagerSettings+  request   <- parseRequest url+  upQueue   <- liftIO $ atomically $ newTBQueue 8192+  downQueue <- liftIO $ atomically $ newTBQueue 8192+  void $ concurrently+    (concurrently (download device manager request downQueue) (sourceTBQueue downQueue $$ sink))+    (concurrently (source $$ sinkTBQueue upQueue) (upload device manager request upQueue))