packages feed

c-mosquitto 0.1.4.1 → 0.1.5.0

raw patch · 4 files changed

+42/−232 lines, 4 files

Files

c-mosquitto.cabal view
@@ -1,7 +1,8 @@ name:                c-mosquitto-version:             0.1.4.1+version:             0.1.5.0 synopsis:            Simpe mosquito MQTT binding able to work with the Amazons IoT--- description:+description:         Simpe mosquito MQTT binding+                     able to work with the Amazons IoT but it should work with other providers homepage:            https://github.com/tolysz/c-mosquitto#readme license:             BSD3 license-file:        LICENSE@@ -28,9 +29,9 @@                      , bytestring   default-language:    Haskell2010 -  cc-options:          -Wall -O2-  if impl(ghc < 8.2)-      c-sources:       src/Network/Mosquitto.c+  cc-options:          -Wall+--  if impl(ghc < 8.2)+--      c-sources:       src/Network/Mosquitto.c   extra-libraries:     mosquitto  executable c-mosquitto
− src/Network/Mosquitto.c
@@ -1,217 +0,0 @@--#include <stdio.h>--#include <mosquitto.h>--int inline_c_Network_Mosquitto_0_af973a022b4e1bdc5e364f24abf1f96042f22074(struct mosquitto_message * ptr_inline_c_0) {-return ( ptr_inline_c_0->mid);-}---char * inline_c_Network_Mosquitto_1_1ffdbc152633d765d9af8dc1a99fc84de7cdc43d(struct mosquitto_message * ptr_inline_c_0) {-return (ptr_inline_c_0 -> topic );-}---char * inline_c_Network_Mosquitto_2_2a9eed77120139b9bb64a7f6606b06cf995c53d0(struct mosquitto_message * ptr_inline_c_0) {-return (ptr_inline_c_0 -> payload );-}---int inline_c_Network_Mosquitto_3_a343e4f7dc55e7308355464e738a9402fb43c490(struct mosquitto_message * ptr_inline_c_0) {-return (ptr_inline_c_0 -> payloadlen );-}---int inline_c_Network_Mosquitto_4_f085573633eba51cb044b22361e904fc48b4a9f3(struct mosquitto_message * ptr_inline_c_0) {-return ( ptr_inline_c_0->qos);-}---bool inline_c_Network_Mosquitto_5_ceaf89a39d1e88cb7f623dfa0d464582f936ed4f(struct mosquitto_message * ptr_inline_c_0) {-return ( ptr_inline_c_0->retain);-}---int inline_c_Network_Mosquitto_6_d5c23f7055ae67c09ff206dd6a9cc4f020e85c61() {-return ( mosquitto_lib_init() );-}---int inline_c_Network_Mosquitto_7_f62c1e89d0a67f1afbdb4eb34ac4bfb9ad34dd96() {-return ( mosquitto_lib_cleanup() );-}---void inline_c_Network_Mosquitto_8_7dea8f89bfffce831052393584adc3a08aa14253(int * a_inline_c_0, int * b_inline_c_1, int * c_inline_c_2) {- mosquitto_lib_version(a_inline_c_0,b_inline_c_1,c_inline_c_2); -}---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;-      -}---void inline_c_Network_Mosquitto_10_403fc80492c1877303448c739bc735b61f91b41d(struct mosquitto * ptr_inline_c_0) {--         mosquitto_destroy(ptr_inline_c_0)-     ;-}---void inline_c_Network_Mosquitto_11_2e52b4e387ff964e8763e13931c04b69aff55430(struct mosquitto * pMosq_inline_c_0, char * caFile_inline_c_1, char * certFile_inline_c_2, char * keyFile_inline_c_3) {--               mosquitto_tls_set( pMosq_inline_c_0-                                , caFile_inline_c_1-                                , 0-                                , certFile_inline_c_2-                                , keyFile_inline_c_3-                                , 0-                                )-       ;-}---int inline_c_Network_Mosquitto_12_5df2159b027edc29e63231d331ce11cb9a71baa9(struct mosquitto * pMosq_inline_c_0, int reconnectDelay_inline_c_1, int reconnectDelayMax_inline_c_2, bool exponential_inline_c_3) {-return (-             mosquitto_reconnect_delay_set-               ( pMosq_inline_c_0-               , reconnectDelay_inline_c_1-               , reconnectDelayMax_inline_c_2-               , exponential_inline_c_3-               )-        );-}---int inline_c_Network_Mosquitto_13_98b22e49ca780ebc944cedb809c5a5097eea6100(struct mosquitto * pMosq_inline_c_0, char * hostname_inline_c_1, int port_inline_c_2, int keepAlive_inline_c_3) {-return (-               mosquitto_connect( pMosq_inline_c_0-                                , hostname_inline_c_1-                                , port_inline_c_2-                                , keepAlive_inline_c_3-                                )-             );-}---void inline_c_Network_Mosquitto_14_9b2300d6db40d43ebb6d72e3b5a020f27089aa9f(struct mosquitto * pMosq_inline_c_0, void (* on_subscribe_inline_c_1)(struct mosquitto *, void *, int , int , const int *)) {--        mosquitto_subscribe_callback_set-            ( pMosq_inline_c_0-            , on_subscribe_inline_c_1-            );-       -}---void inline_c_Network_Mosquitto_15_c37f43d389a2b1e4a300492e3a711a4a76e04f57(struct mosquitto * pMosq_inline_c_0, void (* on_connect_inline_c_1)(struct mosquitto *, void *, int )) {--        mosquitto_connect_callback_set-            ( pMosq_inline_c_0-            , on_connect_inline_c_1-            );-       -}---void inline_c_Network_Mosquitto_16_73f1686f2c07e9747998ec5d1a023376b6401ac8(struct mosquitto * pMosq_inline_c_0, void (* on_disconnect_inline_c_1)(struct mosquitto *, void *, int )) {--        mosquitto_disconnect_callback_set-            ( pMosq_inline_c_0-            , on_disconnect_inline_c_1-            );-       -}---void inline_c_Network_Mosquitto_17_374d617a6dd1e6b1b85395b1c3a2043f8a86cd2b(struct mosquitto * pMosq_inline_c_0, void (* on_log_inline_c_1)(struct mosquitto *, void *, int , const char *)) {--        mosquitto_log_callback_set-            ( pMosq_inline_c_0-            , on_log_inline_c_1-            );-       -}---void inline_c_Network_Mosquitto_18_2dd27966a8764a1bdd083baf0f4690e8e2ef1475(struct mosquitto * pMosq_inline_c_0, void (* on_message_inline_c_1)(struct mosquitto *, void *, const struct mosquitto_message *)) {--        mosquitto_message_callback_set-            ( pMosq_inline_c_0-            , on_message_inline_c_1-            );-       -}---void inline_c_Network_Mosquitto_19_4b8c8d8774deee8ab1d79ed9d536914d1ca65d06(struct mosquitto * pMosq_inline_c_0) {--             mosquitto_loop_forever(pMosq_inline_c_0, -1, 1)-        ;-}---void inline_c_Network_Mosquitto_20_969dca874ea20234f06362014c8097eab6c27f8f(struct mosquitto * pMosq_inline_c_0, bool isInsecure_inline_c_1) {--             mosquitto_tls_insecure_set(pMosq_inline_c_0, isInsecure_inline_c_1)-        ;-}---int inline_c_Network_Mosquitto_21_26af9a8807a3b025f22ffd1ecf26e974a708200b(struct mosquitto * pMosq_inline_c_0, char * topic_inline_c_1, long payload_inline_c_2, char * payload_inline_c_3, int qos_inline_c_4, bool retain_inline_c_5) {-return (-             mosquitto_will_set-               ( pMosq_inline_c_0-               , topic_inline_c_1-               , payload_inline_c_2-               , payload_inline_c_3-               , qos_inline_c_4-               , retain_inline_c_5-               )-        );-}---int inline_c_Network_Mosquitto_22_695260a2b677f2d71d3523f2e5330bb74a20055c(struct mosquitto * pMosq_inline_c_0) {-return (-             mosquitto_will_clear(pMosq_inline_c_0)-        );-}---void inline_c_Network_Mosquitto_23_61ffbebe13cb650a9058a8b715732b7a82987f92(struct mosquitto * pMosq_inline_c_0, char * topic_inline_c_1, long payload_inline_c_2, char * payload_inline_c_3, int qos_inline_c_4, bool retain_inline_c_5) {--             mosquitto_publish-               ( pMosq_inline_c_0-               , 0-               , topic_inline_c_1-               , payload_inline_c_2-               , payload_inline_c_3-               , qos_inline_c_4-               , retain_inline_c_5-               )-        ;-}---void inline_c_Network_Mosquitto_24_491fe5e8a7e8888c30139bd3dcd275298b39e3a8(struct mosquitto * pMosq_inline_c_0, char * topic_inline_c_1, int qos_inline_c_2) {--             mosquitto_subscribe-               ( pMosq_inline_c_0-               , 0-               , topic_inline_c_1-               , qos_inline_c_2-               )-        ;-}-
src/Network/Mosquitto.hs view
@@ -20,7 +20,6 @@  import qualified Language.C.Inline as C import qualified Language.C.Inline.Unsafe as CU- import           Language.C.Inline.TypeLevel  import           System.IO.Unsafe (unsafePerformIO)@@ -72,7 +71,7 @@ newMosquitto clearSession (C8.pack -> userId) _userData = do    fp <- newForeignPtr_ <$> [C.block|struct mosquitto *{         struct mosquitto * p =-          mosquitto_new( $bs-ptr:userId+          mosquitto_new( $bs-cstr:userId                        , $(bool clearSession)                        , 0 // (void * ptrUserData)                        );@@ -93,14 +92,27 @@   withPtr mosq $ \pMosq ->        [C.exp|void{                mosquitto_tls_set( $(struct mosquitto *pMosq)-                                , $bs-ptr:caFile+                                , $bs-cstr:caFile                                 , 0-                                , $bs-ptr:certFile-                                , $bs-ptr:keyFile+                                , $bs-cstr:certFile+                                , $bs-cstr:keyFile                                 , 0                                 )        }|] +setTlsNoClientCert :: Mosquitto a -> String -> IO ()+setTlsNoClientCert mosq (C8.pack -> caFile) =+  withPtr mosq $ \pMosq ->+       [C.exp|void{+               mosquitto_tls_set( $(struct mosquitto *pMosq)+                                , $bs-cstr:caFile+                                , 0+                                , 0+                                , 0+                                , 0+                                )+       }|]+ setReconnectDelay   :: Mosquitto a -- ^ mosquitto instance   -> Bool        -- ^ exponential backoff@@ -118,12 +130,27 @@                )         }|] +setUsernamePassword+  :: Mosquitto a -- ^ mosquitto instance+  -> String      -- ^ username+  -> String      -- ^ password+  -> IO Int+setUsernamePassword mosq (C8.pack -> user) (C8.pack -> pwd) =+  fmap fromIntegral <$> withPtr mosq $ \pMosq ->+       [C.exp|int{+              mosquitto_username_pw_set+                ( $(struct mosquitto *pMosq)+                , $bs-cstr:user+                , $bs-cstr:pwd+                )+       }|]+ connect :: Mosquitto a -> String -> Int -> Int -> IO Int connect mosq (C8.pack -> hostname) (fromIntegral -> port) (fromIntegral -> keepAlive) =   fmap fromIntegral <$> withPtr mosq $ \pMosq ->        [C.exp|int{                mosquitto_connect( $(struct mosquitto *pMosq)-                                , $bs-ptr:hostname+                                , $bs-cstr:hostname                                 , $(int port)                                 , $(int keepAlive)                                 )@@ -224,7 +251,7 @@        [C.exp|int{              mosquitto_will_set                ( $(struct mosquitto *pMosq)-               , $bs-ptr:topic+               , $bs-cstr:topic                , $bs-len:payload                , $bs-ptr:payload                , $(int qos)@@ -245,7 +272,7 @@              mosquitto_publish                ( $(struct mosquitto *pMosq)                , 0-               , $bs-ptr:topic+               , $bs-cstr:topic                , $bs-len:payload                , $bs-ptr:payload                , $(int qos)@@ -260,7 +287,7 @@              mosquitto_subscribe                ( $(struct mosquitto *pMosq)                , 0-               , $bs-ptr:topic+               , $bs-cstr:topic                , $(int qos)                )         }|]
src/Network/Mosquitto/Internal/Types.hs view
@@ -18,7 +18,6 @@  -- haskell types newtype Mosquitto a = Mosquitto { unMosquitto :: ForeignPtr (C (Mosquitto a))}--- newtype Message = Message { unMessage :: Ptr (C Message)} newtype RawMessage = RawMessage { unRawMessage :: Ptr (C RawMessage)}  data Message = Message