c-mosquitto 0.1.0.1 → 0.1.1.0
raw patch · 4 files changed
+29/−23 lines, 4 files
Files
- app/Main.hs +8/−9
- c-mosquitto.cabal +1/−1
- src/Network/Mosquitto.c +10/−7
- src/Network/Mosquitto.hs +10/−6
app/Main.hs view
@@ -1,13 +1,13 @@ {-# LANGUAGE OverloadedStrings, RecordWildCards #-} module Main where +import Control.Concurrent+import Control.Monad import qualified Network.Mosquitto as M-import Network.Mosquitto.Internal.Types-import Control.Concurrent-import Control.Monad+import Network.Mosquitto.Internal.Types -import Control.Applicative-import Options+import Control.Applicative+import Options data MainOptions = MainOptions { caCert :: String@@ -55,10 +55,9 @@ M.connect m server port keepAlive ---- forkIO $ forever $ do--- M.publish m False 0 "hello" "bla"--- threadDelay 5000000+ forkIO $ forever $ do+ M.publish m False 0 "hello" "bla"+ threadDelay 5000000 M.loopForever m M.destroyMosquitto m
c-mosquitto.cabal view
@@ -1,5 +1,5 @@ name: c-mosquitto-version: 0.1.0.1+version: 0.1.1.0 synopsis: Simpe mosquito MQTT binding able to work with the Amazons IoT -- description: homepage: https://github.com/tolysz/c-mosquitto#readme
src/Network/Mosquitto.c view
@@ -48,13 +48,16 @@ } -struct mosquitto * inline_c_Network_Mosquitto_9_f6927ebaedf8d0928ab12c9fbae686d2dd74e3c0(char * userId_inline_c_0, bool clearSession_inline_c_1) {-return (- mosquitto_new( userId_inline_c_0- , clearSession_inline_c_1- , 0 // (void * ptrUserData)- )- );+struct mosquitto * inline_c_Network_Mosquitto_9_d9f94938a97be80fe91fbbdf0353d48a93b0f8eb(char * userId_inline_c_0, bool clearSession_inline_c_1) {++ struct mosquitto * p =+ mosquitto_new( userId_inline_c_0+ , clearSession_inline_c_1+ , 0 // (void * ptrUserData)+ );+ mosquitto_threaded_set(p, true);+ return p;+ }
src/Network/Mosquitto.hs view
@@ -70,12 +70,16 @@ newMosquitto :: Bool -> String -> Maybe a -> IO (Mosquitto a) newMosquitto clearSession (C8.pack -> userId) _userData = do- fp <- newForeignPtr_ <$> [C.exp|struct mosquitto *{- mosquitto_new( $bs-ptr:userId- , $(bool clearSession)- , 0 // (void * ptrUserData)- )- }|]+ fp <- newForeignPtr_ <$> [C.block|struct mosquitto *{+ struct mosquitto * p =+ mosquitto_new( $bs-ptr:userId+ , $(bool clearSession)+ , 0 // (void * ptrUserData)+ );+ mosquitto_threaded_set(p, true);+ return p;+ }|]+ Mosquitto <$> fp destroyMosquitto :: Mosquitto a -> IO ()