diff options
Diffstat (limited to 'test/interop/testclient.h')
| -rw-r--r-- | test/interop/testclient.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/test/interop/testclient.h b/test/interop/testclient.h new file mode 100644 index 0000000..6f9bdb9 --- /dev/null +++ b/test/interop/testclient.h @@ -0,0 +1,63 @@ +#ifndef TESTCLIENT_H +#define TESTCLIENT_H + +#include "mqtt.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 |
