mqtt_async.hpp 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #ifndef MQTT_ASYNC_CLIENT_H_
  2. #define MQTT_ASYNC_CLIENT_H_
  3. #include <MQTTAsync.h>
  4. #include <iostream>
  5. typedef int (*MessageArrived)(void* context, char* topicName, int topicLen, MQTTAsync_message* message);
  6. typedef void (*ConnectionLost)(void *context, char *cause);
  7. typedef void (*OnSuccess)(void* context, MQTTAsync_successData* response);
  8. typedef void (*OnFailure)(void* context, MQTTAsync_failureData* response);
  9. class MqttAsyncClient
  10. {
  11. public:
  12. MqttAsyncClient();
  13. ~MqttAsyncClient();
  14. bool onConnect(std::string address, std::string client_id, int port);
  15. bool onDisconnect();
  16. bool onSubscribe(std::string topic, int qos = 1);
  17. bool onSendMessage(std::string topic, unsigned char* message, int length, int qos = 1);
  18. void setCallback(MessageArrived callback);
  19. private:
  20. static int onMessageArrived(void* context, char* topicName, int topicLen, MQTTAsync_message* message);
  21. static void onMessageLost(void *context, char *cause);
  22. static void onConnectSuccess(void* context, MQTTAsync_successData* response);
  23. static void onConnectFailure(void* context, MQTTAsync_failureData* response);
  24. static void onDisconnectSuccess(void* context, MQTTAsync_successData* response);
  25. static void onDisconnectFailure(void* context, MQTTAsync_failureData* response);
  26. static void onSubscribeSuccess(void* context, MQTTAsync_successData* response);
  27. static void onSubscribeFailure(void* context, MQTTAsync_failureData* response);
  28. static void onSendMessageSuccess(void* context, MQTTAsync_successData* response);
  29. static void onSendMessageFailure(void* context, MQTTAsync_failureData* response);
  30. public:
  31. private:
  32. MQTTAsync m_client_;
  33. MQTTAsync_createOptions m_create_opts_;
  34. MQTTAsync_connectOptions m_conn_opts_;
  35. MessageArrived m_message_arrived_callback_;
  36. ConnectionLost m_connect_lost_callback_;
  37. OnSuccess m_connect_success_;
  38. OnSuccess m_disconnect_success_;
  39. OnSuccess m_subscribe_success_;
  40. OnSuccess m_send_success_;
  41. OnFailure m_connect_failure_;
  42. OnFailure m_disconnect_failure_;
  43. OnFailure m_subscribe_failure_;
  44. OnFailure m_send_failure_;
  45. };
  46. #endif