c-mosquitto 0.1.1.0 → 0.1.2.0
raw patch · 4 files changed
+83/−11 lines, 4 files
Files
- app/Main.hs +1/−0
- c-mosquitto.cabal +1/−1
- src/Network/Mosquitto.c +43/−10
- src/Network/Mosquitto.hs +38/−0
app/Main.hs view
@@ -43,6 +43,7 @@ m <- M.newMosquitto True serverName (Just ()) M.setTls m caCert userCert userKey M.setTlsInsecure m True+ M.setReconnectDelay m True 2 30 M.onMessage m print M.onLog m $ const putStrLn
c-mosquitto.cabal view
@@ -1,5 +1,5 @@ name: c-mosquitto-version: 0.1.1.0+version: 0.1.2.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
@@ -81,8 +81,20 @@ } -int inline_c_Network_Mosquitto_12_98b22e49ca780ebc944cedb809c5a5097eea6100(struct mosquitto * pMosq_inline_c_0, char * hostname_inline_c_1, int port_inline_c_2, int keepAlive_inline_c_3) {+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@@ -92,7 +104,7 @@ } -void inline_c_Network_Mosquitto_13_9b2300d6db40d43ebb6d72e3b5a020f27089aa9f(struct mosquitto * pMosq_inline_c_0, void (* on_subscribe_inline_c_1)(struct mosquitto *, void *, int , int , const int *)) {+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@@ -102,7 +114,7 @@ } -void inline_c_Network_Mosquitto_14_c37f43d389a2b1e4a300492e3a711a4a76e04f57(struct mosquitto * pMosq_inline_c_0, void (* on_connect_inline_c_1)(struct mosquitto *, void *, int )) {+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@@ -112,7 +124,7 @@ } -void inline_c_Network_Mosquitto_15_73f1686f2c07e9747998ec5d1a023376b6401ac8(struct mosquitto * pMosq_inline_c_0, void (* on_disconnect_inline_c_1)(struct mosquitto *, void *, int )) {+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@@ -122,7 +134,7 @@ } -void inline_c_Network_Mosquitto_16_374d617a6dd1e6b1b85395b1c3a2043f8a86cd2b(struct mosquitto * pMosq_inline_c_0, void (* on_log_inline_c_1)(struct mosquitto *, void *, int , const char *)) {+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@@ -132,7 +144,7 @@ } -void inline_c_Network_Mosquitto_17_2dd27966a8764a1bdd083baf0f4690e8e2ef1475(struct mosquitto * pMosq_inline_c_0, void (* on_message_inline_c_1)(struct mosquitto *, void *, const struct mosquitto_message *)) {+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@@ -142,22 +154,43 @@ } -void inline_c_Network_Mosquitto_18_4b8c8d8774deee8ab1d79ed9d536914d1ca65d06(struct mosquitto * pMosq_inline_c_0) {+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_19_969dca874ea20234f06362014c8097eab6c27f8f(struct mosquitto * pMosq_inline_c_0, bool isInsecure_inline_c_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) ; } -void inline_c_Network_Mosquitto_20_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) {+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@@ -171,7 +204,7 @@ } -void inline_c_Network_Mosquitto_21_491fe5e8a7e8888c30139bd3dcd275298b39e3a8(struct mosquitto * pMosq_inline_c_0, char * topic_inline_c_1, int qos_inline_c_2) {+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
src/Network/Mosquitto.hs view
@@ -101,6 +101,23 @@ ) }|] +setReconnectDelay + :: Mosquitto a -- ^ mosquitto instance+ -> Bool -- ^ exponential backoff+ -> Int -- ^ initial backoff + -> Int -- ^ maximum backoff+ -> IO Int+setReconnectDelay mosq exponential (fromIntegral -> reconnectDelay) (fromIntegral -> reconnectDelayMax) =+ fmap fromIntegral <$> withPtr mosq $ \pMosq ->+ [C.exp|int{+ mosquitto_reconnect_delay_set+ ( $(struct mosquitto *pMosq)+ , $(int reconnectDelay)+ , $(int reconnectDelayMax)+ , $(bool exponential)+ )+ }|]+ connect :: Mosquitto a -> String -> Int -> Int -> IO Int connect mosq (C8.pack -> hostname) (fromIntegral -> port) (fromIntegral -> keepAlive) = fmap fromIntegral <$> withPtr mosq $ \pMosq ->@@ -183,6 +200,26 @@ mosquitto_tls_insecure_set($(struct mosquitto *pMosq), $(bool isInsecure)) }|] +setWill :: Mosquitto a -> Bool -> Int -> String -> S.ByteString -> IO Int+setWill mosq retain (fromIntegral -> qos) (C8.pack -> topic) payload =+ fmap fromIntegral <$> withPtr mosq $ \pMosq ->+ [C.exp|int{+ mosquitto_will_set+ ( $(struct mosquitto *pMosq)+ , $bs-ptr:topic+ , $bs-len:payload+ , $bs-ptr:payload+ , $(int qos)+ , $(bool retain)+ )+ }|]++clearWill :: Mosquitto a -> IO Int+clearWill mosq = fmap fromIntegral <$> withPtr mosq $ \pMosq ->+ [C.exp|int{+ mosquitto_will_clear($(struct mosquitto *pMosq))+ }|]+ publish :: Mosquitto a -> Bool -> Int -> String -> S.ByteString -> IO () publish mosq retain (fromIntegral -> qos) (C8.pack -> topic) payload = withPtr mosq $ \pMosq ->@@ -209,3 +246,4 @@ , $(int qos) ) }|]+