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
|
#ifndef TESTCLIENT_H
#define TESTCLIENT_H
#include "mqtt.h"
#include "private.h"
#include "queue.h"
typedef struct Message Message;
struct Message
{
SIMPLEQ_ENTRY(Message) chain;
char *topic;
void *data;
size_t size;
int qos;
int retain;
};
typedef struct TestClient TestClient;
struct TestClient
{
MqttClient *client;
/* OnConnect */
MqttConnectionStatus connectionStatus;
int sessionPresent;
/* OnSubscribe */
int subId;
MqttSubscriptionStatus subStatus;
/* OnPublish */
int pubId;
/* OnMessage */
SIMPLEQ_HEAD(messages, Message) messages;
};
Message *MessageNew(const char *topic, const void *data, size_t size,
int qos, int retain);
void MessageFree(Message *msg);
TestClient *TestClientNew(const char *clientId);
void TestClientFree(TestClient *client);
int TestClientConnect(TestClient *client, const char *host, int port,
int keepAlive, int cleanSession);
void TestClientDisconnect(TestClient *client);
int TestClientSubscribe(TestClient *client, const char *topicFilter, int qos);
int TestClientPublish(TestClient *client, int qos, int retain,
const char *topic, const char *message);
int TestClientMessageCount(TestClient *client);
int TestClientWait(TestClient *client, int timeout);
#endif
|