net-mqtt-rpc 0.1.2.1 → 0.2.0.0
raw patch · 2 files changed
+20/−13 lines, 2 filesdep ~net-mqttPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: net-mqtt
API changes (from Hackage documentation)
Files
- net-mqtt-rpc.cabal +13/−7
- src/Network/MQTT/RPC.hs +7/−6
net-mqtt-rpc.cabal view
@@ -1,13 +1,13 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.33.0.+-- This file has been generated from package.yaml by hpack version 0.34.4. -- -- see: https://github.com/sol/hpack ----- hash: 468ed5b7341f379a28bd55450feca3cbb85b8dc12b44f85df9f7cc7771082f7b+-- hash: 3b23271875b2f32d9cd255411974c5c45f97b08b12d300e2e341e73cef64e876 name: net-mqtt-rpc-version: 0.1.2.1+version: 0.2.0.0 synopsis: Make RPC calls via an MQTT broker. description: Please see the README on GitHub at <https://github.com/dustin/net-mqtt-rpc#readme> category: Network@@ -34,13 +34,16 @@ Paths_net_mqtt_rpc hs-source-dirs: src- default-extensions: OverloadedStrings RecordWildCards NamedFieldPuns+ default-extensions:+ OverloadedStrings+ RecordWildCards+ NamedFieldPuns ghc-options: -Wall build-depends: base >=4.7 && <5 , bytestring , exceptions- , net-mqtt >=0.6.2.0 && <0.8.0.0+ , net-mqtt >=0.8.0.0 , random , stm , text@@ -53,13 +56,16 @@ Paths_net_mqtt_rpc hs-source-dirs: app- default-extensions: OverloadedStrings RecordWildCards NamedFieldPuns+ default-extensions:+ OverloadedStrings+ RecordWildCards+ NamedFieldPuns ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall build-depends: base >=4.7 && <5 , bytestring , exceptions- , net-mqtt >=0.6.2.0 && <0.8.0.0+ , net-mqtt >=0.8.0.0 , net-mqtt-rpc , network-uri , optparse-applicative
src/Network/MQTT/RPC.hs view
@@ -5,8 +5,7 @@ module Network.MQTT.RPC (call) where -import Control.Concurrent.STM (atomically, newTChanIO, readTChan,- writeTChan)+import Control.Concurrent.STM (atomically, newTChanIO, readTChan, writeTChan) import Control.Monad (when) import Control.Monad.Catch (bracket, throwM) import Control.Monad.IO.Class (MonadIO (..))@@ -15,6 +14,7 @@ import qualified Data.Text.Encoding as TE import qualified Data.UUID as UUID import Network.MQTT.Client+import Network.MQTT.Topic import System.Random (randomIO) blToText :: BL.ByteString -> Text@@ -33,15 +33,16 @@ r <- newTChanIO corr <- BL.fromStrict . UUID.toASCIIBytes <$> randomIO subid <- BL.fromStrict . ("$rpc/" <>) . UUID.toASCIIBytes <$> randomIO- go corr subid r+ Just filt <- pure (mkFilter . blToText $ subid)+ go corr subid filt r - where go theID theTopic r = bracket reg unreg rt+ where go theID theTopic filt r = bracket reg unreg rt where reg = do atomically $ registerCorrelated mc theID (SimpleCallback cb)- subscribe mc [(blToText theTopic, subOptions)] mempty+ subscribe mc [(filt, subOptions)] mempty unreg _ = do atomically $ unregisterCorrelated mc theID- unsubscribe mc [blToText theTopic] mempty+ unsubscribe mc [filt] mempty cb _ _ m _ = atomically $ writeTChan r m rt _ = do publishq mc topic req False QoS2 [