libcortex
Event loop library following a "batteries included" approach
Loading...
Searching...
No Matches
mqtt.h
1#ifndef _CRTX_MQTT_H
2#define _CRTX_MQTT_H
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8/*
9* Mario Kicherer (dev@kicherer.org) 2022
10*
11*/
12
13#include <mosquitto.h>
14#include "core.h"
15
16#define CRTX_MQTT_EVT_CONNECT "mqtt.connect"
17#define CRTX_MQTT_EVT_DISCONNECT "mqtt.disconnect"
18#define CRTX_MQTT_EVT_MSG "mqtt.msg"
19#define CRTX_MQTT_EVT_LOG "mqtt.log"
20
21#define CRTX_MQTT_EVT_CONNECT_ID (1<<0)
22#define CRTX_MQTT_EVT_DISCONNECT_ID (1<<1)
23#define CRTX_MQTT_EVT_MSG_ID (1<<2)
24#define CRTX_MQTT_EVT_LOG_ID (1<<3)
25
27 struct crtx_listener_base base;
28
29 struct mosquitto *mosq;
30 char *clientid;
31
32 const char *host;
33 unsigned int port;
34 unsigned int keepalive;
35
36 char clientid_allocated;
37 char reconnect;
38
39 void (*connect_cb)(struct mosquitto *mosq, void *obj, int rc);
40 void (*disconnect_cb)(struct mosquitto *mosq, void *obj, int rc);
41 void (*log_cb)(struct mosquitto *, void *userdata, int level, const char *msg);
42 void (*msg_cb)(struct mosquitto *mosq, void *obj, const struct mosquitto_message *message);
43};
44
45struct crtx_listener_base *crtx_setup_mqtt_listener(void *options);
46void crtx_mqtt_clear_listener(struct crtx_mqtt_listener *lstnr);
47CRTX_DECLARE_CALLOC_FUNCTION(mqtt)
48
49void crtx_mqtt_init();
50void crtx_mqtt_finish();
51
52#ifdef __cplusplus
53}
54#endif
55
56#endif
The core definitions of libcortex.
base structure of a listener
Definition core.h:186
Definition mqtt.h:26