RyanMqttUtil.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #ifndef __RyanMqttUtil__
  2. #define __RyanMqttUtil__
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. #include "RyanMqttClient.h"
  7. #include "core_mqtt_config_defaults.h"
  8. #ifdef PKG_USING_RYANMQTT_IS_ENABLE_ASSERT
  9. #define RyanMqttAssert(EX) platformAssert(EX)
  10. #else
  11. #define RyanMqttAssert(EX) (void)(EX)
  12. #endif
  13. // 定义枚举类型
  14. // 定义结构体类型
  15. /* extern variables-----------------------------------------------------------*/
  16. extern void RyanMqttSetClientState(RyanMqttClient_t *client, RyanMqttState_e state);
  17. extern RyanMqttState_e RyanMqttGetClientState(RyanMqttClient_t *client);
  18. extern RyanMqttError_e RyanMqttDupString(char **dest, const char *src, uint32_t strLen);
  19. extern void RyanMqttPurgeSession(RyanMqttClient_t *client);
  20. extern void RyanMqttPurgeConfig(RyanMqttClientConfig_t *clientConfig);
  21. extern void RyanMqttPurgeClient(RyanMqttClient_t *client);
  22. extern RyanMqttError_e RyanMqttSendPacket(RyanMqttClient_t *client, uint8_t *buf, uint32_t length);
  23. extern RyanMqttError_e RyanMqttRecvPacket(RyanMqttClient_t *client, uint8_t *buf, uint32_t length);
  24. // msg
  25. extern RyanMqttError_e RyanMqttMsgHandlerCreate(RyanMqttClient_t *client, const char *topic, uint16_t topicLen,
  26. uint16_t packetId, RyanMqttQos_e qos, void *userData,
  27. RyanMqttMsgHandler_t **pMsgHandler);
  28. extern void RyanMqttMsgHandlerDestroy(RyanMqttClient_t *client, RyanMqttMsgHandler_t *msgHandler);
  29. extern RyanMqttError_e RyanMqttMsgHandlerFind(RyanMqttClient_t *client, RyanMqttMsgHandler_t *msgMatchCriteria,
  30. RyanMqttBool_e isTopicMatchedFlag, RyanMqttMsgHandler_t **pMsgHandler,
  31. RyanMqttBool_e removeOnMatch);
  32. extern void RyanMqttMsgHandlerFindAndDestroyByPacketId(RyanMqttClient_t *client, RyanMqttMsgHandler_t *msgMatchCriteria,
  33. RyanMqttBool_e skipSamePacketId);
  34. extern RyanMqttError_e RyanMqttMsgHandlerAddToMsgList(RyanMqttClient_t *client, RyanMqttMsgHandler_t *msgHandler);
  35. extern RyanMqttError_e RyanMqttMsgHandlerRemoveToMsgList(RyanMqttClient_t *client, RyanMqttMsgHandler_t *msgHandler);
  36. // ack
  37. extern RyanMqttError_e RyanMqttAckHandlerCreate(RyanMqttClient_t *client, uint8_t packetType, uint16_t packetId,
  38. uint16_t packetLen, uint8_t *packet, RyanMqttMsgHandler_t *msgHandler,
  39. RyanMqttAckHandler_t **pAckHandler,
  40. RyanMqttBool_e packetAllocatedExternally);
  41. extern void RyanMqttAckHandlerDestroy(RyanMqttClient_t *client, RyanMqttAckHandler_t *ackHandler);
  42. extern RyanMqttError_e RyanMqttAckListNodeFind(RyanMqttClient_t *client, uint8_t packetType, uint16_t packetId,
  43. RyanMqttAckHandler_t **pAckHandler, RyanMqttBool_e removeOnMatch);
  44. extern RyanMqttError_e RyanMqttAckListAddToAckList(RyanMqttClient_t *client, RyanMqttAckHandler_t *ackHandler);
  45. extern RyanMqttError_e RyanMqttAckListRemoveToAckList(RyanMqttClient_t *client, RyanMqttAckHandler_t *ackHandler);
  46. extern RyanMqttError_e RyanMqttAckListNodeFindByUserAckList(RyanMqttClient_t *client, uint8_t packetType,
  47. uint16_t packetId, RyanMqttAckHandler_t **pAckHandler,
  48. RyanMqttBool_e removeOnMatch);
  49. extern RyanMqttError_e RyanMqttAckListAddToUserAckList(RyanMqttClient_t *client, RyanMqttAckHandler_t *ackHandler);
  50. extern RyanMqttError_e RyanMqttAckListRemoveToUserAckList(RyanMqttClient_t *client, RyanMqttAckHandler_t *ackHandler);
  51. extern void RyanMqttClearAckSession(RyanMqttClient_t *client, uint8_t packetType, uint16_t packetId);
  52. extern uint16_t RyanMqttGetNextPacketId(RyanMqttClient_t *client);
  53. #ifdef __cplusplus
  54. }
  55. #endif
  56. #endif