1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
#ifndef MQTT_H
#define MQTT_H
#if defined(__cplusplus)
extern "C" {
#endif
#include <stdlib.h>
typedef enum MqttConnectionStatus
{
MqttConnectionAccepted = 0,
MqttConnectionInvalidProtocolVersion,
MqttConnectionIdentifierRejected,
MqttConnectionServerUnavailable,
MqttConnectionBadAuth,
MqttConnectionNotAuthorized
} MqttConnectionStatus;
typedef enum MqttSubscriptionStatus
{
MqttSubscriptionQos0 = 0,
MqttSubscriptionQos1 = 1,
MqttSubscriptionQos2 = 2,
MqttSubscriptionFailure = 0x80
} MqttSubscriptionStatus;
typedef struct MqttClient MqttClient;
typedef void (*MqttClientOnConnectCallback)(MqttClient *client,
MqttConnectionStatus status,
int sessionPresent);
typedef void (*MqttClientOnSubscribeCallback)(MqttClient *client,
int id,
int *qos,
int count);
typedef void (*MqttClientOnUnsubscribeCallback)(MqttClient *client, int id);
typedef void (*MqttClientOnMessageCallback)(MqttClient *client,
const char *topic,
const void *data,
size_t size,
int qos,
int retain);
typedef void (*MqttClientOnPublishCallback)(MqttClient *client, int id);
MqttClient *MqttClientNew(const char *clientId);
void MqttClientFree(MqttClient *client);
void MqttClientSetUserData(MqttClient *client, void *userData);
void *MqttClientGetUserData(MqttClient *client);
void MqttClientSetOnConnect(MqttClient *client, MqttClientOnConnectCallback cb);
void MqttClientSetOnSubscribe(MqttClient *client,
MqttClientOnSubscribeCallback cb);
void MqttClientSetOnUnsubscribe(MqttClient *client,
MqttClientOnUnsubscribeCallback cb);
void MqttClientSetOnMessage(MqttClient *client,
MqttClientOnMessageCallback cb);
void MqttClientSetOnPublish(MqttClient *client,
MqttClientOnPublishCallback cb);
int MqttClientConnect(MqttClient *client, const char *host, short port,
int keepAlive, int cleanSession);
int MqttClientDisconnect(MqttClient *client);
int MqttClientIsConnected(MqttClient *client);
int MqttClientRunOnce(MqttClient *client, int timeout);
int MqttClientRun(MqttClient *client);
int MqttClientSubscribe(MqttClient *client, const char *topicFilter,
int qos);
int MqttClientSubscribeMany(MqttClient *client, const char **topicFilters,
int *qos, size_t count);
int MqttClientUnsubscribe(MqttClient *client, const char *topicFilter);
int MqttClientPublish(MqttClient *client, int qos, int retain,
const char *topic, const void *data, size_t size);
int MqttClientPublishCString(MqttClient *client, int qos, int retain,
const char *topic, const char *msg);
void MqttClientSetPublishRetryTimeout(MqttClient *client, int timeout);
void MqttClientSetMaxMessagesInflight(MqttClient *client, int max);
void MqttClientSetMaxQueuedMessages(MqttClient *client, int max);
int MqttClientSetWill(MqttClient *client, const char *topic, const void *msg,
size_t size, int qos, int retain);
int MqttClientSetAuth(MqttClient *client, const char *username,
const char *password);
#if defined(__cplusplus)
}
#endif
#endif
|